--- /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="Gst" version="0.10"/>
+ <include name="GstBase" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-base-0.10"/>
+ <c:include name="gst/app/gstappbuffer.h"/>
+ <c:include name="gst/app/gstappsink.h"/>
+ <c:include name="gst/app/gstappsrc.h"/>
+ <namespace name="GstApp"
+ version="0.10"
+ shared-library="libgstapp-0.10.so.0"
+ c:prefix="Gst">
+ <record name="AppBuffer" c:type="GstAppBuffer">
+ <field name="buffer" writable="1">
+ <type name="Gst.Buffer" c:type="GstBuffer"/>
+ </field>
+ <field name="finalize" writable="1">
+ <type name="AppBufferFinalizeFunc" c:type="GstAppBufferFinalizeFunc"/>
+ </field>
+ <field name="priv" writable="1">
+ <type name="any" c:type="void*"/>
+ </field>
+ <constructor name="new" c:identifier="gst_app_buffer_new">
+ <return-value transfer-ownership="full">
+ <type name="AppBuffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="void*"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="finalize" transfer-ownership="none" scope="call">
+ <type name="AppBufferFinalizeFunc"
+ c:type="GstAppBufferFinalizeFunc"/>
+ </parameter>
+ <parameter name="priv" transfer-ownership="none">
+ <type name="any" c:type="void*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ </record>
+ <record name="AppBufferClass" c:type="GstAppBufferClass">
+ <field name="buffer_class" writable="1">
+ <type name="Gst.BufferClass" c:type="GstBufferClass"/>
+ </field>
+ </record>
+ <callback name="AppBufferFinalizeFunc" c:type="GstAppBufferFinalizeFunc">
+ <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="void*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="AppSink"
+ c:type="GstAppSink"
+ parent="GstBase.BaseSink"
+ glib:type-name="GstAppSink"
+ glib:get-type="gst_app_sink_get_type"
+ glib:type-struct="AppSinkClass">
+ <implements name="Gst.URIHandler"/>
+ <method name="set_caps"
+ c:identifier="gst_app_sink_set_caps"
+ doc="Set the capabilities on the appsink element. This function takes
+a copy of the caps structure. After calling this method, the sink will only
+accept caps that match @caps. If @caps is non-fixed, you must check the caps
+on the buffers to get the actual used caps."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_caps"
+ c:identifier="gst_app_sink_get_caps"
+ doc="Get the configured caps on @appsink."
+ version="0.10.22">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="is_eos"
+ c:identifier="gst_app_sink_is_eos"
+ doc="Check if @appsink is EOS, which is when no more buffers can be pulled because
+an EOS event was received.
+This function also returns %TRUE when the appsink is not in the PAUSED or
+PLAYING state."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_emit_signals"
+ c:identifier="gst_app_sink_set_emit_signals"
+ doc="Make appsink emit the "new-preroll" and "new-buffer" signals. This option is
+by default disabled because signal emission is expensive and unneeded when
+the application prefers to operate in pull mode."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="emit" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_emit_signals"
+ c:identifier="gst_app_sink_get_emit_signals"
+ doc="Check if appsink will emit the "new-preroll" and "new-buffer" signals.
+signals."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_max_buffers"
+ c:identifier="gst_app_sink_set_max_buffers"
+ doc="Set the maximum amount of buffers that can be queued in @appsink. After this
+amount of buffers are queued in appsink, any more buffers will block upstream
+elements until a buffer is pulled from @appsink."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="max" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_max_buffers"
+ c:identifier="gst_app_sink_get_max_buffers"
+ doc="Get the maximum amount of buffers that can be queued in @appsink."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="set_drop"
+ c:identifier="gst_app_sink_set_drop"
+ doc="Instruct @appsink to drop old buffers when the maximum amount of queued
+buffers is reached."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="drop" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_drop"
+ c:identifier="gst_app_sink_get_drop"
+ doc="Check if @appsink will drop old buffers when the maximum amount of queued
+buffers is reached.
+filled."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="pull_preroll"
+ c:identifier="gst_app_sink_pull_preroll"
+ doc="Get the last preroll buffer in @appsink. This was the buffer that caused the
+appsink to preroll in the PAUSED state. This buffer can be pulled many times
+and remains available to the application even after EOS.
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the buffer right
+after the seek position.
+Note that the preroll buffer will also be returned as the first buffer
+when calling gst_app_sink_pull_buffer().
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+This function blocks until a preroll buffer or EOS is received or the appsink
+element is set to the READY/NULL state."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="pull_buffer"
+ c:identifier="gst_app_sink_pull_buffer"
+ doc="This function blocks until a buffer or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+This function will only return buffers when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull buffers at its own rate. Note that when the application does not
+pull buffers fast enough, the queued buffers could consume a lot of memory,
+especially when dealing with raw video frames.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="pull_buffer_list"
+ c:identifier="gst_app_sink_pull_buffer_list"
+ doc="This function blocks until a buffer list or EOS becomes available or the
+appsink element is set to the READY/NULL state.
+This function will only return buffer lists when the appsink is in the
+PLAYING state. All rendered buffer lists will be put in a queue so that
+the application can pull buffer lists at its own rate. Note that when
+the application does not pull buffer lists fast enough, the queued buffer
+lists could consume a lot of memory, especially when dealing with raw
+video frames.
+If an EOS event was received before any buffer lists, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </return-value>
+ </method>
+ <method name="set_callbacks"
+ c:identifier="gst_app_sink_set_callbacks"
+ doc="Set callbacks which will be executed for each new preroll, new buffer and eos.
+This is an alternative to using the signals, it has lower overhead and is thus
+less expensive, but also less flexible.
+If callbacks are installed, no signals will be emited for performance
+reasons."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callbacks" transfer-ownership="none">
+ <type name="AppSinkCallbacks" c:type="GstAppSinkCallbacks*"/>
+ </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>
+ <property name="caps" writable="1">
+ <type name="Gst.Caps" c:type="GstCaps"/>
+ </property>
+ <property name="drop" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="emit-signals" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="eos">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="max-buffers" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <field name="basesink">
+ <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+ </field>
+ <field name="priv">
+ <type name="AppSinkPrivate" c:type="GstAppSinkPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="eos"
+ doc="Signal that the end-of-stream has been reached. This signal is emited from
+the steaming thread.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="new-buffer"
+ doc="Signal that a new buffer is available.
+This signal is emited from the steaming thread and only when the
+"emit-signals" property is %TRUE.
+The new buffer can be retrieved with the "pull-buffer" action
+signal or gst_app_sink_pull_buffer() either from this signal callback
+or from any other thread.
+Note that this signal is only emited when the "emit-signals" property is
+set to %TRUE, which it is not by default for performance reasons.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="new-buffer-list"
+ doc="Signal that a new bufferlist is available.
+This signal is emited from the steaming thread and only when the
+"emit-signals" property is %TRUE.
+The new buffer can be retrieved with the "pull-buffer-list" action
+signal or gst_app_sink_pull_buffe_listr() either from this signal callback
+or from any other thread.
+Note that this signal is only emited when the "emit-signals" property is
+set to %TRUE, which it is not by default for performance reasons.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="new-preroll"
+ doc="Signal that a new preroll buffer is available.
+This signal is emited from the steaming thread and only when the
+"emit-signals" property is %TRUE.
+The new preroll buffer can be retrieved with the "pull-preroll" action
+signal or gst_app_sink_pull_preroll() either from this signal callback
+or from any other thread.
+Note that this signal is only emited when the "emit-signals" property is
+set to %TRUE, which it is not by default for performance reasons.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="pull-buffer"
+ doc="This function blocks until a buffer or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+This function will only return buffers when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull buffers at its own rate.
+Note that when the application does not pull buffers fast enough, the
+queued buffers could consume a lot of memory, especially when dealing with
+raw video frames. It's possible to control the behaviour of the queue with
+the "drop" and "max-buffers" properties.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="pull-buffer-list"
+ doc="This function blocks until a buffer list or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+This function will only return bufferlists when the appsink is in the PLAYING
+state. All rendered bufferlists will be put in a queue so that the application
+can pull bufferlists at its own rate.
+Note that when the application does not pull bufferlists fast enough, the
+queued bufferlists could consume a lot of memory, especially when dealing with
+raw video frames. It's possible to control the behaviour of the queue with
+the "drop" and "max-buffers" properties.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.BufferList" c:type="GstBufferList"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="pull-preroll"
+ doc="Get the last preroll buffer in @appsink. This was the buffer that caused the
+appsink to preroll in the PAUSED state. This buffer can be pulled many times
+and remains available to the application even after EOS.
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the buffer right
+after the seek position.
+Note that the preroll buffer will also be returned as the first buffer
+when calling gst_app_sink_pull_buffer() or the "pull-buffer" action signal.
+If an EOS event was received before any buffers, this function returns
+%NULL. Use gst_app_sink_is_eos () to check for the EOS condition.
+This function blocks until a preroll buffer or EOS is received or the appsink
+element is set to the READY/NULL state.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <record name="AppSinkCallbacks"
+ c:type="GstAppSinkCallbacks"
+ doc="is called from the steaming thread.
+This callback is called from the steaming thread.
+The new preroll buffer can be retrieved with
+gst_app_sink_pull_preroll() either from this callback
+or from any other thread.
+This callback is called from the steaming thread.
+The new buffer can be retrieved with
+gst_app_sink_pull_buffer() either from this callback
+or from any other thread.
+This callback is called from the steaming thread.
+The new bufferlist can be retrieved with
+gst_app_sink_pull_buffer_list() either from this callback
+or from any other thread.
+A set of callbacks that can be installed on the appsink with
+gst_app_sink_set_callbacks()."
+ version="0.10.23">
+ <field name="eos">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="new_preroll">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="new_buffer">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="new_buffer_list">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="AppSinkClass"
+ c:type="GstAppSinkClass"
+ glib:is-gtype-struct-for="AppSink">
+ <field name="basesink_class">
+ <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
+ </field>
+ <field name="eos">
+ <callback name="eos" c:type="eos">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_preroll">
+ <callback name="new_preroll" c:type="new_preroll">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_buffer">
+ <callback name="new_buffer" c:type="new_buffer">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pull_preroll">
+ <callback name="pull_preroll" c:type="pull_preroll">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pull_buffer">
+ <callback name="pull_buffer" c:type="pull_buffer">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_buffer_list">
+ <callback name="new_buffer_list" c:type="new_buffer_list">
+ <return-value transfer-ownership="full">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pull_buffer_list">
+ <callback name="pull_buffer_list" c:type="pull_buffer_list">
+ <return-value transfer-ownership="full">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="AppSinkPrivate" c:type="GstAppSinkPrivate">
+ </record>
+ <class name="AppSrc"
+ c:type="GstAppSrc"
+ parent="GstBase.BaseSrc"
+ glib:type-name="GstAppSrc"
+ glib:get-type="gst_app_src_get_type"
+ glib:type-struct="AppSrcClass">
+ <implements name="Gst.URIHandler"/>
+ <method name="set_caps"
+ c:identifier="gst_app_src_set_caps"
+ doc="Set the capabilities on the appsrc element. This function takes
+a copy of the caps structure. After calling this method, the source will
+only produce caps that match @caps. @caps must be fixed and the caps on the
+buffers must match the caps or left NULL."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_caps"
+ c:identifier="gst_app_src_get_caps"
+ doc="Get the configured caps on @appsrc."
+ version="0.10.22">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </method>
+ <method name="set_size"
+ c:identifier="gst_app_src_set_size"
+ doc="Set the size of the stream in bytes. A value of -1 means that the size is
+not known."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_size"
+ c:identifier="gst_app_src_get_size"
+ doc="Get the size of the stream in bytes. A value of -1 means that the size is
+not known."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </return-value>
+ </method>
+ <method name="set_stream_type"
+ c:identifier="gst_app_src_set_stream_type"
+ doc="Set the stream type on @appsrc. For seekable streams, the "seek" signal must
+be connected to.
+A stream_type stream"
+ 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="AppStreamType" c:type="GstAppStreamType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_stream_type"
+ c:identifier="gst_app_src_get_stream_type"
+ doc="Get the stream type. Control the stream type of @appsrc
+with gst_app_src_set_stream_type()."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="AppStreamType" c:type="GstAppStreamType"/>
+ </return-value>
+ </method>
+ <method name="set_max_bytes"
+ c:identifier="gst_app_src_set_max_bytes"
+ doc="Set the maximum amount of bytes that can be queued in @appsrc.
+After the maximum amount of bytes are queued, @appsrc will emit the
+"enough-data" signal."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="max" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_max_bytes"
+ c:identifier="gst_app_src_get_max_bytes"
+ doc="Get the maximum amount of bytes that can be queued in @appsrc."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ </method>
+ <method name="set_latency"
+ c:identifier="gst_app_src_set_latency"
+ doc="Configure the @min and @max latency in @src. If @min is set to -1, the
+default latency calculations for pseudo-live sources will be used."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="min" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="max" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_latency"
+ c:identifier="gst_app_src_get_latency"
+ doc="Retrieve the min and max latencies in @min and @max respectively."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="min" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="max" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_emit_signals"
+ c:identifier="gst_app_src_set_emit_signals"
+ doc="Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is
+by default disabled because signal emission is expensive and unneeded when
+the application prefers to operate in pull mode."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="emit" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_emit_signals"
+ c:identifier="gst_app_src_get_emit_signals"
+ doc="Check if appsrc will emit the "new-preroll" and "new-buffer" signals.
+signals."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="push_buffer"
+ c:identifier="gst_app_src_push_buffer"
+ doc="Adds a buffer to the queue of buffers that the appsrc element will
+push to its source pad. This function takes ownership of the buffer.
+When the block property is TRUE, this function can block until free
+space becomes available in the queue.
+#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_UNEXPECTED when EOS occured."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="end_of_stream"
+ c:identifier="gst_app_src_end_of_stream"
+ doc="Indicates to the appsrc element that the last buffer queued in the
+element is the last buffer of the stream.
+#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ </method>
+ <method name="set_callbacks"
+ c:identifier="gst_app_src_set_callbacks"
+ doc="Set callbacks which will be executed when data is needed, enough data has
+been collected or when a seek should be performed.
+This is an alternative to using the signals, it has lower overhead and is thus
+less expensive, but also less flexible.
+If callbacks are installed, no signals will be emited for performance
+reasons."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="callbacks" transfer-ownership="none">
+ <type name="AppSrcCallbacks" c:type="GstAppSrcCallbacks*"/>
+ </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>
+ <property name="block" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="caps" writable="1">
+ <type name="Gst.Caps" c:type="GstCaps"/>
+ </property>
+ <property name="emit-signals" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="format" writable="1">
+ <type name="Gst.Format" c:type="GstFormat"/>
+ </property>
+ <property name="is-live" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="max-bytes" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <property name="max-latency" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="min-latency" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="min-percent" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="size" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="stream-type" writable="1">
+ <type name="AppStreamType" c:type="GstAppStreamType"/>
+ </property>
+ <field name="basesrc">
+ <type name="GstBase.BaseSrc" c:type="GstBaseSrc"/>
+ </field>
+ <field name="priv">
+ <type name="AppSrcPrivate" c:type="GstAppSrcPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="end-of-stream"
+ doc="Notify @appsrc that no more buffer are available.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="enough-data"
+ doc="Signal that the source has enough data. It is recommended that the
+application stops calling push-buffer until the need-data signal is
+emited again to avoid excessive buffer queueing.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="need-data"
+ doc="Signal that the source needs more data. In the callback or from another
+thread you should call push-buffer or end-of-stream.
+pushed into @appsrc.
+You can call push-buffer multiple times until the enough-data signal is
+fired.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="push-buffer"
+ doc="Adds a buffer to the queue of buffers that the appsrc element will
+push to its source pad. This function does not take ownership of the
+buffer so the buffer needs to be unreffed after calling this function.
+When the block property is TRUE, this function can block until free space
+becomes available in the queue.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="seek-data"
+ doc="Seek to the given offset. The next push-buffer should produce buffers from
+the new @offset.
+This callback is only called for seekable stream types.">
+ <return-value transfer-ownership="full">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="AppSrcCallbacks"
+ c:type="GstAppSrcCallbacks"
+ doc="pushed to appsrc from this thread or another thread. @length is just a hint
+and when it is set to -1, any number of bytes can be pushed into @appsrc.
+application stops calling push-buffer until the need_data callback is
+emited again to avoid excessive buffer queueing.
+The next push-buffer should produce buffers from the new @offset.
+This callback is only called for seekable stream types.
+A set of callbacks that can be installed on the appsrc with
+gst_app_src_set_callbacks()."
+ version="0.10.23">
+ <field name="need_data">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="enough_data">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="seek_data">
+ <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="AppSrcClass"
+ c:type="GstAppSrcClass"
+ glib:is-gtype-struct-for="AppSrc">
+ <field name="basesrc_class">
+ <type name="GstBase.BaseSrcClass" c:type="GstBaseSrcClass"/>
+ </field>
+ <field name="need_data">
+ <callback name="need_data" c:type="need_data">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="enough_data">
+ <callback name="enough_data" c:type="enough_data">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="seek_data">
+ <callback name="seek_data" c:type="seek_data">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="push_buffer">
+ <callback name="push_buffer" c:type="push_buffer">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="end_of_stream">
+ <callback name="end_of_stream" c:type="end_of_stream">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </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="AppSrcPrivate" c:type="GstAppSrcPrivate">
+ </record>
+ <enumeration name="AppStreamType"
+ doc="live stream.
+be very fast, such as data from a webserver.
+such as in a local file.
+The stream type."
+ c:type="GstAppStreamType">
+ <member name="stream"
+ value="0"
+ c:identifier="GST_APP_STREAM_TYPE_STREAM"/>
+ <member name="seekable"
+ value="1"
+ c:identifier="GST_APP_STREAM_TYPE_SEEKABLE"/>
+ <member name="random_access"
+ value="2"
+ c:identifier="GST_APP_STREAM_TYPE_RANDOM_ACCESS"/>
+ </enumeration>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.app.ffi ;
+IN: gstreamer.app
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.app.ffi
+
+<<
+"gstreamer.app" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstapp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/app/GstApp-0.10.gir
+
--- /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="Gst" version="0.10"/>
+ <include name="GstBase" version="0.10"/>
+ <include name="GstInterfaces" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-base-0.10"/>
+ <package name="gstreamer-interfaces-0.10"/>
+ <c:include name="gst/audio/audio-enumtypes.h"/>
+ <c:include name="gst/audio/audio.h"/>
+ <c:include name="gst/audio/gstaudioclock.h"/>
+ <c:include name="gst/audio/gstaudiofilter.h"/>
+ <c:include name="gst/audio/gstaudiosink.h"/>
+ <c:include name="gst/audio/gstaudiosrc.h"/>
+ <c:include name="gst/audio/gstbaseaudiosink.h"/>
+ <c:include name="gst/audio/gstbaseaudiosrc.h"/>
+ <c:include name="gst/audio/gstringbuffer.h"/>
+ <c:include name="gst/audio/mixerutils.h"/>
+ <c:include name="gst/audio/multichannel.h"/>
+ <namespace name="GstAudio"
+ version="0.10"
+ shared-library="libgstaudio-0.10.so.0"
+ c:prefix="Gst">
+ <enumeration name="AudioChannelPosition"
+ doc="from a sound card that records 1024 channels; mutually exclusive with
+any other channel position"
+ glib:type-name="GstAudioChannelPosition"
+ glib:get-type="gst_audio_channel_position_get_type"
+ c:type="GstAudioChannelPosition">
+ <member name="invalid"
+ value="-1"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID"
+ glib:nick="invalid"/>
+ <member name="front_mono"
+ value="0"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_MONO"
+ glib:nick="front-mono"/>
+ <member name="front_left"
+ value="1"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT"
+ glib:nick="front-left"/>
+ <member name="front_right"
+ value="2"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT"
+ glib:nick="front-right"/>
+ <member name="rear_center"
+ value="3"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER"
+ glib:nick="rear-center"/>
+ <member name="rear_left"
+ value="4"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT"
+ glib:nick="rear-left"/>
+ <member name="rear_right"
+ value="5"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT"
+ glib:nick="rear-right"/>
+ <member name="lfe"
+ value="6"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE"
+ glib:nick="lfe"/>
+ <member name="front_center"
+ value="7"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER"
+ glib:nick="front-center"/>
+ <member name="front_left_of_center"
+ value="8"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER"
+ glib:nick="front-left-of-center"/>
+ <member name="front_right_of_center"
+ value="9"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER"
+ glib:nick="front-right-of-center"/>
+ <member name="side_left"
+ value="10"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT"
+ glib:nick="side-left"/>
+ <member name="side_right"
+ value="11"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT"
+ glib:nick="side-right"/>
+ <member name="none"
+ value="12"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE"
+ glib:nick="none"/>
+ <member name="num"
+ value="13"
+ c:identifier="GST_AUDIO_CHANNEL_POSITION_NUM"
+ glib:nick="num"/>
+ </enumeration>
+ <class name="AudioClock"
+ c:type="GstAudioClock"
+ doc="Opaque #GstAudioClock."
+ parent="Gst.SystemClock"
+ glib:type-name="GstAudioClock"
+ glib:get-type="gst_audio_clock_get_type"
+ glib:type-struct="AudioClockClass">
+ <constructor name="new"
+ c:identifier="gst_audio_clock_new"
+ doc="Create a new #GstAudioClock instance. Whenever the clock time should be
+calculated it will call @func with @user_data. When @func returns
+#GST_CLOCK_TIME_NONE, the clock will return the last reported time.">
+ <return-value transfer-ownership="full">
+ <type name="AudioClock" c:type="GstClock*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="AudioClockGetTimeFunc"
+ c:type="GstAudioClockGetTimeFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="reset"
+ c:identifier="gst_audio_clock_reset"
+ doc="Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values
+starting from @time. The clock will update an internal offset to make sure that
+future calls to internal_time will return an increasing result as required by
+the #GstClock object.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_time"
+ c:identifier="gst_audio_clock_get_time"
+ doc="Report the time as returned by the #GstAudioClockGetTimeFunc without applying
+any offsets."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="adjust"
+ c:identifier="gst_audio_clock_adjust"
+ doc="Adjust @time with the internal offset of the audio clock."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="clock">
+ <type name="Gst.SystemClock" c:type="GstSystemClock"/>
+ </field>
+ <field name="func">
+ <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/>
+ </field>
+ <field name="user_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="last_time">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="time_offset" writable="1">
+ <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ </class>
+ <record name="AudioClockClass"
+ c:type="GstAudioClockClass"
+ glib:is-gtype-struct-for="AudioClock">
+ <field name="parent_class">
+ <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="AudioClockGetTimeFunc"
+ c:type="GstAudioClockGetTimeFunc"
+ doc="This function will be called whenever the current clock time needs to be
+calculated. If this function returns #GST_CLOCK_TIME_NONE, the last reported
+time will be returned by the clock.
+be used.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Gst.Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <bitfield name="AudioFieldFlag"
+ doc="Do not use anymore."
+ deprecated="use gst_structure_set() directly"
+ c:type="GstAudioFieldFlag">
+ <member name="rate" value="1" c:identifier="GST_AUDIO_FIELD_RATE"/>
+ <member name="channels"
+ value="2"
+ c:identifier="GST_AUDIO_FIELD_CHANNELS"/>
+ <member name="endianness"
+ value="4"
+ c:identifier="GST_AUDIO_FIELD_ENDIANNESS"/>
+ <member name="width" value="8" c:identifier="GST_AUDIO_FIELD_WIDTH"/>
+ <member name="depth" value="16" c:identifier="GST_AUDIO_FIELD_DEPTH"/>
+ <member name="signed" value="32" c:identifier="GST_AUDIO_FIELD_SIGNED"/>
+ </bitfield>
+ <class name="AudioFilter"
+ c:type="GstAudioFilter"
+ doc="Base class for audio filters with the same format for input and output."
+ version="0.10.12"
+ parent="GstBase.BaseTransform"
+ abstract="1"
+ glib:type-name="GstAudioFilter"
+ glib:get-type="gst_audio_filter_get_type"
+ glib:type-struct="AudioFilterClass">
+ <virtual-method name="setup">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <field name="basetransform">
+ <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
+ </field>
+ <field name="format">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="AudioFilterClass"
+ c:type="GstAudioFilterClass"
+ glib:is-gtype-struct-for="AudioFilter"
+ doc="In addition to the @setup virtual function, you should also override the
+GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual
+function."
+ version="0.10.12">
+ <field name="basetransformclass">
+ <type name="GstBase.BaseTransformClass"
+ c:type="GstBaseTransformClass"/>
+ </field>
+ <field name="setup">
+ <callback name="setup" c:type="setup">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="AudioFilter" c:type="GstAudioFilter*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </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_templates"
+ c:identifier="gst_audio_filter_class_add_pad_templates"
+ doc="Convenience function to add pad templates to this element class, with
+This function is usually used from within a GObject base_init function."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="allowed_caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <callback name="AudioMixerFilterFunc"
+ c:type="GstAudioMixerFilterFunc"
+ doc="Function that will be called by gst_audio_default_registry_mixer_filter()
+so the caller can decide which mixer elements should be kept and returned.
+When the mixer element is passed to the callback function, it is opened
+and in READY state. If you decide to keep the element, you need to set it
+back to NULL state yourself (unless you want to keep it opened of course).">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="GstInterfaces.Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="AudioSink"
+ c:type="GstAudioSink"
+ doc="Opaque #GstAudioSink."
+ parent="BaseAudioSink"
+ glib:type-name="GstAudioSink"
+ glib:get-type="gst_audio_sink_get_type"
+ glib:type-struct="AudioSinkClass">
+ <virtual-method name="open">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="prepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="unprepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="close">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="write">
+ <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>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="delay">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="reset">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </virtual-method>
+ <field name="element">
+ <type name="BaseAudioSink" c:type="GstBaseAudioSink"/>
+ </field>
+ <field name="thread">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="AudioSinkClass"
+ c:type="GstAudioSinkClass"
+ glib:is-gtype-struct-for="AudioSink"
+ doc="This function is also used to check if the device is available.
+drive the synchronisation.
+samples from the device.
+#GstAudioSink class. Override the vmethods to implement functionality.">
+ <field name="parent_class">
+ <type name="BaseAudioSinkClass" c:type="GstBaseAudioSinkClass"/>
+ </field>
+ <field name="open">
+ <callback name="open" c:type="open">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="prepare">
+ <callback name="prepare" c:type="prepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </parameter>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unprepare">
+ <callback name="unprepare" c:type="unprepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="close">
+ <callback name="close" c:type="close">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="write">
+ <callback name="write" c:type="write">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="delay">
+ <callback name="delay" c:type="delay">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="reset">
+ <callback name="reset" c:type="reset">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="AudioSink" c:type="GstAudioSink*"/>
+ </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="AudioSrc"
+ c:type="GstAudioSrc"
+ doc="Base class for simple audio sources."
+ parent="BaseAudioSrc"
+ glib:type-name="GstAudioSrc"
+ glib:get-type="gst_audio_src_get_type"
+ glib:type-struct="AudioSrcClass">
+ <virtual-method name="open">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="prepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="unprepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="close">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="read">
+ <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>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="delay">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="reset">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </virtual-method>
+ <field name="element">
+ <type name="BaseAudioSrc" c:type="GstBaseAudioSrc"/>
+ </field>
+ <field name="thread">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="AudioSrcClass"
+ c:type="GstAudioSrcClass"
+ glib:is-gtype-struct-for="AudioSrc"
+ doc="#GstAudioSrc class. Override the vmethod to implement
+functionality.">
+ <field name="parent_class">
+ <type name="BaseAudioSrcClass" c:type="GstBaseAudioSrcClass"/>
+ </field>
+ <field name="open">
+ <callback name="open" c:type="open">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="prepare">
+ <callback name="prepare" c:type="prepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </parameter>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unprepare">
+ <callback name="unprepare" c:type="unprepare">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="close">
+ <callback name="close" c:type="close">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="read">
+ <callback name="read" c:type="read">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="delay">
+ <callback name="delay" c:type="delay">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="reset">
+ <callback name="reset" c:type="reset">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="AudioSrc" c:type="GstAudioSrc*"/>
+ </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="BaseAudioSink"
+ c:type="GstBaseAudioSink"
+ doc="Opaque #GstBaseAudioSink."
+ parent="GstBase.BaseSink"
+ glib:type-name="GstBaseAudioSink"
+ glib:get-type="gst_base_audio_sink_get_type"
+ glib:type-struct="BaseAudioSinkClass">
+ <virtual-method name="create_ringbuffer" invoker="create_ringbuffer">
+ <return-value transfer-ownership="full">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </return-value>
+ </virtual-method>
+ <method name="create_ringbuffer"
+ c:identifier="gst_base_audio_sink_create_ringbuffer"
+ doc="Create and return the #GstRingBuffer for @sink. This function will call the
+::create_ringbuffer vmethod and will set @sink as the parent of the returned
+buffer (see gst_object_set_parent()).">
+ <return-value transfer-ownership="full">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </return-value>
+ </method>
+ <method name="set_provide_clock"
+ c:identifier="gst_base_audio_sink_set_provide_clock"
+ doc="Controls whether @sink will provide a clock or not. If @provide is %TRUE,
+gst_element_provide_clock() will return a clock that reflects the datarate
+of @sink. If @provide is %FALSE, gst_element_provide_clock() will return NULL."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="provide" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_provide_clock"
+ c:identifier="gst_base_audio_sink_get_provide_clock"
+ doc="Queries whether @sink will provide a clock or not. See also
+gst_base_audio_sink_set_provide_clock."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_slave_method"
+ c:identifier="gst_base_audio_sink_set_slave_method"
+ doc="Controls how clock slaving will be performed in @sink."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="BaseAudioSinkSlaveMethod"
+ c:type="GstBaseAudioSinkSlaveMethod"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_slave_method"
+ c:identifier="gst_base_audio_sink_get_slave_method"
+ doc="Get the current slave method used by @sink."
+ version="0.10.16">
+ <return-value transfer-ownership="full">
+ <type name="BaseAudioSinkSlaveMethod"
+ c:type="GstBaseAudioSinkSlaveMethod"/>
+ </return-value>
+ </method>
+ <property name="buffer-time" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="can-activate-pull" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="drift-tolerance" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="latency-time" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="provide-clock" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="slave-method" writable="1">
+ <type name="BaseAudioSinkSlaveMethod"
+ c:type="GstBaseAudioSinkSlaveMethod"/>
+ </property>
+ <field name="element">
+ <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+ </field>
+ <field name="ringbuffer">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </field>
+ <field name="buffer_time">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="latency_time">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="next_sample">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="provide_clock">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="provided_clock">
+ <type name="Gst.Clock" c:type="GstClock*"/>
+ </field>
+ <field name="priv">
+ <type name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="BaseAudioSinkClass"
+ c:type="GstBaseAudioSinkClass"
+ glib:is-gtype-struct-for="BaseAudioSink"
+ doc="#GstBaseAudioSink class. Override the vmethod to implement
+functionality.">
+ <field name="parent_class">
+ <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
+ </field>
+ <field name="create_ringbuffer">
+ <callback name="create_ringbuffer" c:type="create_ringbuffer">
+ <return-value transfer-ownership="full">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseAudioSink" c:type="GstBaseAudioSink*"/>
+ </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="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate">
+ </record>
+ <enumeration name="BaseAudioSinkSlaveMethod"
+ doc="drifts too much.
+Different possible clock slaving algorithms used when the internal audio
+clock is not selected as the pipeline master clock."
+ glib:type-name="GstBaseAudioSinkSlaveMethod"
+ glib:get-type="gst_base_audio_sink_slave_method_get_type"
+ c:type="GstBaseAudioSinkSlaveMethod">
+ <member name="resample"
+ value="0"
+ c:identifier="GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE"
+ glib:nick="resample"/>
+ <member name="skew"
+ value="1"
+ c:identifier="GST_BASE_AUDIO_SINK_SLAVE_SKEW"
+ glib:nick="skew"/>
+ <member name="none"
+ value="2"
+ c:identifier="GST_BASE_AUDIO_SINK_SLAVE_NONE"
+ glib:nick="none"/>
+ </enumeration>
+ <class name="BaseAudioSrc"
+ c:type="GstBaseAudioSrc"
+ doc="Opaque #GstBaseAudioSrc."
+ parent="GstBase.PushSrc"
+ glib:type-name="GstBaseAudioSrc"
+ glib:get-type="gst_base_audio_src_get_type"
+ glib:type-struct="BaseAudioSrcClass">
+ <virtual-method name="create_ringbuffer" invoker="create_ringbuffer">
+ <return-value transfer-ownership="full">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </return-value>
+ </virtual-method>
+ <method name="create_ringbuffer"
+ c:identifier="gst_base_audio_src_create_ringbuffer"
+ doc="Create and return the #GstRingBuffer for @src. This function will call the
+::create_ringbuffer vmethod and will set @src as the parent of the returned
+buffer (see gst_object_set_parent()).">
+ <return-value transfer-ownership="full">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </return-value>
+ </method>
+ <method name="set_provide_clock"
+ c:identifier="gst_base_audio_src_set_provide_clock"
+ doc="Controls whether @src will provide a clock or not. If @provide is %TRUE,
+gst_element_provide_clock() will return a clock that reflects the datarate
+of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="provide" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_provide_clock"
+ c:identifier="gst_base_audio_src_get_provide_clock"
+ doc="Queries whether @src will provide a clock or not. See also
+gst_base_audio_src_set_provide_clock."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_slave_method"
+ c:identifier="gst_base_audio_src_set_slave_method"
+ doc="Controls how clock slaving will be performed in @src."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="BaseAudioSrcSlaveMethod"
+ c:type="GstBaseAudioSrcSlaveMethod"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_slave_method"
+ c:identifier="gst_base_audio_src_get_slave_method"
+ doc="Get the current slave method used by @src."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="BaseAudioSrcSlaveMethod"
+ c:type="GstBaseAudioSrcSlaveMethod"/>
+ </return-value>
+ </method>
+ <property name="actual-buffer-time"
+ version="0.10.20"
+ doc="Actual configured size of audio buffer in microseconds.">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="actual-latency-time"
+ version="0.10.20"
+ doc="Actual configured audio latency in microseconds.">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="buffer-time" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="latency-time" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="provide-clock" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="slave-method" writable="1">
+ <type name="BaseAudioSrcSlaveMethod"
+ c:type="GstBaseAudioSrcSlaveMethod"/>
+ </property>
+ <field name="element">
+ <type name="GstBase.PushSrc" c:type="GstPushSrc"/>
+ </field>
+ <field name="ringbuffer">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </field>
+ <field name="buffer_time">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="latency_time">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="next_sample">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="clock">
+ <type name="Gst.Clock" c:type="GstClock*"/>
+ </field>
+ <field name="priv">
+ <type name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="BaseAudioSrcClass"
+ c:type="GstBaseAudioSrcClass"
+ glib:is-gtype-struct-for="BaseAudioSrc"
+ doc="#GstBaseAudioSrc class. Override the vmethod to implement
+functionality.">
+ <field name="parent_class">
+ <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/>
+ </field>
+ <field name="create_ringbuffer">
+ <callback name="create_ringbuffer" c:type="create_ringbuffer">
+ <return-value transfer-ownership="full">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseAudioSrc" c:type="GstBaseAudioSrc*"/>
+ </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="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate">
+ </record>
+ <enumeration name="BaseAudioSrcSlaveMethod"
+ doc="clock time.
+drifts too much.
+Different possible clock slaving algorithms when the internal audio clock was
+not selected as the pipeline clock."
+ glib:type-name="GstBaseAudioSrcSlaveMethod"
+ glib:get-type="gst_base_audio_src_slave_method_get_type"
+ c:type="GstBaseAudioSrcSlaveMethod">
+ <member name="resample"
+ value="0"
+ c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE"
+ glib:nick="resample"/>
+ <member name="re_timestamp"
+ value="1"
+ c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP"
+ glib:nick="re-timestamp"/>
+ <member name="skew" value="2" c:identifier="GST_BASE_AUDIO_SRC_SLAVE_SKEW" glib:nick="skew"/>
+ <member name="none"
+ value="3"
+ c:identifier="GST_BASE_AUDIO_SRC_SLAVE_NONE"
+ glib:nick="none"/>
+ </enumeration>
+ <enumeration name="BufferFormat"
+ glib:type-name="GstBufferFormat"
+ glib:get-type="gst_buffer_format_get_type"
+ c:type="GstBufferFormat">
+ <member name="unknown"
+ value="0"
+ c:identifier="GST_UNKNOWN"
+ glib:nick="unknown"/>
+ <member name="s8" value="1" c:identifier="GST_S8" glib:nick="s8"/>
+ <member name="u8" value="2" c:identifier="GST_U8" glib:nick="u8"/>
+ <member name="s16_le"
+ value="3"
+ c:identifier="GST_S16_LE"
+ glib:nick="s16-le"/>
+ <member name="s16_be"
+ value="4"
+ c:identifier="GST_S16_BE"
+ glib:nick="s16-be"/>
+ <member name="u16_le"
+ value="5"
+ c:identifier="GST_U16_LE"
+ glib:nick="u16-le"/>
+ <member name="u16_be"
+ value="6"
+ c:identifier="GST_U16_BE"
+ glib:nick="u16-be"/>
+ <member name="s24_le"
+ value="7"
+ c:identifier="GST_S24_LE"
+ glib:nick="s24-le"/>
+ <member name="s24_be"
+ value="8"
+ c:identifier="GST_S24_BE"
+ glib:nick="s24-be"/>
+ <member name="u24_le"
+ value="9"
+ c:identifier="GST_U24_LE"
+ glib:nick="u24-le"/>
+ <member name="u24_be"
+ value="10"
+ c:identifier="GST_U24_BE"
+ glib:nick="u24-be"/>
+ <member name="s32_le"
+ value="11"
+ c:identifier="GST_S32_LE"
+ glib:nick="s32-le"/>
+ <member name="s32_be"
+ value="12"
+ c:identifier="GST_S32_BE"
+ glib:nick="s32-be"/>
+ <member name="u32_le"
+ value="13"
+ c:identifier="GST_U32_LE"
+ glib:nick="u32-le"/>
+ <member name="u32_be"
+ value="14"
+ c:identifier="GST_U32_BE"
+ glib:nick="u32-be"/>
+ <member name="s24_3le"
+ value="15"
+ c:identifier="GST_S24_3LE"
+ glib:nick="s24-3le"/>
+ <member name="s24_3be"
+ value="16"
+ c:identifier="GST_S24_3BE"
+ glib:nick="s24-3be"/>
+ <member name="u24_3le"
+ value="17"
+ c:identifier="GST_U24_3LE"
+ glib:nick="u24-3le"/>
+ <member name="u24_3be"
+ value="18"
+ c:identifier="GST_U24_3BE"
+ glib:nick="u24-3be"/>
+ <member name="s20_3le"
+ value="19"
+ c:identifier="GST_S20_3LE"
+ glib:nick="s20-3le"/>
+ <member name="s20_3be"
+ value="20"
+ c:identifier="GST_S20_3BE"
+ glib:nick="s20-3be"/>
+ <member name="u20_3le"
+ value="21"
+ c:identifier="GST_U20_3LE"
+ glib:nick="u20-3le"/>
+ <member name="u20_3be"
+ value="22"
+ c:identifier="GST_U20_3BE"
+ glib:nick="u20-3be"/>
+ <member name="s18_3le"
+ value="23"
+ c:identifier="GST_S18_3LE"
+ glib:nick="s18-3le"/>
+ <member name="s18_3be"
+ value="24"
+ c:identifier="GST_S18_3BE"
+ glib:nick="s18-3be"/>
+ <member name="u18_3le"
+ value="25"
+ c:identifier="GST_U18_3LE"
+ glib:nick="u18-3le"/>
+ <member name="u18_3be"
+ value="26"
+ c:identifier="GST_U18_3BE"
+ glib:nick="u18-3be"/>
+ <member name="float32_le"
+ value="27"
+ c:identifier="GST_FLOAT32_LE"
+ glib:nick="float32-le"/>
+ <member name="float32_be"
+ value="28"
+ c:identifier="GST_FLOAT32_BE"
+ glib:nick="float32-be"/>
+ <member name="float64_le"
+ value="29"
+ c:identifier="GST_FLOAT64_LE"
+ glib:nick="float64-le"/>
+ <member name="float64_be"
+ value="30"
+ c:identifier="GST_FLOAT64_BE"
+ glib:nick="float64-be"/>
+ <member name="mu_law"
+ value="31"
+ c:identifier="GST_MU_LAW"
+ glib:nick="mu-law"/>
+ <member name="a_law"
+ value="32"
+ c:identifier="GST_A_LAW"
+ glib:nick="a-law"/>
+ <member name="ima_adpcm"
+ value="33"
+ c:identifier="GST_IMA_ADPCM"
+ glib:nick="ima-adpcm"/>
+ <member name="mpeg" value="34" c:identifier="GST_MPEG" glib:nick="mpeg"/>
+ <member name="gsm" value="35" c:identifier="GST_GSM" glib:nick="gsm"/>
+ <member name="iec958"
+ value="36"
+ c:identifier="GST_IEC958"
+ glib:nick="iec958"/>
+ <member name="ac3" value="37" c:identifier="GST_AC3" glib:nick="ac3"/>
+ <member name="eac3" value="38" c:identifier="GST_EAC3" glib:nick="eac3"/>
+ <member name="dts" value="39" c:identifier="GST_DTS" glib:nick="dts"/>
+ </enumeration>
+ <enumeration name="BufferFormatType"
+ doc="The format of the samples in the ringbuffer."
+ glib:type-name="GstBufferFormatType"
+ glib:get-type="gst_buffer_format_type_get_type"
+ c:type="GstBufferFormatType">
+ <member name="linear"
+ value="0"
+ c:identifier="GST_BUFTYPE_LINEAR"
+ glib:nick="linear"/>
+ <member name="float"
+ value="1"
+ c:identifier="GST_BUFTYPE_FLOAT"
+ glib:nick="float"/>
+ <member name="mu_law"
+ value="2"
+ c:identifier="GST_BUFTYPE_MU_LAW"
+ glib:nick="mu-law"/>
+ <member name="a_law"
+ value="3"
+ c:identifier="GST_BUFTYPE_A_LAW"
+ glib:nick="a-law"/>
+ <member name="ima_adpcm"
+ value="4"
+ c:identifier="GST_BUFTYPE_IMA_ADPCM"
+ glib:nick="ima-adpcm"/>
+ <member name="mpeg"
+ value="5"
+ c:identifier="GST_BUFTYPE_MPEG"
+ glib:nick="mpeg"/>
+ <member name="gsm"
+ value="6"
+ c:identifier="GST_BUFTYPE_GSM"
+ glib:nick="gsm"/>
+ <member name="iec958"
+ value="7"
+ c:identifier="GST_BUFTYPE_IEC958"
+ glib:nick="iec958"/>
+ <member name="ac3"
+ value="8"
+ c:identifier="GST_BUFTYPE_AC3"
+ glib:nick="ac3"/>
+ <member name="eac3"
+ value="9"
+ c:identifier="GST_BUFTYPE_EAC3"
+ glib:nick="eac3"/>
+ <member name="dts"
+ value="10"
+ c:identifier="GST_BUFTYPE_DTS"
+ glib:nick="dts"/>
+ </enumeration>
+ <constant name="DEF_RATE" value="44100">
+ <type name="int"/>
+ </constant>
+ <constant name="FLOAT_PAD_TEMPLATE_CAPS"
+ value="audio/x-raw-float, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN , BIG_ENDIAN }, width = (int) { 32, 64 }">
+ <type name="utf8"/>
+ </constant>
+ <constant name="FLOAT_STANDARD_PAD_TEMPLATE_CAPS"
+ value="audio/x-raw-float, width = (int) 32, rate = (int) [ 1, MAX ], channels = (int) 1, endianness = (int) BYTE_ORDER">
+ <type name="utf8"/>
+ </constant>
+ <constant name="INT_PAD_TEMPLATE_CAPS"
+ value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, width = (int) { 8, 16, 24, 32 }, depth = (int) [ 1, 32 ], signed = (boolean) { true, false }">
+ <type name="utf8"/>
+ </constant>
+ <constant name="INT_STANDARD_PAD_TEMPLATE_CAPS"
+ value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) 2, endianness = (int) BYTE_ORDER, width = (int) 16, depth = (int) 16, signed = (boolean) true">
+ <type name="utf8"/>
+ </constant>
+ <class name="RingBuffer"
+ c:type="GstRingBuffer"
+ doc="The ringbuffer base class structure."
+ parent="Gst.Object"
+ abstract="1"
+ glib:type-name="GstRingBuffer"
+ glib:get-type="gst_ring_buffer_get_type"
+ glib:type-struct="RingBufferClass">
+ <function name="parse_caps"
+ c:identifier="gst_ring_buffer_parse_caps"
+ doc="Parse @caps into @spec.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_spec_caps"
+ c:identifier="gst_ring_buffer_debug_spec_caps"
+ doc="Print debug info about the parsed caps in @spec to the debug log.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="debug_spec_buff"
+ c:identifier="gst_ring_buffer_debug_spec_buff"
+ doc="Print debug info about the buffer sized in @spec to the debug log.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="open_device" invoker="open_device">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="acquire" invoker="acquire">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="release" invoker="release">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="close_device" invoker="close_device">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="start" invoker="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="pause" invoker="pause">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="resume">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="stop" invoker="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="delay" invoker="delay">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="activate" invoker="activate">
+ <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>
+ </virtual-method>
+ <virtual-method name="commit">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="in_samples" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="out_samples" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="accum" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="clear_all" invoker="clear_all">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </virtual-method>
+ <method name="set_callback"
+ c:identifier="gst_ring_buffer_set_callback"
+ doc="Sets the given callback function on the buffer. This function
+will be called every time a segment has been written to a device.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="cb"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="convert"
+ c:identifier="gst_ring_buffer_convert"
+ doc="Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result
+will be put in @dest_val."
+ version="0.10.22.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src_fmt" transfer-ownership="none">
+ <type name="Gst.Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="src_val" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ <parameter name="dest_fmt" transfer-ownership="none">
+ <type name="Gst.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="open_device"
+ c:identifier="gst_ring_buffer_open_device"
+ doc="Open the audio device associated with the ring buffer. Does not perform any
+setup on the device. You must open the device before acquiring the ring
+buffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="close_device"
+ c:identifier="gst_ring_buffer_close_device"
+ doc="Close the audio device associated with the ring buffer. The ring buffer
+should already have been released via gst_ring_buffer_release().
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="device_is_open"
+ c:identifier="gst_ring_buffer_device_is_open"
+ doc="Checks the status of the device associated with the ring buffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="acquire"
+ c:identifier="gst_ring_buffer_acquire"
+ doc="Allocate the resources for the ringbuffer. This function fills
+in the data pointer of the ring buffer with a valid #GstBuffer
+to which samples can be written.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="release"
+ c:identifier="gst_ring_buffer_release"
+ doc="Free the resources of the ringbuffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="is_acquired"
+ c:identifier="gst_ring_buffer_is_acquired"
+ doc="Check if the ringbuffer is acquired and ready to use.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="activate"
+ c:identifier="gst_ring_buffer_activate"
+ doc="Activate @buf to start or stop pulling data.
+MT safe.
+FALSE on error."
+ version="0.10.22.">
+ <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_ring_buffer_is_active"
+ doc="Check if @buf is activated.
+MT safe."
+ version="0.10.22.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_flushing"
+ c:identifier="gst_ring_buffer_set_flushing"
+ doc="Set the ringbuffer to flushing mode or normal mode.
+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="start"
+ c:identifier="gst_ring_buffer_start"
+ doc="Start processing samples from the ringbuffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="pause"
+ c:identifier="gst_ring_buffer_pause"
+ doc="Pause processing samples from the ringbuffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="stop"
+ c:identifier="gst_ring_buffer_stop"
+ doc="Stop processing samples from the ringbuffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="delay"
+ c:identifier="gst_ring_buffer_delay"
+ doc="Get the number of samples queued in the audio device. This is
+usually less than the segment size but can be bigger when the
+implementation uses another internal buffer between the audio
+device.
+For playback ringbuffers this is the amount of samples transfered from the
+ringbuffer to the device but still not played.
+For capture ringbuffers this is the amount of samples in the device that are
+not yet transfered to the ringbuffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="samples_done"
+ c:identifier="gst_ring_buffer_samples_done"
+ doc="Get the number of samples that were processed by the ringbuffer
+since it was last started. This does not include the number of samples not
+yet processed (see gst_ring_buffer_delay()).
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ </method>
+ <method name="set_sample"
+ c:identifier="gst_ring_buffer_set_sample"
+ doc="Make sure that the next sample written to the device is
+accounted for as being the @sample sample written to the
+device. This value will be used in reporting the current
+sample position of the ringbuffer.
+This function will also clear the buffer with silence.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="clear_all"
+ c:identifier="gst_ring_buffer_clear_all"
+ doc="Fill the ringbuffer with silence.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="commit"
+ c:identifier="gst_ring_buffer_commit"
+ doc="Same as gst_ring_buffer_commit_full() but with a in_samples and out_samples
+equal to @len, ignoring accum.
+error.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="commit_full"
+ c:identifier="gst_ring_buffer_commit_full"
+ doc="Commit @in_samples samples pointed to by @data to the ringbuffer @buf.
+samples in @data. For negative rates, @out_samples must be negative and
+When @out_samples is positive, the first sample will be written at position @sample
+in the ringbuffer. When @out_samples is negative, the last sample will be written to
+although it is recommended for optimal performance.
+set to 0 when this function is first called. In case the commit operation is
+interrupted, one can resume the processing by passing the previously returned
+MT safe.
+number of samples written can be less than @out_samples when @buf was interrupted
+with a flush or stop."
+ version="0.10.11.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="in_samples" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="out_samples" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="accum" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="read"
+ c:identifier="gst_ring_buffer_read"
+ doc="Read @len samples from the ringbuffer into the memory pointed
+to by @data.
+The first sample should be read from position @sample in
+the ringbuffer.
+although it is recommended.
+error.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="prepare_read"
+ c:identifier="gst_ring_buffer_prepare_read"
+ doc="Returns a pointer to memory where the data from segment @segment
+can be found. This function is mostly used by subclasses.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="segment" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="readptr" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ <parameter name="len" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="clear"
+ c:identifier="gst_ring_buffer_clear"
+ doc="Clear the given segment of the buffer with silence samples.
+This function is used by subclasses.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="segment" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="advance"
+ c:identifier="gst_ring_buffer_advance"
+ doc="Subclasses should call this function to notify the fact that
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="advance" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="may_start"
+ c:identifier="gst_ring_buffer_may_start"
+ doc="Tell the ringbuffer that it is allowed to start playback when
+the ringbuffer is filled with samples.
+MT safe."
+ version="0.10.6">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="allowed" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="object">
+ <type name="Gst.Object" c:type="GstObject"/>
+ </field>
+ <field name="cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="open">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="acquired">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="data">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </field>
+ <field name="spec">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec"/>
+ </field>
+ <field name="segstate">
+ <type name="RingBufferSegState" c:type="GstRingBufferSegState*"/>
+ </field>
+ <field name="samples_per_seg">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="empty_seg">
+ <type name="any" c:type="guint8*"/>
+ </field>
+ <field name="state">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="segdone">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="segbase">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="waiting">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="callback">
+ <type name="RingBufferCallback" c:type="GstRingBufferCallback"/>
+ </field>
+ <field name="cb_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="flushing" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="may_start" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="active" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ </class>
+ <callback name="RingBufferCallback"
+ c:type="GstRingBufferCallback"
+ doc="This function is set with gst_ring_buffer_set_callback() and is
+called to fill the memory at @data with @len bytes of samples.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="rbuf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="len" 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>
+ <record name="RingBufferClass"
+ c:type="GstRingBufferClass"
+ glib:is-gtype-struct-for="RingBuffer"
+ doc="consumed segments in the device. Since 0.10.22
+The vmethods that subclasses can override to implement the ringbuffer.">
+ <field name="parent_class">
+ <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ <field name="open_device">
+ <callback name="open_device" c:type="open_device">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="acquire">
+ <callback name="acquire" c:type="acquire">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ <parameter name="spec" transfer-ownership="none">
+ <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="release">
+ <callback name="release" c:type="release">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="close_device">
+ <callback name="close_device" c:type="close_device">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="start">
+ <callback name="start" c:type="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pause">
+ <callback name="pause" c:type="pause">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="resume">
+ <callback name="resume" c:type="resume">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="stop">
+ <callback name="stop" c:type="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="delay">
+ <callback name="delay" c:type="delay">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="activate">
+ <callback name="activate" c:type="activate">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="commit">
+ <callback name="commit" c:type="commit">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ <parameter name="sample" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guchar*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="in_samples" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="out_samples" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="accum" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="clear_all">
+ <callback name="clear_all" c:type="clear_all">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="RingBuffer" c:type="GstRingBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="1">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="RingBufferSegState"
+ doc="The state of a segment in the ringbuffer."
+ glib:type-name="GstRingBufferSegState"
+ glib:get-type="gst_ring_buffer_seg_state_get_type"
+ c:type="GstRingBufferSegState">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_SEGSTATE_INVALID"
+ glib:nick="invalid"/>
+ <member name="empty"
+ value="1"
+ c:identifier="GST_SEGSTATE_EMPTY"
+ glib:nick="empty"/>
+ <member name="filled"
+ value="2"
+ c:identifier="GST_SEGSTATE_FILLED"
+ glib:nick="filled"/>
+ <member name="partial"
+ value="3"
+ c:identifier="GST_SEGSTATE_PARTIAL"
+ glib:nick="partial"/>
+ </enumeration>
+ <record name="RingBufferSpec"
+ c:type="GstRingBufferSpec"
+ doc="defaults to segtotal
+The structure containing the format specification of the ringbuffer.">
+ <field name="caps" writable="1">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="BufferFormatType" c:type="GstBufferFormatType"/>
+ </field>
+ <field name="format" writable="1">
+ <type name="BufferFormat" c:type="GstBufferFormat"/>
+ </field>
+ <field name="sign" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="bigend" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="width" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="depth" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="rate" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="channels" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="latency_time" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="buffer_time" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="segsize" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="segtotal" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="bytes_per_sample" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="silence_sample" writable="1">
+ <array zero-terminated="0" c:type="guint8" fixed-size="32">
+ <type name="uint8"/>
+ </array>
+ </field>
+ <field name="seglatency" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="guint8" fixed-size="0">
+ <type name="uint8"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="RingBufferState"
+ doc="The state of the ringbuffer."
+ glib:type-name="GstRingBufferState"
+ glib:get-type="gst_ring_buffer_state_get_type"
+ c:type="GstRingBufferState">
+ <member name="stopped"
+ value="0"
+ c:identifier="GST_RING_BUFFER_STATE_STOPPED"
+ glib:nick="stopped"/>
+ <member name="paused"
+ value="1"
+ c:identifier="GST_RING_BUFFER_STATE_PAUSED"
+ glib:nick="paused"/>
+ <member name="started"
+ value="2"
+ c:identifier="GST_RING_BUFFER_STATE_STARTED"
+ glib:nick="started"/>
+ </enumeration>
+ <function name="buffer_clip"
+ c:identifier="gst_audio_buffer_clip"
+ doc="Clip the the buffer to the given %GstSegment.
+After calling this function the caller does not own a reference to
+otherwise the clipped buffer is returned.
+If the buffer has no timestamp, it is assumed to be inside the segment and
+is not clipped"
+ version="0.10.14">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="segment" transfer-ownership="none">
+ <type name="Gst.Segment" c:type="GstSegment*"/>
+ </parameter>
+ <parameter name="rate" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="frame_size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="check_channel_positions"
+ c:identifier="gst_audio_check_channel_positions"
+ doc="This functions checks if the given channel positions are valid. Channel
+positions are valid if:
+<itemizedlist>
+<listitem><para>No channel positions appears twice or all positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
+</para></listitem>
+<listitem><para>Either all or none of the channel positions are %GST_AUDIO_CHANNEL_POSITION_NONE.
+</para></listitem>
+<listitem><para>%GST_AUDIO_CHANNEL_POSITION_FRONT_MONO and %GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT or %GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT don't appear together in the given positions.
+</para></listitem>
+</itemizedlist>
+and %FALSE otherwise."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+ </parameter>
+ <parameter name="channels" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="default_registry_mixer_filter"
+ c:identifier="gst_audio_default_registry_mixer_filter"
+ doc="Utility function to find audio mixer elements.
+Will traverse the default plugin registry in order of plugin rank and
+find usable audio mixer elements. The caller may optionally fine-tune
+the selection by specifying a filter function.
+element in the list by setting it to NULL state and calling
+gst_object_unref(). After that the list itself should be freed
+using g_list_free()."
+ version="0.10.2">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter_func" transfer-ownership="none" scope="call">
+ <type name="AudioMixerFilterFunc" c:type="GstAudioMixerFilterFunc"/>
+ </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="duration_from_pad_buffer"
+ c:identifier="gst_audio_duration_from_pad_buffer"
+ doc="Calculate length in nanoseconds of audio buffer @buf based on capabilities of">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="fixate_channel_positions"
+ c:identifier="gst_audio_fixate_channel_positions"
+ doc=""channel-positions" field.
+Custom fixate function. Elements that implement some sort of
+channel conversion algorithm should use this function for
+fixating on GstAudioChannelPosition properties. It will take
+care of equal channel positioning (left/right). Caller g_free()s
+the return value. The input properties may be (and are supposed
+to be) unfixed.
+Note that this function is mostly a hack because we currently
+have no way to add default fixation functions for new GTypes.
+set of #GstAudioChannelPosition values.">
+ <return-value transfer-ownership="full">
+ <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="frame_byte_size"
+ c:identifier="gst_audio_frame_byte_size"
+ doc="Calculate byte size of an audio frame.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="frame_length"
+ c:identifier="gst_audio_frame_length"
+ doc="Calculate length of buffer in frames.">
+ <return-value transfer-ownership="none">
+ <type name="long" c:type="long"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_channel_positions"
+ c:identifier="gst_audio_get_channel_positions"
+ doc="Retrieves a number of (fixed!) audio channel positions from
+the provided #GstStructure and returns it as a newly allocated
+array. The caller should g_free () this array. The caller
+should also check that the members in this #GstStructure are
+indeed "fixed" before calling this function.
+positions as provided in the given #GstStructure. Returns
+NULL on error.">
+ <return-value transfer-ownership="full">
+ <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="is_buffer_framed"
+ c:identifier="gst_audio_is_buffer_framed"
+ doc="Check if the buffer size is a whole multiple of the frame size.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="set_caps_channel_positions_list"
+ c:identifier="gst_audio_set_caps_channel_positions_list"
+ doc="channel positions that we should add in each value
+of the array in the given structure.
+Sets a (possibly non-fixed) list of possible audio channel
+positions (given in pos) on the given caps. Each of the
+structures of the caps, after this function has been called,
+will contain a "channel-positions" field with an array.
+Each value in the array will contain each of the values given
+in the pos array. Note that the size of the caps might be
+increased by this, since each structure with a "channel-
+positions" field needs to have a fixed "channels" field.
+The input caps is not required to have this.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+ </parameter>
+ <parameter name="num_positions" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="set_channel_positions"
+ c:identifier="gst_audio_set_channel_positions"
+ doc="in this array should be equal to the (fixed!) number
+of the "channels" field in the given #GstStructure.
+Adds a "channel-positions" field to the given #GstStructure,
+which will represent the channel positions as given in the
+provided #GstAudioChannelPosition array.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="set_structure_channel_positions_list"
+ c:identifier="gst_audio_set_structure_channel_positions_list"
+ doc="on.
+channel positions that we should add in each value
+of the array in the given structure.
+Sets a (possibly non-fixed) list of possible audio channel
+positions (given in pos) on the given structure. The
+structure, after this function has been called, will contain
+a "channel-positions" field with an array of the size of
+the "channels" field value in the given structure (note
+that this means that the channels field in the provided
+structure should be fixed!). Each value in the array will
+contain each of the values given in the pos array.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/>
+ </parameter>
+ <parameter name="num_positions" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="structure_set_int"
+ c:identifier="gst_audio_structure_set_int"
+ doc="Do not use anymore."
+ deprecated="use gst_structure_set()">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ <parameter name="flag" transfer-ownership="none">
+ <type name="AudioFieldFlag" c:type="GstAudioFieldFlag"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.audio.ffi ;
+IN: gstreamer.audio
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi gstreamer.base.ffi
+gstreamer.interfaces.ffi ;
+IN: gstreamer.audio.ffi
+
+<<
+"gstreamer.audio" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstaudio-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/audio/GstAudio-0.10.gir
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/base/gstadapter.h"/>
+ <c:include name="gst/base/gstbasesink.h"/>
+ <c:include name="gst/base/gstbasesrc.h"/>
+ <c:include name="gst/base/gstbasetransform.h"/>
+ <c:include name="gst/base/gstbitreader.h"/>
+ <c:include name="gst/base/gstbytereader.h"/>
+ <c:include name="gst/base/gstbytewriter.h"/>
+ <c:include name="gst/base/gstcollectpads.h"/>
+ <c:include name="gst/base/gstdataqueue.h"/>
+ <c:include name="gst/base/gstpushsrc.h"/>
+ <c:include name="gst/base/gsttypefindhelper.h"/>
+ <namespace name="GstBase"
+ version="0.10"
+ shared-library="libgstbase-0.10.so.0"
+ c:prefix="Gst">
+ <class name="Adapter"
+ c:type="GstAdapter"
+ doc="The opaque #GstAdapter data structure."
+ parent="GObject.Object"
+ glib:type-name="GstAdapter"
+ glib:get-type="gst_adapter_get_type"
+ glib:type-struct="AdapterClass">
+ <constructor name="new"
+ c:identifier="gst_adapter_new"
+ doc="Creates a new #GstAdapter. Free with g_object_unref().">
+ <return-value transfer-ownership="full">
+ <type name="Adapter" c:type="GstAdapter*"/>
+ </return-value>
+ </constructor>
+ <method name="clear"
+ c:identifier="gst_adapter_clear"
+ doc="Removes all buffers from @adapter.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="push"
+ c:identifier="gst_adapter_push"
+ doc="Adds the data from @buf to the data stored inside @adapter and takes
+ownership of the buffer.
+Empty buffers will be automatically dereferenced and not stored in the">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek"
+ c:identifier="gst_adapter_peek"
+ doc="Gets the first @size bytes stored in the @adapter. The returned pointer is
+valid until the next function is called on the adapter.
+Note that setting the returned pointer as the data of a #GstBuffer is
+incorrect for general-purpose plugins. The reason is that if a downstream
+element stores the buffer so that it has access to it outside of the bounds
+of its chain function, the buffer will have an invalid data pointer after
+your element flushes the bytes. In that case you should use
+gst_adapter_take(), which returns a freshly-allocated buffer that you can set
+as #GstBuffer malloc_data or the potentially more performant
+gst_adapter_take_buffer().
+Returns #NULL if @size bytes are not available.">
+ <return-value transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="copy"
+ c:identifier="gst_adapter_copy"
+ doc="Copies @size bytes of data starting at @offset out of the buffers
+contained in @GstAdapter into an array @dest provided by the caller.
+The array @dest should be large enough to contain @size bytes.
+The user should check that the adapter has (@offset + @size) bytes
+available before calling this function."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="dest" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <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="flush"
+ c:identifier="gst_adapter_flush"
+ doc="Flushes the first @flush bytes in the @adapter. The caller must ensure that
+at least this many bytes are available.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="flush" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="take"
+ c:identifier="gst_adapter_take"
+ doc="Returns a freshly allocated buffer containing the first @nbytes bytes of the
+Caller owns returned value. g_free after usage.">
+ <return-value transfer-ownership="full">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </return-value>
+ <parameters>
+ <parameter name="nbytes" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="take_buffer"
+ c:identifier="gst_adapter_take_buffer"
+ doc="Returns a #GstBuffer containing the first @nbytes bytes of the
+This function is potentially more performant than gst_adapter_take()
+since it can reuse the memory in pushed buffers by subbuffering
+or merging.
+Caller owns returned value. gst_buffer_unref() after usage.
+or #NULL if @nbytes bytes are not available"
+ version="0.10.6">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="nbytes" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="available"
+ c:identifier="gst_adapter_available"
+ doc="Gets the maximum amount of bytes available, that is it returns the maximum
+value that can be supplied to gst_adapter_peek() without that function
+returning NULL.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="available_fast"
+ c:identifier="gst_adapter_available_fast"
+ doc="Gets the maximum number of bytes that are immediately available without
+requiring any expensive operations (like copying the data into a
+temporary buffer).
+operations">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="prev_timestamp"
+ c:identifier="gst_adapter_prev_timestamp"
+ doc="Get the timestamp that was before the current byte in the adapter. When
+position is returned.
+The timestamp is reset to GST_CLOCK_TIME_NONE when the adapter is first
+created or when it is cleared."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="distance" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="masked_scan_uint32"
+ c:identifier="gst_adapter_masked_scan_uint32"
+ doc="the last scanned position.
+Scan for pattern @pattern with applied mask @mask in the adapter data,
+starting from offset @offset.
+The bytes in @pattern and @mask are interpreted left-to-right, regardless
+of endianness. All four bytes of the pattern must be present in the
+adapter for it to match, even if the first or last bytes are masked out.
+It is an error to call this function without making sure that there is
+enough data (offset+size bytes) in the adapter.
+Example:
+<programlisting>
+// Assume the adapter contains 0x00 0x01 0x02 ... 0xfe 0xff
+gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 0, 256);
+// -> returns 0
+gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 1, 255);
+// -> returns -1
+gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x01020304, 1, 255);
+// -> returns 1
+gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0001, 0, 256);
+// -> returns -1
+gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0203, 0, 256);
+// -> returns 0
+gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 256);
+// -> returns 2
+gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4);
+// -> returns -1
+</programlisting>"
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="mask" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="pattern" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <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>
+ <field name="object">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="buflist">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </field>
+ <field name="size">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="skip">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="assembled_data">
+ <type name="any" c:type="guint8*"/>
+ </field>
+ <field name="assembled_size">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="assembled_len">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="buflist_end">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </field>
+ <field name="priv">
+ <type name="AdapterPrivate" c:type="GstAdapterPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="AdapterClass"
+ c:type="GstAdapterClass"
+ glib:is-gtype-struct-for="Adapter">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="AdapterPrivate" c:type="GstAdapterPrivate">
+ </record>
+ <class name="BaseSink"
+ c:type="GstBaseSink"
+ doc="The opaque #GstBaseSink data structure."
+ parent="Gst.Element"
+ abstract="1"
+ glib:type-name="GstBaseSink"
+ glib:get-type="gst_base_sink_get_type"
+ glib:type-struct="BaseSinkClass">
+ <virtual-method name="get_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="buffer_alloc">
+ <return-value transfer-ownership="full">
+ <type name="Gst.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="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_times">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="unlock">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="preroll">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="render">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="async_play">
+ <return-value transfer-ownership="full">
+ <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="activate_pull">
+ <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>
+ </virtual-method>
+ <virtual-method name="fixate">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="unlock_stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="render_list">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer_list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="do_preroll"
+ c:identifier="gst_base_sink_do_preroll"
+ doc="If the @sink spawns its own thread for pulling buffers from upstream it
+should call this method after it has pulled a buffer. If the element needed
+to preroll, this function will perform the preroll and will then block
+until the element state is changed.
+This function should be called with the PREROLL_LOCK held.
+Since 0.10.22
+continue. Any other return value should be returned from the render vmethod.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Gst.MiniObject" c:type="GstMiniObject*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="wait_preroll"
+ c:identifier="gst_base_sink_wait_preroll"
+ doc="If the #GstBaseSinkClass.render() method performs its own synchronisation
+against the clock it must unblock when going from PLAYING to the PAUSED state
+and call this method before continuing to render the remaining data.
+This function will block until a state change to PLAYING happens (in which
+case this function returns #GST_FLOW_OK) or the processing must be stopped due
+to a state change to READY or a FLUSH event (in which case this function
+returns #GST_FLOW_WRONG_STATE).
+This function should only be called with the PREROLL_LOCK held, like in the
+render function.
+continue. Any other return value should be returned from the render vmethod."
+ version="0.10.11">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ </method>
+ <method name="set_sync"
+ c:identifier="gst_base_sink_set_sync"
+ doc="Configures @sink to synchronize on the clock or not. When
+possible. If @sync is TRUE, the timestamps of the incomming
+buffers will be used to schedule the exact render time of its
+contents."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sync" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_sync"
+ c:identifier="gst_base_sink_get_sync"
+ doc="Checks if @sink is currently configured to synchronize against the
+clock."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_max_lateness"
+ c:identifier="gst_base_sink_set_max_lateness"
+ doc="Sets the new max lateness value to @max_lateness. This value is
+used to decide if a buffer should be dropped or not based on the
+buffer timestamp and the current clock time. A value of -1 means
+an unlimited time."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="max_lateness" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_max_lateness"
+ c:identifier="gst_base_sink_get_max_lateness"
+ doc="Gets the max lateness value. See gst_base_sink_set_max_lateness for
+more details.
+before it is dropped and not rendered. A value of -1 means an
+unlimited time."
+ version="0.10.4">
+ <return-value transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </return-value>
+ </method>
+ <method name="set_qos_enabled"
+ c:identifier="gst_base_sink_set_qos_enabled"
+ doc="Configures @sink to send Quality-of-Service events upstream."
+ version="0.10.5">
+ <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>
+ </method>
+ <method name="is_qos_enabled"
+ c:identifier="gst_base_sink_is_qos_enabled"
+ doc="Checks if @sink is currently configured to send Quality-of-Service events
+upstream."
+ version="0.10.5">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_async_enabled"
+ c:identifier="gst_base_sink_set_async_enabled"
+ doc="Configures @sink to perform all state changes asynchronusly. When async is
+disabled, the sink will immediatly go to PAUSED instead of waiting for a
+preroll buffer. This feature is usefull if the sink does not synchronize
+against the clock or when it is dealing with sparse streams."
+ version="0.10.15">
+ <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>
+ </method>
+ <method name="is_async_enabled"
+ c:identifier="gst_base_sink_is_async_enabled"
+ doc="Checks if @sink is currently configured to perform asynchronous state
+changes to PAUSED.
+changes."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_ts_offset"
+ c:identifier="gst_base_sink_set_ts_offset"
+ doc="Adjust the synchronisation of @sink with @offset. A negative value will
+render buffers earlier than their timestamp. A positive value will delay
+rendering. This function can be used to fix playback of badly timestamped
+buffers."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_ts_offset"
+ c:identifier="gst_base_sink_get_ts_offset"
+ doc="Get the synchronisation offset of @sink."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </return-value>
+ </method>
+ <method name="get_last_buffer"
+ c:identifier="gst_base_sink_get_last_buffer"
+ doc="Get the last buffer that arrived in the sink and was used for preroll or for
+rendering. This property can be used to generate thumbnails.
+The #GstCaps on the buffer can be used to determine the type of the buffer.
+NULL when no buffer has arrived in the sink yet or when the sink is not in
+PAUSED or PLAYING."
+ version="0.10.15">
+ <return-value transfer-ownership="full"
+ doc="after usage. This function returns">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="query_latency"
+ c:identifier="gst_base_sink_query_latency"
+ doc="Query the sink for the latency parameters. The latency will be queried from
+the upstream elements. @live will be TRUE if @sink is configured to
+synchronize against the clock. @upstream_live will be TRUE if an upstream
+element is live.
+If both @live and @upstream_live are TRUE, the sink will want to compensate
+for the latency introduced by the upstream elements by setting the
+This function is mostly used by subclasses."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="live" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="upstream_live"
+ direction="out"
+ transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ <parameter name="min_latency" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="max_latency" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_latency"
+ c:identifier="gst_base_sink_get_latency"
+ doc="Get the currently configured latency."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="set_render_delay"
+ c:identifier="gst_base_sink_set_render_delay"
+ doc="Set the render delay in @sink to @delay. The render delay is the time
+between actual rendering of a buffer and its synchronisation time. Some
+devices might delay media rendering which can be compensated for with this
+function.
+After calling this function, this sink will report additional latency and
+other sinks will adjust their latency to delay the rendering of their media.
+This function is usually called by subclasses."
+ version="0.10.21">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="delay" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_render_delay"
+ c:identifier="gst_base_sink_get_render_delay"
+ doc="Get the render delay of @sink. see gst_base_sink_set_render_delay() for more
+information about the render delay."
+ version="0.10.21">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="set_blocksize"
+ c:identifier="gst_base_sink_set_blocksize"
+ doc="Set the number of bytes that the sink will pull when it is operating in pull
+mode."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="blocksize" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_blocksize"
+ c:identifier="gst_base_sink_get_blocksize"
+ doc="Get the number of bytes that the sink will pull when it is operating in pull
+mode."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="wait_clock"
+ c:identifier="gst_base_sink_wait_clock"
+ doc="This function will block until @time is reached. It is usually called by
+subclasses that use their own internal synchronisation.
+If @time is not valid, no sycnhronisation is done and #GST_CLOCK_BADTIME is
+returned. Likewise, if synchronisation is disabled in the element or there
+is no clock, no synchronisation is done and #GST_CLOCK_BADTIME is returned.
+This function should only be called with the PREROLL_LOCK held, like when
+receiving an EOS event in the #GstBaseSinkClass.event() vmethod or when
+receiving a buffer in
+the #GstBaseSinkClass.render() vmethod.
+The @time argument should be the running_time of when this method should
+return and is not adjusted with any latency or offset configured in the
+sink.
+Since 0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockReturn" c:type="GstClockReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="wait_eos"
+ c:identifier="gst_base_sink_wait_eos"
+ doc="This function will block until @time is reached. It is usually called by
+subclasses that use their own internal synchronisation but want to let the
+EOS be handled by the base class.
+This function should only be called with the PREROLL_LOCK held, like when
+receiving an EOS event in the ::event vmethod.
+The @time argument should be the running_time of when the EOS should happen
+and will be adjusted with any latency and offset configured in the sink.
+Since 0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="time" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="async" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="blocksize" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="last-buffer">
+ <type name="Gst.Buffer" c:type="GstBuffer"/>
+ </property>
+ <property name="max-lateness" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="preroll-queue-len" writable="1" construct="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="qos" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="render-delay" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <property name="sync" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="ts-offset" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <field name="element">
+ <type name="Gst.Element" c:type="GstElement"/>
+ </field>
+ <field name="sinkpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="pad_mode">
+ <type name="Gst.ActivateMode" c:type="GstActivateMode"/>
+ </field>
+ <field name="offset">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="can_activate_pull">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="can_activate_push">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="preroll_queue">
+ <type name="GLib.Queue" c:type="GQueue*"/>
+ </field>
+ <field name="preroll_queue_max_len">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="preroll_queued">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="buffers_queued">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="events_queued">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="eos">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="eos_queued">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="need_preroll">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="have_preroll">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="playing_async">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="have_newsegment">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="segment">
+ <type name="Gst.Segment" c:type="GstSegment"/>
+ </field>
+ <field name="clock_id">
+ <type name="Gst.ClockID" c:type="GstClockID"/>
+ </field>
+ <field name="end_time">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="sync">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="flushing">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="clip_segment" writable="1">
+ <type name="Gst.Segment" c:type="GstSegment*"/>
+ </field>
+ <field name="max_lateness" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="running" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="19">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ <field name="priv">
+ <type name="BaseSinkPrivate" c:type="GstBaseSinkPrivate*"/>
+ </field>
+ </class>
+ <record name="BaseSinkClass"
+ c:type="GstBaseSinkClass"
+ glib:is-gtype-struct-for="BaseSink"
+ doc="the passed buffer to the clock
+unblock any blocked function ASAP
+any state they set during unlock(), such as clearing command queues.
+correct moment if the #GstBaseSink has been set to sync to the clock.
+special processing when changing to the PLAYING state asynchronously.
+Called with the OBJECT_LOCK held.
+alternate method of spawning a thread to drive the pipeline in pull mode.
+Should start or stop the pulling thread, depending on the value of the
+"active" argument. Called after actually activating the sink pad in pull
+mode. The default implementation starts a task on the sink pad.
+gst_pad_fixate_caps() being called on the sink pad. Implement if you have
+ideas about what should be the default values for the caps you support.
+Subclasses can override any of the available virtual methods or not, as
+needed. At the minimum, the @render method should be overridden to
+output/present buffers.">
+ <field name="parent_class">
+ <type name="Gst.ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="get_caps">
+ <callback name="get_caps" c:type="get_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_caps">
+ <callback name="set_caps" c:type="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="buffer_alloc">
+ <callback name="buffer_alloc" c:type="buffer_alloc">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </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="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_times">
+ <callback name="get_times" c:type="get_times">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="start">
+ <callback name="start" c:type="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="stop">
+ <callback name="stop" c:type="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unlock">
+ <callback name="unlock" c:type="unlock">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="event">
+ <callback name="event" c:type="event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="preroll">
+ <callback name="preroll" c:type="preroll">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="render">
+ <callback name="render" c:type="render">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="async_play">
+ <callback name="async_play" c:type="async_play">
+ <return-value transfer-ownership="full">
+ <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="activate_pull">
+ <callback name="activate_pull" c:type="activate_pull">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="fixate">
+ <callback name="fixate" c:type="fixate">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unlock_stop">
+ <callback name="unlock_stop" c:type="unlock_stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="render_list">
+ <callback name="render_list" c:type="render_list">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sink" transfer-ownership="none">
+ <type name="BaseSink" c:type="GstBaseSink*"/>
+ </parameter>
+ <parameter name="buffer_list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="15">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="BaseSinkPrivate" c:type="GstBaseSinkPrivate">
+ </record>
+ <class name="BaseSrc"
+ c:type="GstBaseSrc"
+ doc="The opaque #GstBaseSrc data structure."
+ parent="Gst.Element"
+ abstract="1"
+ glib:type-name="GstBaseSrc"
+ glib:get-type="gst_base_src_get_type"
+ glib:type-struct="BaseSrcClass">
+ <virtual-method name="get_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="negotiate">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="newsegment">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="get_times">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_size">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="is_seekable">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="unlock">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="create">
+ <return-value transfer-ownership="full">
+ <type name="Gst.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="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="do_seek">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="segment" transfer-ownership="none">
+ <type name="Gst.Segment" c:type="GstSegment*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="query">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="check_get_range">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="fixate">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="unlock_stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="prepare_seek_segment">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="seek" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="segment" transfer-ownership="none">
+ <type name="Gst.Segment" c:type="GstSegment*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="wait_playing"
+ c:identifier="gst_base_src_wait_playing"
+ doc="If the #GstBaseSrcClass.create() method performs its own synchronisation
+against the clock it must unblock when going from PLAYING to the PAUSED state
+and call this method before continuing to produce the remaining data.
+This function will block until a state change to PLAYING happens (in which
+case this function returns #GST_FLOW_OK) or the processing must be stopped due
+to a state change to READY or a FLUSH event (in which case this function
+returns #GST_FLOW_WRONG_STATE).
+continue. Any other return value should be returned from the create vmethod."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ </method>
+ <method name="set_live"
+ c:identifier="gst_base_src_set_live"
+ doc="If the element listens to a live source, @live should
+be set to %TRUE.
+A live source will not produce data in the PAUSED state and
+will therefore not be able to participate in the PREROLL phase
+of a pipeline. To signal this fact to the application and the
+pipeline, the state change return value of the live source will
+be GST_STATE_CHANGE_NO_PREROLL.">
+ <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>
+ </parameters>
+ </method>
+ <method name="is_live"
+ c:identifier="gst_base_src_is_live"
+ doc="Check if an element is in live mode.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_format"
+ c:identifier="gst_base_src_set_format"
+ doc="Sets the default format of the source. This will be the format used
+for sending NEW_SEGMENT events and for performing seeks.
+If a format of GST_FORMAT_BYTES is set, the element will be able to
+operate in pull mode if the #GstBaseSrc.is_seekable() returns TRUE.
+This function must only be called in states < %GST_STATE_PAUSED."
+ version="0.10.1">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="Gst.Format" c:type="GstFormat"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="query_latency"
+ c:identifier="gst_base_src_query_latency"
+ doc="Query the source for the latency parameters. @live will be TRUE when @src is
+configured as a live source. @min_latency will be set to the difference
+between the running time and the timestamp of the first buffer.
+This function is mostly used by subclasses."
+ version="0.10.13">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </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="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="max_latency" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_blocksize"
+ c:identifier="gst_base_src_set_blocksize"
+ doc="Set the number of bytes that @src will push out with each buffer. When"
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="blocksize" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_blocksize"
+ c:identifier="gst_base_src_get_blocksize"
+ doc="Get the number of bytes that @src will push out with each buffer."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ </method>
+ <method name="set_do_timestamp"
+ c:identifier="gst_base_src_set_do_timestamp"
+ doc="Configure @src to automatically timestamp outgoing buffers based on the
+current running_time of the pipeline. This property is mostly useful for live
+sources."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_do_timestamp"
+ c:identifier="gst_base_src_get_do_timestamp"
+ doc="Query if @src timestamps outgoing buffers based on the current running_time."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="new_seamless_segment"
+ c:identifier="gst_base_src_new_seamless_segment"
+ doc="Prepare a new seamless segment for emission downstream. This function must
+only be called by derived sub-classes, and only from the create() function,
+as the stream-lock needs to be held.
+The format for the new segment will be the current format of the source, as
+configured with gst_base_src_set_format()"
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <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>
+ </method>
+ <property name="blocksize" writable="1">
+ <type name="ulong" c:type="gulong"/>
+ </property>
+ <property name="do-timestamp" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="num-buffers" writable="1">
+ <type name="int" c:type="gint"/>
+ </property>
+ <property name="typefind" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <field name="element">
+ <type name="Gst.Element" c:type="GstElement"/>
+ </field>
+ <field name="srcpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="live_lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="live_cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="is_live">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="live_running">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="blocksize">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="can_activate_push">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="pad_mode">
+ <type name="Gst.ActivateMode" c:type="GstActivateMode"/>
+ </field>
+ <field name="seekable">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="random_access">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="clock_id">
+ <type name="Gst.ClockID" c:type="GstClockID"/>
+ </field>
+ <field name="end_time">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="segment">
+ <type name="Gst.Segment" c:type="GstSegment"/>
+ </field>
+ <field name="need_newsegment">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="offset">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="size">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="num_buffers">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="num_buffers_left">
+ <type name="int" c:type="gint"/>
+ </field>
+ <union name="data" c:type="data">
+ <record name="ABI" c:type="ABI">
+ <field name="typefind" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="running" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="pending_seek" writable="1">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="19">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ <field name="priv">
+ <type name="BaseSrcPrivate" c:type="GstBaseSrcPrivate*"/>
+ </field>
+ </class>
+ <record name="BaseSrcClass"
+ c:type="GstBaseSrcClass"
+ glib:is-gtype-struct-for="BaseSrc"
+ doc="to produce data.
+should be pushed out. The base class will sync on the clock using
+these times.
+unblock any blocked function ASAP
+any state they set during unlock(), such as clearing command queues.
+do_seek vmethod for executing a seek request. Sub-classes should override
+this if they support seeking in formats other than the configured native
+format. By default, it tries to convert the seek arguments to the
+configured native format and prepare a segment in that format.
+operation if it were to be opened now. This vfunc is optional, but
+should be implemented if possible to avoid unnecessary start/stop
+cycles. The default implementation will open and close the resource
+to find out whether get_range is supported, and that is usually
+undesirable.
+setting a fixate function on the source pad.
+Subclasses can override any of the available virtual methods or not, as
+needed. At the minimum, the @create method should be overridden to produce
+buffers."
+ version="0.10.13">
+ <field name="parent_class">
+ <type name="Gst.ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="get_caps">
+ <callback name="get_caps" c:type="get_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_caps">
+ <callback name="set_caps" c:type="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="negotiate">
+ <callback name="negotiate" c:type="negotiate">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="newsegment">
+ <callback name="newsegment" c:type="newsegment">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="start">
+ <callback name="start" c:type="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="stop">
+ <callback name="stop" c:type="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_times">
+ <callback name="get_times" c:type="get_times">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ <parameter name="end" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_size">
+ <callback name="get_size" c:type="get_size">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="size" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="is_seekable">
+ <callback name="is_seekable" c:type="is_seekable">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unlock">
+ <callback name="unlock" c:type="unlock">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="event">
+ <callback name="event" c:type="event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="create">
+ <callback name="create" c:type="create">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </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="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="do_seek">
+ <callback name="do_seek" c:type="do_seek">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="segment" transfer-ownership="none">
+ <type name="Gst.Segment" c:type="GstSegment*"/>
+ </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="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="check_get_range">
+ <callback name="check_get_range" c:type="check_get_range">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="fixate">
+ <callback name="fixate" c:type="fixate">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="unlock_stop">
+ <callback name="unlock_stop" c:type="unlock_stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="prepare_seek_segment">
+ <callback name="prepare_seek_segment" c:type="prepare_seek_segment">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="BaseSrc" c:type="GstBaseSrc*"/>
+ </parameter>
+ <parameter name="seek" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="segment" transfer-ownership="none">
+ <type name="Gst.Segment" c:type="GstSegment*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="14">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="BaseSrcFlags"
+ doc="The #GstElement flags that a basesrc element may have."
+ c:type="GstBaseSrcFlags">
+ <member name="started"
+ value="1048576"
+ c:identifier="GST_BASE_SRC_STARTED"/>
+ <member name="flag_last"
+ value="4194304"
+ c:identifier="GST_BASE_SRC_FLAG_LAST"/>
+ </bitfield>
+ <record name="BaseSrcPrivate" c:type="GstBaseSrcPrivate">
+ </record>
+ <class name="BaseTransform"
+ c:type="GstBaseTransform"
+ doc="The opaque #GstBaseTransform data structure."
+ parent="Gst.Element"
+ abstract="1"
+ glib:type-name="GstBaseTransform"
+ glib:get-type="gst_base_transform_get_type"
+ glib:type-struct="BaseTransformClass">
+ <virtual-method name="transform_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="fixate_caps">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="othercaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="transform_size">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="othercaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="othersize"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_unit_size">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="size" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="incaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="outcaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="transform">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="inbuf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="outbuf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="transform_ip">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="prepare_output_buffer">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="input" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="src_event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="before_transform">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="set_passthrough"
+ c:identifier="gst_base_transform_set_passthrough"
+ doc="Set passthrough mode for this filter by default. This is mostly
+useful for filters that do not care about negotiation.
+Always TRUE for filters which don't implement either a transform
+or transform_ip method.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="passthrough" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_passthrough"
+ c:identifier="gst_base_transform_is_passthrough"
+ doc="See if @trans is configured as a passthrough transform.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_in_place"
+ c:identifier="gst_base_transform_set_in_place"
+ doc="on in_place buffers.
+Determines whether a non-writable buffer will be copied before passing
+to the transform_ip function.
+<itemizedlist>
+<listitem>Always TRUE if no transform function is implemented.</listitem>
+<listitem>Always FALSE if ONLY transform function is implemented.</listitem>
+</itemizedlist>
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="in_place" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_in_place"
+ c:identifier="gst_base_transform_is_in_place"
+ doc="See if @trans is configured as a in_place transform.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="update_qos"
+ c:identifier="gst_base_transform_update_qos"
+ doc="running_time.
+Set the QoS parameters in the transform. This function is called internally
+when a QOS event is received but subclasses can provide custom information
+when needed.
+MT safe."
+ version="0.10.5">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="proportion" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ <parameter name="diff" transfer-ownership="none">
+ <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_qos_enabled"
+ c:identifier="gst_base_transform_set_qos_enabled"
+ doc="Enable or disable QoS handling in the transform.
+MT safe."
+ version="0.10.5">
+ <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>
+ </method>
+ <method name="is_qos_enabled"
+ c:identifier="gst_base_transform_is_qos_enabled"
+ doc="Queries if the transform will handle QoS.
+MT safe."
+ version="0.10.5">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="set_gap_aware"
+ c:identifier="gst_base_transform_set_gap_aware"
+ doc="If @gap_aware is %FALSE (the default), output buffers will have the
+%GST_BUFFER_FLAG_GAP flag unset.
+If set to %TRUE, the element must handle output buffers with this flag set
+correctly, i.e. it can assume that the buffer contains neutral data but must
+unset the flag if the output is no neutral data.
+MT safe."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="gap_aware" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="suggest"
+ c:identifier="gst_base_transform_suggest"
+ doc="Instructs @trans to suggest new @caps upstream. A copy of @caps will be
+taken."
+ version="0.10.21">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="reconfigure"
+ c:identifier="gst_base_transform_reconfigure"
+ doc="Instructs @trans to renegotiate a new downstream transform on the next
+buffer. This function is typically called after properties on the transform
+were set that influence the output format."
+ version="0.10.21">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <property name="qos" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <field name="element">
+ <type name="Gst.Element" c:type="GstElement"/>
+ </field>
+ <field name="sinkpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="srcpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="passthrough">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="always_in_place">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="cache_caps1">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="cache_caps1_size">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="cache_caps2">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </field>
+ <field name="cache_caps2_size">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="have_same_caps">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="delay_configure">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="pending_configure">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="negotiated">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="have_newsegment">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="segment">
+ <type name="Gst.Segment" c:type="GstSegment"/>
+ </field>
+ <field name="transform_lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="priv">
+ <type name="BaseTransformPrivate" c:type="GstBaseTransformPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="19">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="BaseTransformClass"
+ c:type="GstBaseTransformClass"
+ glib:is-gtype-struct-for="BaseTransform"
+ doc="caps, what caps are allowed on the other pad in this
+element ?
+caps, fixate the caps on the other pad.
+with the given caps, calculate the size in bytes of a buffer
+on the other pad with the given other caps.
+The default implementation uses get_unit_size and keeps
+the number of units the same.
+get the size in bytes of one unit for the given caps.
+Called when the element starts processing.
+Allows opening external resources.
+Called when the element stops processing.
+Allows closing external resources.
+Transforms one incoming buffer to one outgoing buffer.
+The function is allowed to change size/timestamp/duration
+of the outgoing buffer.
+Transform the incoming buffer in-place.
+Event handler on the sink pad. This function should return
+TRUE if the base class should forward the event.
+Event handler on the source pad.
+automatically enabled if the caps are the same.
+Subclasses can override this to do their own
+allocation of output buffers. Elements that only do
+analysis can return a subbuffer or even just
+increment the reference to the input buffer (if in
+passthrough mode)
+This method is called right before the base class will
+start processing. Dynamic properties or other delayed
+configuration could be performed in this method.
+Subclasses can override any of the available virtual methods or not, as
+needed. At minimum either @transform or @transform_ip need to be overridden.
+If the element can overwrite the input data with the results (data is of the
+same type and quantity) it should provide @transform_ip.">
+ <field name="parent_class">
+ <type name="Gst.ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="transform_caps">
+ <callback name="transform_caps" c:type="transform_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="fixate_caps">
+ <callback name="fixate_caps" c:type="fixate_caps">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="othercaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="transform_size">
+ <callback name="transform_size" c:type="transform_size">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="direction" transfer-ownership="none">
+ <type name="Gst.PadDirection" c:type="GstPadDirection"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="othercaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="othersize"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_unit_size">
+ <callback name="get_unit_size" c:type="get_unit_size">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="size" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_caps">
+ <callback name="set_caps" c:type="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="incaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="outcaps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="start">
+ <callback name="start" c:type="start">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="stop">
+ <callback name="stop" c:type="stop">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="event">
+ <callback name="event" c:type="event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="transform">
+ <callback name="transform" c:type="transform">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="inbuf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="outbuf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="transform_ip">
+ <callback name="transform_ip" c:type="transform_ip">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="passthrough_on_same_caps">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="prepare_output_buffer">
+ <callback name="prepare_output_buffer" c:type="prepare_output_buffer">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="input" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="src_event">
+ <callback name="src_event" c:type="src_event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="before_transform">
+ <callback name="before_transform" c:type="before_transform">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="BaseTransform" c:type="GstBaseTransform*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="18">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="BaseTransformPrivate" c:type="GstBaseTransformPrivate">
+ </record>
+ <record name="BitReader"
+ c:type="GstBitReader"
+ doc="A bit reader instance.">
+ <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="byte" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="bit" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_bit_reader_new"
+ doc="Create a new #GstBitReader instance, which will read from @data."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="BitReader" c:type="GstBitReader*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_from_buffer"
+ c:identifier="gst_bit_reader_new_from_buffer"
+ doc="Create a new #GstBitReader instance, which will read from the
+#GstBuffer @buffer."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="BitReader" c:type="GstBitReader*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="free"
+ c:identifier="gst_bit_reader_free"
+ doc="Frees a #GstBitReader instance, which was previously allocated by
+gst_bit_reader_new() or gst_bit_reader_new_from_buffer()."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="init"
+ c:identifier="gst_bit_reader_init"
+ doc="Initializes a #GstBitReader instance to read from @data. This function
+can be called on already initialized instances."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_from_buffer"
+ c:identifier="gst_bit_reader_init_from_buffer"
+ doc="Initializes a #GstBitReader instance to read from @buffer. This function
+can be called on already initialized instances."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_pos"
+ c:identifier="gst_bit_reader_set_pos"
+ doc="Sets the new position of a #GstBitReader instance to @pos in bits.
+otherwise."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pos"
+ c:identifier="gst_bit_reader_get_pos"
+ doc="Returns the current position of a #GstBitReader instance in bits."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_remaining"
+ c:identifier="gst_bit_reader_get_remaining"
+ doc="Returns the remaining number of bits of a #GstBitReader instance."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_size"
+ c:identifier="gst_bit_reader_get_size"
+ doc="Returns the total number of bits of a #GstBitReader instance."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="skip"
+ c:identifier="gst_bit_reader_skip"
+ doc="Skips @nbits bits of the #GstBitReader instance."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="skip_to_byte"
+ c:identifier="gst_bit_reader_skip_to_byte"
+ doc="Skips until the next byte."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_bits_uint8"
+ c:identifier="gst_bit_reader_get_bits_uint8"
+ doc="Read @nbits bits into @val and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bits_uint16"
+ c:identifier="gst_bit_reader_get_bits_uint16"
+ doc="Read @nbits bits into @val and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bits_uint32"
+ c:identifier="gst_bit_reader_get_bits_uint32"
+ doc="Read @nbits bits into @val and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_bits_uint64"
+ c:identifier="gst_bit_reader_get_bits_uint64"
+ doc="Read @nbits bits into @val and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_bits_uint8"
+ c:identifier="gst_bit_reader_peek_bits_uint8"
+ doc="Read @nbits bits into @val but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_bits_uint16"
+ c:identifier="gst_bit_reader_peek_bits_uint16"
+ doc="Read @nbits bits into @val but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_bits_uint32"
+ c:identifier="gst_bit_reader_peek_bits_uint32"
+ doc="Read @nbits bits into @val but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_bits_uint64"
+ c:identifier="gst_bit_reader_peek_bits_uint64"
+ doc="Read @nbits bits into @val but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="nbits" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="ByteReader"
+ c:type="GstByteReader"
+ doc="A byte reader instance.">
+ <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="byte" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_byte_reader_new"
+ doc="Create a new #GstByteReader instance, which will read from @data."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="ByteReader" c:type="GstByteReader*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_from_buffer"
+ c:identifier="gst_byte_reader_new_from_buffer"
+ doc="Create a new #GstByteReader instance, which will read from the
+#GstBuffer @buffer."
+ version="0.10.22">
+ <return-value transfer-ownership="full">
+ <type name="ByteReader" c:type="GstByteReader*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="free"
+ c:identifier="gst_byte_reader_free"
+ doc="Frees a #GstByteReader instance, which was previously allocated by
+gst_byte_reader_new() or gst_byte_reader_new_from_buffer()."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="init"
+ c:identifier="gst_byte_reader_init"
+ doc="Initializes a #GstByteReader instance to read from @data. This function
+can be called on already initialized instances."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_from_buffer"
+ c:identifier="gst_byte_reader_init_from_buffer"
+ doc="Initializes a #GstByteReader instance to read from @buffer. This function
+can be called on already initialized instances."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_pos"
+ c:identifier="gst_byte_reader_set_pos"
+ doc="Sets the new position of a #GstByteReader instance to @pos in bytes.
+otherwise."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pos" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_pos"
+ c:identifier="gst_byte_reader_get_pos"
+ doc="Returns the current position of a #GstByteReader instance in bytes."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_remaining"
+ c:identifier="gst_byte_reader_get_remaining"
+ doc="Returns the remaining number of bytes of a #GstByteReader instance."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_size"
+ c:identifier="gst_byte_reader_get_size"
+ doc="Returns the total number of bytes of a #GstByteReader instance."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="skip"
+ c:identifier="gst_byte_reader_skip"
+ doc="Skips @nbytes bytes of the #GstByteReader instance."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="nbytes" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint8"
+ c:identifier="gst_byte_reader_get_uint8"
+ doc="Read an unsigned 8 bit integer into @val and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int8"
+ c:identifier="gst_byte_reader_get_int8"
+ doc="Read a signed 8 bit integer into @val and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int8" c:type="gint8*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint16_le"
+ c:identifier="gst_byte_reader_get_uint16_le"
+ doc="Read an unsigned 16 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int16_le"
+ c:identifier="gst_byte_reader_get_int16_le"
+ doc="Read a signed 16 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint16_be"
+ c:identifier="gst_byte_reader_get_uint16_be"
+ doc="Read an unsigned 16 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int16_be"
+ c:identifier="gst_byte_reader_get_int16_be"
+ doc="Read a signed 16 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint24_le"
+ c:identifier="gst_byte_reader_get_uint24_le"
+ doc="Read an unsigned 24 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int24_le"
+ c:identifier="gst_byte_reader_get_int24_le"
+ doc="Read a signed 24 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint24_be"
+ c:identifier="gst_byte_reader_get_uint24_be"
+ doc="Read an unsigned 24 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int24_be"
+ c:identifier="gst_byte_reader_get_int24_be"
+ doc="Read a signed 24 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint32_le"
+ c:identifier="gst_byte_reader_get_uint32_le"
+ doc="Read an unsigned 32 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int32_le"
+ c:identifier="gst_byte_reader_get_int32_le"
+ doc="Read a signed 32 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint32_be"
+ c:identifier="gst_byte_reader_get_uint32_be"
+ doc="Read an unsigned 32 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int32_be"
+ c:identifier="gst_byte_reader_get_int32_be"
+ doc="Read a signed 32 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint64_le"
+ c:identifier="gst_byte_reader_get_uint64_le"
+ doc="Read an unsigned 64 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int64_le"
+ c:identifier="gst_byte_reader_get_int64_le"
+ doc="Read a signed 64 bit little endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uint64_be"
+ c:identifier="gst_byte_reader_get_uint64_be"
+ doc="Read an unsigned 64 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_int64_be"
+ c:identifier="gst_byte_reader_get_int64_be"
+ doc="Read a signed 64 bit big endian integer into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint8"
+ c:identifier="gst_byte_reader_peek_uint8"
+ doc="Read a signed 8 bit integer into @val but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int8"
+ c:identifier="gst_byte_reader_peek_int8"
+ doc="Read a signed 8 bit integer into @val but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int8" c:type="gint8*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint16_le"
+ c:identifier="gst_byte_reader_peek_uint16_le"
+ doc="Read a signed 16 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int16_le"
+ c:identifier="gst_byte_reader_peek_int16_le"
+ doc="Read a signed 16 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint16_be"
+ c:identifier="gst_byte_reader_peek_uint16_be"
+ doc="Read a signed 16 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int16_be"
+ c:identifier="gst_byte_reader_peek_int16_be"
+ doc="Read a signed 16 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint24_le"
+ c:identifier="gst_byte_reader_peek_uint24_le"
+ doc="Read a signed 24 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int24_le"
+ c:identifier="gst_byte_reader_peek_int24_le"
+ doc="Read a signed 24 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint24_be"
+ c:identifier="gst_byte_reader_peek_uint24_be"
+ doc="Read a signed 24 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int24_be"
+ c:identifier="gst_byte_reader_peek_int24_be"
+ doc="Read a signed 24 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint32_le"
+ c:identifier="gst_byte_reader_peek_uint32_le"
+ doc="Read a signed 32 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int32_le"
+ c:identifier="gst_byte_reader_peek_int32_le"
+ doc="Read a signed 32 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint32_be"
+ c:identifier="gst_byte_reader_peek_uint32_be"
+ doc="Read a signed 32 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int32_be"
+ c:identifier="gst_byte_reader_peek_int32_be"
+ doc="Read a signed 32 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint64_le"
+ c:identifier="gst_byte_reader_peek_uint64_le"
+ doc="Read a signed 64 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int64_le"
+ c:identifier="gst_byte_reader_peek_int64_le"
+ doc="Read a signed 64 bit little endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_uint64_be"
+ c:identifier="gst_byte_reader_peek_uint64_be"
+ doc="Read a signed 64 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_int64_be"
+ c:identifier="gst_byte_reader_peek_int64_be"
+ doc="Read a signed 64 bit big endian integer into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float32_le"
+ c:identifier="gst_byte_reader_get_float32_le"
+ doc="Read a 32 bit little endian floating point value into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float32_be"
+ c:identifier="gst_byte_reader_get_float32_be"
+ doc="Read a 32 bit big endian floating point value into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float64_le"
+ c:identifier="gst_byte_reader_get_float64_le"
+ doc="Read a 64 bit little endian floating point value into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_float64_be"
+ c:identifier="gst_byte_reader_get_float64_be"
+ doc="Read a 64 bit big endian floating point value into @val
+and update the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_float32_le"
+ c:identifier="gst_byte_reader_peek_float32_le"
+ doc="Read a 32 bit little endian floating point value into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_float32_be"
+ c:identifier="gst_byte_reader_peek_float32_be"
+ doc="Read a 32 bit big endian floating point value into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_float64_le"
+ c:identifier="gst_byte_reader_peek_float64_le"
+ doc="Read a 64 bit little endian floating point value into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_float64_be"
+ c:identifier="gst_byte_reader_peek_float64_be"
+ doc="Read a 64 bit big endian floating point value into @val
+but keep the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dup_data"
+ c:identifier="gst_byte_reader_dup_data"
+ doc="Returns a newly-allocated copy of the current data
+position if at least @size bytes are left and
+updates the current position."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_data"
+ c:identifier="gst_byte_reader_get_data"
+ doc="Returns a constant pointer to the current data
+position if at least @size bytes are left and
+updates the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_data"
+ c:identifier="gst_byte_reader_peek_data"
+ doc="Returns a constant pointer to the current data
+position if at least @size bytes are left and
+keeps the current position."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="val" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dup_string_utf8"
+ c:identifier="gst_byte_reader_dup_string_utf8"
+ doc="FIXME:Reads (copies) a NUL-terminated string in the #GstByteReader instance,
+advancing the current position to the byte after the string. This will work
+for any NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data.
+string put into @str must be freed with g_free() when no longer needed."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dup_string_utf16"
+ c:identifier="gst_byte_reader_dup_string_utf16"
+ doc="Returns a newly-allocated copy of the current data position if there is
+a NUL-terminated UTF-16 string in the data (this could be an empty string
+as well), and advances the current position.
+No input checking for valid UTF-16 is done. This function is endianness
+agnostic - you should not assume the UTF-16 characters are in host
+endianness.
+This function will fail if no NUL-terminator was found in in the data.
+byte alignment of the UTF-16 string.
+string put into @str must be freed with g_free() when no longer needed."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dup_string_utf32"
+ c:identifier="gst_byte_reader_dup_string_utf32"
+ doc="Returns a newly-allocated copy of the current data position if there is
+a NUL-terminated UTF-32 string in the data (this could be an empty string
+as well), and advances the current position.
+No input checking for valid UTF-32 is done. This function is endianness
+agnostic - you should not assume the UTF-32 characters are in host
+endianness.
+This function will fail if no NUL-terminator was found in in the data.
+byte alignment of the UTF-32 string.
+string put into @str must be freed with g_free() when no longer needed."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="skip_string_utf8"
+ c:identifier="gst_byte_reader_skip_string_utf8"
+ doc="Skips a NUL-terminated string in the #GstByteReader instance, advancing
+the current position to the byte after the string. This will work for
+any NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="skip_string_utf16"
+ c:identifier="gst_byte_reader_skip_string_utf16"
+ doc="Skips a NUL-terminated UTF-16 string in the #GstByteReader instance,
+advancing the current position to the byte after the string.
+No input checking for valid UTF-16 is done.
+This function will fail if no NUL-terminator was found in in the data."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="skip_string_utf32"
+ c:identifier="gst_byte_reader_skip_string_utf32"
+ doc="Skips a NUL-terminated UTF-32 string in the #GstByteReader instance,
+advancing the current position to the byte after the string.
+No input checking for valid UTF-32 is done.
+This function will fail if no NUL-terminator was found in in the data."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_string_utf8"
+ c:identifier="gst_byte_reader_get_string_utf8"
+ doc="Returns a constant pointer to the current data position if there is
+a NUL-terminated string in the data (this could be just a NUL terminator),
+advancing the current position to the byte after the string. This will work
+for any NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc.
+No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="peek_string_utf8"
+ c:identifier="gst_byte_reader_peek_string_utf8"
+ doc="Returns a constant pointer to the current data position if there is
+a NUL-terminated string in the data (this could be just a NUL terminator).
+The current position will be maintained. This will work for any
+NUL-terminated string with a character width of 8 bits, so ASCII,
+UTF-8, ISO-8859-N etc.
+No input checking for valid UTF-8 is done.
+This function will fail if no NUL-terminator was found in in the data."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="masked_scan_uint32"
+ c:identifier="gst_byte_reader_masked_scan_uint32"
+ doc="position
+Scan for pattern @pattern with applied mask @mask in the byte reader data,
+starting from offset @offset relative to the current position.
+The bytes in @pattern and @mask are interpreted left-to-right, regardless
+of endianness. All four bytes of the pattern must be present in the
+byte reader data for it to match, even if the first or last bytes are masked
+out.
+It is an error to call this function without making sure that there is
+enough data (offset+size bytes) in the byte reader.
+Example:
+<programlisting>
+// Assume the reader contains 0x00 0x01 0x02 ... 0xfe 0xff
+gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 0, 256);
+// -> returns 0
+gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 1, 255);
+// -> returns -1
+gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x01020304, 1, 255);
+// -> returns 1
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0001, 0, 256);
+// -> returns -1
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0203, 0, 256);
+// -> returns 0
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 256);
+// -> returns 2
+gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4);
+// -> returns -1
+</programlisting>"
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="mask" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="pattern" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <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>
+ </record>
+ <record name="ByteWriter"
+ c:type="GstByteWriter"
+ doc="A byte writer instance.">
+ <field name="parent" writable="1">
+ <type name="ByteReader" c:type="GstByteReader"/>
+ </field>
+ <field name="alloc_size" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="fixed" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="owned" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_byte_writer_new"
+ doc="Creates a new, empty #GstByteWriter instance"
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="ByteWriter" c:type="GstByteWriter*"/>
+ </return-value>
+ </constructor>
+ <constructor name="new_with_size"
+ c:identifier="gst_byte_writer_new_with_size"
+ doc="Creates a new #GstByteWriter instance with the given
+initial data size."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="ByteWriter" c:type="GstByteWriter*"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="fixed" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_with_data"
+ c:identifier="gst_byte_writer_new_with_data"
+ doc="Creates a new #GstByteWriter instance with the given
+memory area. If @initialized is %TRUE it is possible to
+read @size bytes from the #GstByteWriter from the beginning."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="ByteWriter" c:type="GstByteWriter*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="initialized" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_with_buffer"
+ c:identifier="gst_byte_writer_new_with_buffer"
+ doc="Creates a new #GstByteWriter instance with the given
+buffer. If @initialized is %TRUE it is possible to
+read the complete buffer from the #GstByteWriter from the beginning.
+<note>@buffer must be writable</note>"
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="ByteWriter" c:type="GstByteWriter*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="initialized" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="init"
+ c:identifier="gst_byte_writer_init"
+ doc="Initializes @writer to an empty instance"
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="init_with_size"
+ c:identifier="gst_byte_writer_init_with_size"
+ doc="Initializes @writer with the given initial data size."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="fixed" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_with_data"
+ c:identifier="gst_byte_writer_init_with_data"
+ doc="Initializes @writer with the given
+memory area. If @initialized is %TRUE it is possible to
+read @size bytes from the #GstByteWriter from the beginning."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="initialized" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_with_buffer"
+ c:identifier="gst_byte_writer_init_with_buffer"
+ doc="Initializes @writer with the given
+buffer. If @initialized is %TRUE it is possible to
+read the complete buffer from the #GstByteWriter from the beginning.
+<note>@buffer must be writable</note>"
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="initialized" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_byte_writer_free"
+ doc="Frees @writer and all memory allocated by it."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="free_and_get_data"
+ c:identifier="gst_byte_writer_free_and_get_data"
+ doc="Frees @writer and all memory allocated by it except
+the current data, which is returned."
+ version="0.10.26">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="free_and_get_buffer"
+ c:identifier="gst_byte_writer_free_and_get_buffer"
+ doc="Frees @writer and all memory allocated by it except
+the current data, which is returned as #GstBuffer."
+ version="0.10.26">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="reset"
+ c:identifier="gst_byte_writer_reset"
+ doc="Resets @writer and frees the data if it's
+owned by @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="reset_and_get_data"
+ c:identifier="gst_byte_writer_reset_and_get_data"
+ doc="Resets @writer and returns the current data."
+ version="0.10.26">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="reset_and_get_buffer"
+ c:identifier="gst_byte_writer_reset_and_get_buffer"
+ doc="Resets @writer and returns the current data as buffer."
+ version="0.10.26">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ </method>
+ <method name="get_remaining"
+ c:identifier="gst_byte_writer_get_remaining"
+ doc="Returns the remaining size of data that can still be written. If
+-1 is returned the remaining size is only limited by system resources."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="ensure_free_space"
+ c:identifier="gst_byte_writer_ensure_free_space"
+ doc="Checks if enough free space from the current write cursor is
+available and reallocates if necessary."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint8"
+ c:identifier="gst_byte_writer_put_uint8"
+ doc="Writes a unsigned 8 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int8"
+ c:identifier="gst_byte_writer_put_int8"
+ doc="Writes a signed 8 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int8" c:type="gint8"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint16_be"
+ c:identifier="gst_byte_writer_put_uint16_be"
+ doc="Writes a unsigned big endian 16 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint16_le"
+ c:identifier="gst_byte_writer_put_uint16_le"
+ doc="Writes a unsigned little endian 16 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int16_be"
+ c:identifier="gst_byte_writer_put_int16_be"
+ doc="Writes a signed big endian 16 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int16" c:type="gint16"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int16_le"
+ c:identifier="gst_byte_writer_put_int16_le"
+ doc="Writes a signed little endian 16 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int16" c:type="gint16"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint24_be"
+ c:identifier="gst_byte_writer_put_uint24_be"
+ doc="Writes a unsigned big endian 24 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint24_le"
+ c:identifier="gst_byte_writer_put_uint24_le"
+ doc="Writes a unsigned little endian 24 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int24_be"
+ c:identifier="gst_byte_writer_put_int24_be"
+ doc="Writes a signed big endian 24 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int24_le"
+ c:identifier="gst_byte_writer_put_int24_le"
+ doc="Writes a signed little endian 24 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint32_be"
+ c:identifier="gst_byte_writer_put_uint32_be"
+ doc="Writes a unsigned big endian 32 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint32_le"
+ c:identifier="gst_byte_writer_put_uint32_le"
+ doc="Writes a unsigned little endian 32 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int32_be"
+ c:identifier="gst_byte_writer_put_int32_be"
+ doc="Writes a signed big endian 32 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int32_le"
+ c:identifier="gst_byte_writer_put_int32_le"
+ doc="Writes a signed little endian 32 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint64_be"
+ c:identifier="gst_byte_writer_put_uint64_be"
+ doc="Writes a unsigned big endian 64 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_uint64_le"
+ c:identifier="gst_byte_writer_put_uint64_le"
+ doc="Writes a unsigned little endian 64 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int64_be"
+ c:identifier="gst_byte_writer_put_int64_be"
+ doc="Writes a signed big endian 64 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_int64_le"
+ c:identifier="gst_byte_writer_put_int64_le"
+ doc="Writes a signed little endian 64 bit integer to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="int64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_float32_be"
+ c:identifier="gst_byte_writer_put_float32_be"
+ doc="Writes a big endian 32 bit float to @writer."
+ version="0.10.27">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="float" c:type="gfloat"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_float32_le"
+ c:identifier="gst_byte_writer_put_float32_le"
+ doc="Writes a little endian 32 bit float to @writer."
+ version="0.10.27">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="float" c:type="gfloat"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_float64_be"
+ c:identifier="gst_byte_writer_put_float64_be"
+ doc="Writes a big endian 64 bit float to @writer."
+ version="0.10.27">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_float64_le"
+ c:identifier="gst_byte_writer_put_float64_le"
+ doc="Writes a little endian 64 bit float to @writer."
+ version="0.10.27">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="val" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_data"
+ c:identifier="gst_byte_writer_put_data"
+ doc="Writes @size bytes of @data to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fill"
+ c:identifier="gst_byte_writer_fill"
+ doc="Writes @size bytes containing @value to @writer."
+ version="0.10.27">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_string_utf8"
+ c:identifier="gst_byte_writer_put_string_utf8"
+ doc="Writes a null-terminated UTF8 string to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_string_utf16"
+ c:identifier="gst_byte_writer_put_string_utf16"
+ doc="Writes a null-terminated UTF16 string to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" direction="out" transfer-ownership="none">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="put_string_utf32"
+ c:identifier="gst_byte_writer_put_string_utf32"
+ doc="Writes a null-terminated UTF32 string to @writer."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" direction="out" transfer-ownership="none">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="CollectData"
+ c:type="GstCollectData"
+ doc="Structure used by the collect_pads.">
+ <field name="collect" writable="1">
+ <type name="CollectPads" c:type="GstCollectPads*"/>
+ </field>
+ <field name="pad" writable="1">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="buffer" writable="1">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </field>
+ <field name="pos" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="segment" writable="1">
+ <type name="Gst.Segment" c:type="GstSegment"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="flushing" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="new_segment" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="eos" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="refcount" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ </record>
+ <callback name="CollectDataDestroyNotify"
+ c:type="GstCollectDataDestroyNotify"
+ doc="A function that will be called when the #GstCollectData will be freed.
+It is passed the pointer to the structure and should free any custom
+memory and resources allocated for it."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="CollectPads"
+ c:type="GstCollectPads"
+ doc="Collectpads object.
+Note that @data doesn't contain the complete #GstCollectData list
+at all times and should not be used for iterating them."
+ parent="Gst.Object"
+ glib:type-name="GstCollectPads"
+ glib:get-type="gst_collect_pads_get_type"
+ glib:type-struct="CollectPadsClass">
+ <constructor name="new"
+ c:identifier="gst_collect_pads_new"
+ doc="Create a new instance of #GstCollectPads.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="CollectPads" c:type="GstCollectPads*"/>
+ </return-value>
+ </constructor>
+ <method name="set_function"
+ c:identifier="gst_collect_pads_set_function"
+ doc="Set the callback function and user data that will be called when
+all the pads added to the collection have buffers queued.
+MT safe.">
+ <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="CollectPadsFunction" c:type="GstCollectPadsFunction"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_clip_function"
+ c:identifier="gst_collect_pads_set_clip_function"
+ doc="Install a clipping function that is called right after a buffer is received
+on a pad managed by @pads. See #GstCollectDataClipFunction for more info."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="clipfunc"
+ transfer-ownership="none"
+ scope="call"
+ closure="2">
+ <type name="CollectPadsClipFunction"
+ c:type="GstCollectPadsClipFunction"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_pad"
+ c:identifier="gst_collect_pads_add_pad"
+ doc="Add a pad to the collection of collect pads. The pad has to be
+a sinkpad. The refcount of the pad is incremented. Use
+gst_collect_pads_remove_pad() to remove the pad from the collection
+again.
+This function will override the chain and event functions of the pad
+along with the element_private data, which is used to store private
+information for the collectpads.
+You specify a size for the returned #GstCollectData structure
+so that you can use it to store additional information.
+The pad will be automatically activated in push mode when @pads is
+started.
+This function calls gst_collect_pads_add_pad() passing a value of NULL
+for destroy_notify.
+if wrong parameters are supplied.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_pad_full"
+ c:identifier="gst_collect_pads_add_pad_full"
+ doc="structure is freed
+Add a pad to the collection of collect pads. The pad has to be
+a sinkpad. The refcount of the pad is incremented. Use
+gst_collect_pads_remove_pad() to remove the pad from the collection
+again.
+You specify a size for the returned #GstCollectData structure
+so that you can use it to store additional information.
+You can also specify a #GstCollectDataDestroyNotify that will be called
+just before the #GstCollectData structure is freed. It is passed the
+pointer to the structure and should free any custom memory and resources
+allocated for it.
+The pad will be automatically activated in push mode when @pads is
+started.
+if wrong parameters are supplied.
+MT safe."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="destroy_notify"
+ transfer-ownership="none"
+ scope="call">
+ <type name="CollectDataDestroyNotify"
+ c:type="GstCollectDataDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_pad"
+ c:identifier="gst_collect_pads_remove_pad"
+ doc="Remove a pad from the collection of collect pads. This function will also
+free the #GstCollectData and all the resources that were allocated with
+gst_collect_pads_add_pad().
+The pad will be deactivated automatically when @pads is stopped.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_active"
+ c:identifier="gst_collect_pads_is_active"
+ doc="Check if a pad is active.
+This function is currently not implemented.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="collect"
+ c:identifier="gst_collect_pads_collect"
+ doc="Collect data on all pads. This function is usually called
+from a #GstTask function in an element.
+This function is currently not implemented.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ </method>
+ <method name="collect_range"
+ c:identifier="gst_collect_pads_collect_range"
+ doc="Collect data with @offset and @length on all pads. This function
+is typically called in the getrange function of an element.
+This function is currently not implemented.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <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>
+ </parameters>
+ </method>
+ <method name="start"
+ c:identifier="gst_collect_pads_start"
+ doc="Starts the processing of data in the collect_pads.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="stop"
+ c:identifier="gst_collect_pads_stop"
+ doc="Stops the processing of data in the collect_pads. this function
+will also unblock any blocking operations.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_flushing"
+ c:identifier="gst_collect_pads_set_flushing"
+ doc="Change the flushing state of all the pads in the collection. No pad
+is able to accept anymore data when @flushing is %TRUE. Calling this
+function with @flushing %FALSE makes @pads accept data again.
+MT safe."
+ version="0.10.7.">
+ <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="peek"
+ c:identifier="gst_collect_pads_peek"
+ doc="Peek at the buffer currently queued in @data. This function
+should be called with the @pads LOCK held, such as in the callback
+handler.
+should unref the buffer after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="pop"
+ c:identifier="gst_collect_pads_pop"
+ doc="Pop the buffer currently queued in @data. This function
+should be called with the @pads LOCK held, such as in the callback
+handler.
+You should unref the buffer after usage.
+MT safe.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="available"
+ c:identifier="gst_collect_pads_available"
+ doc="Query how much bytes can be read from each queued buffer. This means
+that the result of this call is the maximum number of bytes that can
+be read from each of the pads.
+This function should be called with @pads LOCK held, such as
+in the callback.
+returns 0 if a pad has no queued buffer.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="read"
+ c:identifier="gst_collect_pads_read"
+ doc="Get a pointer in @bytes where @size bytes can be read from the
+given pad @data.
+This function should be called with @pads LOCK held, such as
+in the callback.
+memory pointed to by @bytes. This can be less than @size and
+is 0 if the pad is end-of-stream.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ <parameter name="bytes" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="read_buffer"
+ c:identifier="gst_collect_pads_read_buffer"
+ doc="Get a buffer of @size bytes from the given pad @data.
+This function should be called with @pads LOCK held, such as in the callback.
+A return of NULL signals that the pad is end-of-stream.
+Unref the buffer after use.
+MT safe."
+ version="0.10.18">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="take_buffer"
+ c:identifier="gst_collect_pads_take_buffer"
+ doc="Get a buffer of @size bytes from the given pad @data. Flushes the amount
+of read bytes.
+This function should be called with @pads LOCK held, such as in the callback.
+A return of NULL signals that the pad is end-of-stream.
+Unref the buffer after use.
+MT safe."
+ version="0.10.18">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="flush"
+ c:identifier="gst_collect_pads_flush"
+ doc="Flush @size bytes from the pad @data.
+This function should be called with @pads LOCK held, such as
+in the callback.
+is 0 if the pad was end-of-stream.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="object">
+ <type name="Gst.Object" c:type="GstObject"/>
+ </field>
+ <field name="data">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </field>
+ <field name="cookie">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="cond">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="func">
+ <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/>
+ </field>
+ <field name="user_data">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="numpads">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="queuedpads">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="eospads">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="started">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="pad_lock" writable="1">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="pad_list" writable="1">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </field>
+ <field name="pad_cookie" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="priv" writable="1">
+ <type name="CollectPadsPrivate" c:type="GstCollectPadsPrivate*"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ </class>
+ <record name="CollectPadsClass"
+ c:type="GstCollectPadsClass"
+ glib:is-gtype-struct-for="CollectPads">
+ <field name="parent_class">
+ <type name="Gst.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="CollectPadsClipFunction"
+ c:type="GstCollectPadsClipFunction"
+ doc="A function that will be called when @buffer is received on the pad managed
+by @data in the collecpad object @pads.
+The function should use the segment of @data and the negotiated media type on
+the pad to perform clipping of @buffer.
+This function takes ownership of @buffer.
+the buffer has been clipped completely."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pads" transfer-ownership="none">
+ <type name="CollectPads" c:type="GstCollectPads*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="CollectData" c:type="GstCollectData*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="3">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="CollectPadsFunction"
+ c:type="GstCollectPadsFunction"
+ doc="A function that will be called when all pads have received data.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pads" transfer-ownership="none">
+ <type name="CollectPads" c:type="GstCollectPads*"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="CollectPadsPrivate" c:type="GstCollectPadsPrivate">
+ </record>
+ <class name="DataQueue"
+ c:type="GstDataQueue"
+ doc="Opaque #GstDataQueue structure."
+ parent="GObject.Object"
+ glib:type-name="GstDataQueue"
+ glib:get-type="gst_data_queue_get_type"
+ glib:type-struct="DataQueueClass">
+ <constructor name="new" c:identifier="gst_data_queue_new" doc="or not.">
+ <return-value transfer-ownership="full">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="checkfull"
+ transfer-ownership="none"
+ scope="call"
+ closure="1">
+ <type name="DataQueueCheckFullFunction"
+ c:type="GstDataQueueCheckFullFunction"/>
+ </parameter>
+ <parameter name="checkdata" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_full"
+ c:identifier="gst_data_queue_new_full"
+ doc="or not.
+Creates a new #GstDataQueue. The difference with @gst_data_queue_new is that it will
+not emit the 'full' and 'empty' signals, but instead calling directly @fullcallback
+or @emptycallback."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="checkfull" transfer-ownership="none" scope="call">
+ <type name="DataQueueCheckFullFunction"
+ c:type="GstDataQueueCheckFullFunction"/>
+ </parameter>
+ <parameter name="fullcallback"
+ transfer-ownership="none"
+ scope="call">
+ <type name="DataQueueFullCallback"
+ c:type="GstDataQueueFullCallback"/>
+ </parameter>
+ <parameter name="emptycallback"
+ transfer-ownership="none"
+ scope="call"
+ closure="3">
+ <type name="DataQueueEmptyCallback"
+ c:type="GstDataQueueEmptyCallback"/>
+ </parameter>
+ <parameter name="checkdata" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="push"
+ c:identifier="gst_data_queue_push"
+ doc="Pushes a #GstDataQueueItem (or a structure that begins with the same fields)
+on the @queue. If the @queue is full, the call will block until space is
+available, OR the @queue is set to flushing state.
+MT safe.
+Note that this function has slightly different semantics than gst_pad_push()
+the #GstMiniObject contained in @item if the push was successful. If FALSE
+is returned, the caller is responsible for freeing @item and its contents.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <type name="DataQueueItem" c:type="GstDataQueueItem*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="pop"
+ c:identifier="gst_data_queue_pop"
+ doc="Retrieves the first @item available on the @queue. If the queue is currently
+empty, the call will block until at least one item is available, OR the
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="item" transfer-ownership="none">
+ <type name="DataQueueItem" c:type="GstDataQueueItem**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="flush"
+ c:identifier="gst_data_queue_flush"
+ doc="Flushes all the contents of the @queue. Any call to #gst_data_queue_push and
+#gst_data_queue_pop will be released.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_flushing"
+ c:identifier="gst_data_queue_set_flushing"
+ doc="Sets the queue to flushing state if @flushing is #TRUE. If set to flushing
+state, any incoming data on the @queue will be discarded. Any call currently
+blocking on #gst_data_queue_push or #gst_data_queue_pop will return straight
+away with a return value of #FALSE. While the @queue is in flushing state,
+all calls to those two functions will return #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="drop_head"
+ c:identifier="gst_data_queue_drop_head"
+ doc="Pop and unref the head-most #GstMiniObject with the given #GType.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="GType" c:type="GType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_full"
+ c:identifier="gst_data_queue_is_full"
+ doc="Queries if @queue is full. This check will be done using the
+#GstDataQueueCheckFullFunction registered with @queue.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="is_empty"
+ c:identifier="gst_data_queue_is_empty"
+ doc="Queries if there are any items in the @queue.
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_level"
+ c:identifier="gst_data_queue_get_level"
+ doc="Get the current level of the queue.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="level" transfer-ownership="none">
+ <type name="DataQueueSize" c:type="GstDataQueueSize*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="limits_changed"
+ c:identifier="gst_data_queue_limits_changed"
+ doc="Inform the queue that the limits for the fullness check have changed and that
+any blocking gst_data_queue_push() should be unblocked to recheck the limts.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <property name="current-level-bytes">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="current-level-time">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <property name="current-level-visible">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <field name="object">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="queue">
+ <type name="GLib.Queue" c:type="GQueue*"/>
+ </field>
+ <field name="cur_level">
+ <type name="DataQueueSize" c:type="GstDataQueueSize"/>
+ </field>
+ <field name="checkfull">
+ <type name="DataQueueCheckFullFunction"
+ c:type="GstDataQueueCheckFullFunction"/>
+ </field>
+ <field name="checkdata">
+ <type name="any" c:type="gpointer*"/>
+ </field>
+ <field name="qlock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="item_add">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="item_del">
+ <type name="GLib.Cond" c:type="GCond*"/>
+ </field>
+ <field name="flushing">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="fullcallback">
+ <type name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"/>
+ </field>
+ <field name="emptycallback">
+ <type name="DataQueueEmptyCallback"
+ c:type="GstDataQueueEmptyCallback"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ <glib:signal name="empty"
+ doc="Reports that the queue became empty (empty).
+A queue is empty if the total amount of visible items inside it (num-visible, time,
+size) is lower than the boundary values which can be set through the GObject
+properties.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="full"
+ doc="Reports that the queue became full (full).
+A queue is full if the total amount of data inside it (num-visible, time,
+size) is higher than the boundary values which can be set through the GObject
+properties.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ </class>
+ <callback name="DataQueueCheckFullFunction"
+ c:type="GstDataQueueCheckFullFunction"
+ doc="The prototype of the function used to inform the queue that it should be
+considered as full.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="queue" transfer-ownership="none">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </parameter>
+ <parameter name="visible" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="bytes" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="time" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="checkdata" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="DataQueueClass"
+ c:type="GstDataQueueClass"
+ glib:is-gtype-struct-for="DataQueue">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="empty">
+ <callback name="empty" c:type="empty">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="queue" transfer-ownership="none">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="full">
+ <callback name="full" c:type="full">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="queue" transfer-ownership="none">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </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="DataQueueEmptyCallback" c:type="GstDataQueueEmptyCallback">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="queue" transfer-ownership="none">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </parameter>
+ <parameter name="checkdata" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="DataQueueFullCallback" c:type="GstDataQueueFullCallback">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="queue" transfer-ownership="none">
+ <type name="DataQueue" c:type="GstDataQueue*"/>
+ </parameter>
+ <parameter name="checkdata" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="DataQueueItem"
+ c:type="GstDataQueueItem"
+ doc="#GST_CLOCK_TIME_NONE.
+This function should also drop the reference to @object the owner of the
+#GstDataQueueItem is assumed to hold.
+Structure used by #GstDataQueue. You can supply a different structure, as
+long as the top of the structure is identical to this structure.">
+ <field name="object" writable="1">
+ <type name="Gst.MiniObject" c:type="GstMiniObject*"/>
+ </field>
+ <field name="size" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="duration" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="visible" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="destroy" writable="1">
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </field>
+ </record>
+ <record name="DataQueueSize"
+ c:type="GstDataQueueSize"
+ doc="Structure describing the size of a queue.">
+ <field name="visible" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="bytes" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="time" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ </record>
+ <class name="PushSrc"
+ c:type="GstPushSrc"
+ doc="The opaque #GstPushSrc data structure."
+ parent="BaseSrc"
+ glib:type-name="GstPushSrc"
+ glib:get-type="gst_push_src_get_type"
+ glib:type-struct="PushSrcClass">
+ <virtual-method name="create">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <field name="parent">
+ <type name="BaseSrc" c:type="GstBaseSrc"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="PushSrcClass"
+ c:type="GstPushSrcClass"
+ glib:is-gtype-struct-for="PushSrc">
+ <field name="parent_class">
+ <type name="BaseSrcClass" c:type="GstBaseSrcClass"/>
+ </field>
+ <field name="create">
+ <callback name="create" c:type="create">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="PushSrc" c:type="GstPushSrc*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <constant name="TRANSFORM_SINK_NAME" value="sink">
+ <type name="utf8"/>
+ </constant>
+ <constant name="TRANSFORM_SRC_NAME" value="src">
+ <type name="utf8"/>
+ </constant>
+ <callback name="TypeFindHelperGetRangeFunction"
+ c:type="GstTypeFindHelperGetRangeFunction"
+ doc="This function will be called by gst_type_find_helper_get_range() when
+typefinding functions request to peek at the data of a stream at certain
+offsets. 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 supposed to behave exactly like a #GstPadGetRangeFunction.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </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="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <function name="type_find_helper"
+ c:identifier="gst_type_find_helper"
+ doc="Tries to find what type of data is flowing from the given source #GstPad.
+Returns #NULL if no #GstCaps matches the data stream.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_find_helper_for_buffer"
+ c:identifier="gst_type_find_helper_for_buffer"
+ doc="Tries to find what type of data is contained in the given #GstBuffer, the
+assumption being that the buffer represents the beginning of the stream or
+file.
+All available typefinders will be called on the data in order of rank. If
+a typefinding function returns a probability of #GST_TYPE_FIND_MAXIMUM,
+typefinding is stopped immediately and the found caps will be returned
+right away. Otherwise, all available typefind functions will the tried,
+and the caps with the highest probability will be returned, or #NULL if
+the content of the buffer could not be identified.
+be found. The caller should free the caps returned with gst_caps_unref().">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="prob" transfer-ownership="none">
+ <type name="Gst.TypeFindProbability"
+ c:type="GstTypeFindProbability*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_find_helper_for_extension"
+ c:identifier="gst_type_find_helper_for_extension"
+ doc="Tries to find the best #GstCaps associated with @extension.
+All available typefinders will be checked against the extension in order
+of rank. The caps of the first typefinder that can handle @extension will be
+returned.
+be found. The caller should free the caps returned with gst_caps_unref()."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_find_helper_get_range"
+ c:identifier="gst_type_find_helper_get_range"
+ doc="to access data at random offsets when doing the typefinding
+Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
+however, this function will use the specified function @func to obtain the
+data needed by the typefind functions, rather than operating on a given
+source pad. This is useful mostly for elements like tag demuxers which
+strip off data at the beginning and/or end of a file and want to typefind
+the stripped data stream before adding their own source pad (the specified
+callback can then call the upstream peer pad with offsets adjusted for the
+tag size, for example).
+Returns #NULL if no #GstCaps matches the data stream.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="TypeFindHelperGetRangeFunction"
+ c:type="GstTypeFindHelperGetRangeFunction"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="prob" transfer-ownership="none">
+ <type name="Gst.TypeFindProbability"
+ c:type="GstTypeFindProbability*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="type_find_helper_get_range_ext"
+ c:identifier="gst_type_find_helper_get_range_ext"
+ doc="to access data at random offsets when doing the typefinding
+Utility function to do pull-based typefinding. Unlike gst_type_find_helper()
+however, this function will use the specified function @func to obtain the
+data needed by the typefind functions, rather than operating on a given
+source pad. This is useful mostly for elements like tag demuxers which
+strip off data at the beginning and/or end of a file and want to typefind
+the stripped data stream before adding their own source pad (the specified
+callback can then call the upstream peer pad with offsets adjusted for the
+tag size, for example).
+When @extension is not NULL, this function will first try the typefind
+functions for the given extension, which might speed up the typefinding
+in many cases.
+Returns #NULL if no #GstCaps matches the data stream."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="obj" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="func" transfer-ownership="none" scope="call">
+ <type name="TypeFindHelperGetRangeFunction"
+ c:type="GstTypeFindHelperGetRangeFunction"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="prob" transfer-ownership="none">
+ <type name="Gst.TypeFindProbability"
+ c:type="GstTypeFindProbability*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.base.ffi ;
+IN: gstreamer.base
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.base.ffi
+
+<<
+"gstreamer.base" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstbase-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/base/GstBase-0.10.gir
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/check/gstbufferstraw.h"/>
+ <c:include name="gst/check/gstcheck.h"/>
+ <c:include name="gst/check/gstconsistencychecker.h"/>
+ <c:include name="gst/check/internal-check.h"/>
+ <namespace name="GstCheck"
+ version="0.10"
+ shared-library="libgstcheck-0.10.so.0"
+ c:prefix="Gst">
+ <constant name="CHECK_MAJOR_VERSION" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="CHECK_MICRO_VERSION" value="8">
+ <type name="int"/>
+ </constant>
+ <constant name="CHECK_MINOR_VERSION" value="9">
+ <type name="int"/>
+ </constant>
+ <record name="CheckABIStruct" c:type="GstCheckABIStruct">
+ <field name="name" writable="1">
+ <type name="utf8" c:type="char*"/>
+ </field>
+ <field name="size" writable="1">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="abi_size" writable="1">
+ <type name="int" c:type="int"/>
+ </field>
+ </record>
+ <callback name="SFun" c:type="SFun">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </callback>
+ <record name="SRunner" c:type="SRunner">
+ </record>
+ <record name="StreamConsistency"
+ c:type="GstStreamConsistency"
+ doc="Opaque consistency checker handle."
+ version="0.10.24">
+ </record>
+ <record name="Suite" c:type="Suite">
+ <method name="add_tcase" c:identifier="suite_add_tcase">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tc" transfer-ownership="none">
+ <type name="TCase" c:type="TCase*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="TCase" c:type="TCase">
+ </record>
+ <callback name="TFun" c:type="TFun">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="TestResult" c:type="TestResult">
+ </record>
+ <function name="abi_list" c:identifier="gst_check_abi_list">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="CheckABIStruct" c:type="GstCheckABIStruct"/>
+ </parameter>
+ <parameter name="have_abi_sizes" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_straw_get_buffer"
+ c:identifier="gst_buffer_straw_get_buffer"
+ doc="Get one buffer from @pad. Implemented via buffer probes. This function will
+block until the pipeline passes a buffer over @pad, so for robust behavior
+in unit tests, you need to use check's timeout to fail out in the case that a
+buffer never arrives.
+You must have previously called gst_buffer_straw_start_pipeline() on">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_straw_start_pipeline"
+ c:identifier="gst_buffer_straw_start_pipeline"
+ doc="Sets up a pipeline for buffer sucking. This will allow you to call
+gst_buffer_straw_get_buffer() to access buffers as they pass over @pad.
+This function is normally used in unit tests that want to verify that a
+particular element is outputting correct buffers. For example, you would make
+a pipeline via gst_parse_launch(), pull out the pad you want to monitor, then
+call gst_buffer_straw_get_buffer() to get the buffers that pass through @pad.
+The pipeline will block until you have sucked off the buffers.
+This function will set the state of @bin to PLAYING; to clean up, be sure to
+call gst_buffer_straw_stop_pipeline().
+Note that you may not start two buffer straws at the same time. This function
+is intended for unit tests, not general API use. In fact it calls fail_if
+from libcheck, so you cannot use it outside unit tests.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_straw_stop_pipeline"
+ c:identifier="gst_buffer_straw_stop_pipeline"
+ doc="Set @bin to #GST_STATE_NULL and release resource allocated in
+gst_buffer_straw_start_pipeline().
+You must have previously called gst_buffer_straw_start_pipeline() on">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="bin" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="caps_equal"
+ c:identifier="gst_check_caps_equal"
+ doc="Compare two caps with gst_caps_is_equal and fail unless they are
+equal."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps1" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="caps2" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="chain_func" c:identifier="gst_check_chain_func">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="check_fork" c:identifier="check_fork">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="pid_t"/>
+ </return-value>
+ </function>
+ <function name="check_waitpid_and_exit"
+ c:identifier="check_waitpid_and_exit">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pid" transfer-ownership="none">
+ <type name="int" c:type="pid_t"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="consistency_checker_free"
+ c:identifier="gst_consistency_checker_free"
+ doc="Frees the allocated data and probe associated with @consist."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="consist" transfer-ownership="none">
+ <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="consistency_checker_new"
+ c:identifier="gst_consistency_checker_new"
+ doc="Sets up a data probe on the given pad which will raise assertions if the
+data flow is inconsistent.
+Currently only works for source pads."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="consistency_checker_reset"
+ c:identifier="gst_consistency_checker_reset"
+ doc="Reset the stream checker's internal variables."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="consist" transfer-ownership="none">
+ <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="drop_buffers"
+ c:identifier="gst_check_drop_buffers"
+ doc="Unref and remove all buffers that are in the global @buffers GList,
+emptying the list."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="element_push_buffer"
+ c:identifier="gst_check_element_push_buffer"
+ doc="Create an @element with the factory with the name and push the
+and this will be compared with @buffer_out. We only check the caps
+and the data of the buffers. This function unrefs the buffers."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="buffer_in" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="buffer_out" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="element_push_buffer_list"
+ c:identifier="gst_check_element_push_buffer_list"
+ doc="Create an @element with the factory with the name and push the buffers in
+the buffers in @buffer_out. We only check the caps, size and the data of the
+buffers. This function unrefs the buffers in the two lists.
+The last_flow_return parameter indicates the expected flow return value from
+pushing the final buffer in the list.
+This can be used to set up a test which pushes some buffers and then an
+invalid buffer, when the final buffer is expected to fail, for example."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="buffer_in" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ <parameter name="buffer_out" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ <parameter name="last_flow_return" transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="init" c:identifier="gst_check_init">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="argc" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="argv" transfer-ownership="none">
+ <array c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="message_error" c:identifier="gst_check_message_error">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="Gst.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>
+ </parameters>
+ </function>
+ <function name="run_suite" c:identifier="gst_check_run_suite">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="suite" transfer-ownership="none">
+ <type name="Suite" c:type="Suite*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="fname" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="setup_element" c:identifier="gst_check_setup_element">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </return-value>
+ <parameters>
+ <parameter name="factory" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="setup_sink_pad" c:identifier="gst_check_setup_sink_pad">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="template" transfer-ownership="none">
+ <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="setup_sink_pad_by_name"
+ c:identifier="gst_check_setup_sink_pad_by_name">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="template" transfer-ownership="none">
+ <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="setup_src_pad" c:identifier="gst_check_setup_src_pad">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="template" transfer-ownership="none">
+ <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="setup_src_pad_by_name"
+ c:identifier="gst_check_setup_src_pad_by_name">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="template" transfer-ownership="none">
+ <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_add_suite" c:identifier="srunner_add_suite">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ <parameter name="s" transfer-ownership="none">
+ <type name="Suite" c:type="Suite*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_create" c:identifier="srunner_create">
+ <return-value transfer-ownership="full">
+ <type name="SRunner" c:type="SRunner*"/>
+ </return-value>
+ <parameters>
+ <parameter name="s" transfer-ownership="none">
+ <type name="Suite" c:type="Suite*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_failures" c:identifier="srunner_failures">
+ <return-value transfer-ownership="full">
+ <type name="TestResult" c:type="TestResult**"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_fork_status" c:identifier="srunner_fork_status">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="any"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_free" c:identifier="srunner_free">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_has_log" c:identifier="srunner_has_log">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_has_xml" c:identifier="srunner_has_xml">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_log_fname" c:identifier="srunner_log_fname">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_ntests_failed"
+ c:identifier="srunner_ntests_failed">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_ntests_run" c:identifier="srunner_ntests_run">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_print" c:identifier="srunner_print">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ <parameter name="print_mode" transfer-ownership="none">
+ <type name="any" c:type="any"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_results" c:identifier="srunner_results">
+ <return-value transfer-ownership="full">
+ <type name="TestResult" c:type="TestResult**"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_run_all" c:identifier="srunner_run_all">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ <parameter name="print_mode" transfer-ownership="none">
+ <type name="any" c:type="any"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_set_fork_status"
+ c:identifier="srunner_set_fork_status">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ <parameter name="fstat" transfer-ownership="none">
+ <type name="any" c:type="any"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_set_log" c:identifier="srunner_set_log">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ <parameter name="fname" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_set_xml" c:identifier="srunner_set_xml">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ <parameter name="fname" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="srunner_xml_fname" c:identifier="srunner_xml_fname">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="sr" transfer-ownership="none">
+ <type name="SRunner" c:type="SRunner*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="suite_create" c:identifier="suite_create">
+ <return-value transfer-ownership="full">
+ <type name="Suite" c:type="Suite*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tcase_add_checked_fixture"
+ c:identifier="tcase_add_checked_fixture">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tc" transfer-ownership="none">
+ <type name="TCase" c:type="TCase*"/>
+ </parameter>
+ <parameter name="setup" transfer-ownership="none" scope="call">
+ <type name="SFun" c:type="SFun"/>
+ </parameter>
+ <parameter name="teardown" transfer-ownership="none" scope="call">
+ <type name="SFun" c:type="SFun"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tcase_add_unchecked_fixture"
+ c:identifier="tcase_add_unchecked_fixture">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tc" transfer-ownership="none">
+ <type name="TCase" c:type="TCase*"/>
+ </parameter>
+ <parameter name="setup" transfer-ownership="none" scope="call">
+ <type name="SFun" c:type="SFun"/>
+ </parameter>
+ <parameter name="teardown" transfer-ownership="none" scope="call">
+ <type name="SFun" c:type="SFun"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tcase_create" c:identifier="tcase_create">
+ <return-value transfer-ownership="full">
+ <type name="TCase" c:type="TCase*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tcase_fn_start" c:identifier="tcase_fn_start">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="fname" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="file" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="line" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tcase_set_timeout" c:identifier="tcase_set_timeout">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tc" transfer-ownership="none">
+ <type name="TCase" c:type="TCase*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="teardown_element"
+ c:identifier="gst_check_teardown_element">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="teardown_pad_by_name"
+ c:identifier="gst_check_teardown_pad_by_name">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="teardown_sink_pad"
+ c:identifier="gst_check_teardown_sink_pad">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="teardown_src_pad"
+ c:identifier="gst_check_teardown_src_pad">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tr_ctx" c:identifier="tr_ctx">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="any"/>
+ </return-value>
+ <parameters>
+ <parameter name="tr" transfer-ownership="none">
+ <type name="TestResult" c:type="TestResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tr_lfile" c:identifier="tr_lfile">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tr" transfer-ownership="none">
+ <type name="TestResult" c:type="TestResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tr_lno" c:identifier="tr_lno">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="tr" transfer-ownership="none">
+ <type name="TestResult" c:type="TestResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tr_msg" c:identifier="tr_msg">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tr" transfer-ownership="none">
+ <type name="TestResult" c:type="TestResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tr_rtype" c:identifier="tr_rtype">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="tr" transfer-ownership="none">
+ <type name="TestResult" c:type="TestResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="tr_tcname" c:identifier="tr_tcname">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tr" transfer-ownership="none">
+ <type name="TestResult" c:type="TestResult*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.check.ffi ;
+IN: gstreamer.check
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi ;
+FROM: unix.types => pid_t ;
+IN: gstreamer.check.ffi
+
+<<
+"gstreamer.check" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstcheck-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+IMPLEMENT-STRUCTS: GstCheckABIStruct ;
+
+GIR: vocab:gstreamer/check/GstCheck-0.10.gir
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/controller/gstcontroller.h"/>
+ <c:include name="gst/controller/gstcontrolsource.h"/>
+ <c:include name="gst/controller/gstinterpolationcontrolsource.h"/>
+ <c:include name="gst/controller/gstlfocontrolsource.h"/>
+ <namespace name="GstController"
+ version="0.10"
+ shared-library="libgstcontroller-0.10.so.0"
+ c:prefix="Gst">
+ <class name="ControlSource"
+ c:type="GstControlSource"
+ doc="The instance structure of #GstControlSource."
+ parent="GObject.Object"
+ abstract="1"
+ glib:type-name="GstControlSource"
+ glib:get-type="gst_control_source_get_type"
+ glib:type-struct="ControlSourceClass">
+ <method name="get_value"
+ c:identifier="gst_control_source_get_value"
+ doc="Gets the value for this #GstControlSource at a given timestamp.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_value_array"
+ c:identifier="gst_control_source_get_value_array"
+ doc="Gets an array of values for one element property.
+All fields of @value_array must be filled correctly. Especially the
+of values.
+The type of the values in the array is the same as the property's type.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value_array" transfer-ownership="none">
+ <type name="ValueArray" c:type="GstValueArray*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bind"
+ c:identifier="gst_control_source_bind"
+ doc="Binds a #GstControlSource to a specific property. This must be called only once for a
+#GstControlSource.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <field name="parent">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="get_value">
+ <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/>
+ </field>
+ <field name="get_value_array">
+ <type name="ControlSourceGetValueArray"
+ c:type="GstControlSourceGetValueArray"/>
+ </field>
+ <field name="bound">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <callback name="ControlSourceBind" c:type="GstControlSourceBind">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <record name="ControlSourceClass"
+ c:type="GstControlSourceClass"
+ glib:is-gtype-struct-for="ControlSource"
+ doc="The class structure of #GstControlSource.">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="bind">
+ <type name="ControlSourceBind" c:type="GstControlSourceBind"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <callback name="ControlSourceGetValue" c:type="GstControlSourceGetValue">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <callback name="ControlSourceGetValueArray"
+ c:type="GstControlSourceGetValueArray">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="self" transfer-ownership="none">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value_array" transfer-ownership="none">
+ <type name="ValueArray" c:type="GstValueArray*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <class name="Controller"
+ c:type="GstController"
+ doc="The instance structure of GstController"
+ parent="GObject.Object"
+ glib:type-name="GstController"
+ glib:get-type="gst_controller_get_type"
+ glib:type-struct="ControllerClass">
+ <constructor name="new_list"
+ c:identifier="gst_controller_new_list"
+ doc="Creates a new GstController for the given object's properties">
+ <return-value transfer-ownership="full">
+ <type name="Controller" c:type="GstController*"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="list" transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new"
+ c:identifier="gst_controller_new"
+ doc="Creates a new GstController for the given object's properties">
+ <return-value transfer-ownership="full">
+ <type name="Controller" c:type="GstController*"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </constructor>
+ <function name="init"
+ c:identifier="gst_controller_init"
+ doc="Initializes the use of the controller library. Suggested to be called right
+after gst_init().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="argc" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="argv" transfer-ownership="none">
+ <type name="utf8" c:type="char***"/>
+ </parameter>
+ </parameters>
+ </function>
+ <method name="remove_properties_list"
+ c:identifier="gst_controller_remove_properties_list"
+ doc="Removes the given object properties from the controller">
+ <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>
+ </parameters>
+ </method>
+ <method name="remove_properties"
+ c:identifier="gst_controller_remove_properties"
+ doc="Removes the given object properties from the controller">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_disabled"
+ c:identifier="gst_controller_set_disabled"
+ doc="or not.
+This function is used to disable all properties of the #GstController
+for some time, i.e. gst_controller_sync_values() will do nothing."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="disabled" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_property_disabled"
+ c:identifier="gst_controller_set_property_disabled"
+ doc="or not.
+This function is used to disable the #GstController on a property for
+some time, i.e. gst_controller_sync_values() will do nothing for the
+property."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="disabled" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_control_source"
+ c:identifier="gst_controller_set_control_source"
+ doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
+for this property it will be unreferenced.
+couldn't be bound to the property, %TRUE if everything worked as expected."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="csource" transfer-ownership="none">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_control_source"
+ c:identifier="gst_controller_get_control_source"
+ doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced
+again after use.
+controlled by this controller or no #GstControlSource was assigned yet."
+ version="0.10.14">
+ <return-value transfer-ownership="full">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="suggest_next_sync"
+ c:identifier="gst_controller_suggest_next_sync"
+ doc="Returns a suggestion for timestamps where buffers should be split
+to get best controller results.
+if no control-rate was set."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ </method>
+ <method name="sync_values"
+ c:identifier="gst_controller_sync_values"
+ doc="Sets the properties of the element, according to the controller that (maybe)
+handles them and for the given timestamp.
+If this function fails, it is most likely the application developers fault.
+Most probably the control sources are not setup correctly.
+properties, %FALSE otherwise">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get"
+ c:identifier="gst_controller_get"
+ doc="Gets the value for the given controller-handled property at the requested
+time.
+property isn't handled by the controller">
+ <return-value transfer-ownership="full">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_value_arrays"
+ c:identifier="gst_controller_get_value_arrays"
+ doc="Function to be able to get an array of values for one or more given element
+properties.
+All fields of the %GstValueArray in the list must be filled correctly.
+Especially the GstValueArray->values arrays must be big enough to keep
+the requested amount of values.
+The types of the values in the array are the same as the property's type.
+<note><para>This doesn't modify the controlled GObject properties!</para></note>">
+ <return-value transfer-ownership="none"
+ doc="could be filled, %FALSE otherwise">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value_arrays" transfer-ownership="none">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_value_array"
+ c:identifier="gst_controller_get_value_array"
+ doc="Function to be able to get an array of values for one element property.
+All fields of @value_array must be filled correctly. Especially the
+of values.
+The type of the values in the array is the same as the property's type.
+<note><para>This doesn't modify the controlled GObject property!</para></note>">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value_array" transfer-ownership="none">
+ <type name="ValueArray" c:type="GstValueArray*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set"
+ c:identifier="gst_controller_set"
+ doc="Set the value of given controller-handled property at a certain time.
+directly."
+ deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+ <return-value transfer-ownership="none" doc="TRUE otherwise">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_from_list"
+ c:identifier="gst_controller_set_from_list"
+ doc="Sets multiple timed values at once.
+directly."
+ deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+ <return-value transfer-ownership="none" doc="%TRUE otherwise">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="timedvalues" transfer-ownership="none">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unset"
+ c:identifier="gst_controller_unset"
+ doc="Used to remove the value of given controller-handled property at a certain
+time.
+directly."
+ deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+ <return-value transfer-ownership="none" doc="%TRUE otherwise">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unset_all"
+ c:identifier="gst_controller_unset_all"
+ doc="Used to remove all time-stamped values of given controller-handled property
+directly.
+by controller), %TRUE otherwise"
+ version="0.10.5"
+ deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_all"
+ c:identifier="gst_controller_get_all"
+ doc="Returns a read-only copy of the list of #GstTimedValue for the given property.
+Free the list after done with it.
+<note><para>This doesn't modify the controlled GObject property!</para></note>
+directly."
+ deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_interpolation_mode"
+ c:identifier="gst_controller_set_interpolation_mode"
+ doc="Sets the given interpolation mode on the given property.
+<note><para>User interpolation is not yet available and quadratic interpolation
+is deprecated and maps to cubic interpolation.</para></note>
+directly."
+ deprecated="Use #GstControlSource, for example #GstInterpolationControlSource">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="InterpolateMode" c:type="GstInterpolateMode"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="control-rate" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <field name="parent">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="properties">
+ <type name="GLib.List" c:type="GList*"/>
+ </field>
+ <field name="lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="object">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </field>
+ <field name="priv">
+ <type name="ControllerPrivate" c:type="GstControllerPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="ControllerClass"
+ c:type="GstControllerClass"
+ glib:is-gtype-struct-for="Controller">
+ <field name="parent_class">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="ControllerPrivate" c:type="GstControllerPrivate">
+ </record>
+ <enumeration name="InterpolateMode"
+ doc="except for times with specific values
+The various interpolation modes available."
+ c:type="GstInterpolateMode">
+ <member name="none" value="0" c:identifier="GST_INTERPOLATE_NONE"/>
+ <member name="trigger" value="1" c:identifier="GST_INTERPOLATE_TRIGGER"/>
+ <member name="linear" value="2" c:identifier="GST_INTERPOLATE_LINEAR"/>
+ <member name="quadratic"
+ value="3"
+ c:identifier="GST_INTERPOLATE_QUADRATIC"/>
+ <member name="cubic" value="4" c:identifier="GST_INTERPOLATE_CUBIC"/>
+ <member name="user" value="5" c:identifier="GST_INTERPOLATE_USER"/>
+ </enumeration>
+ <class name="InterpolationControlSource"
+ c:type="GstInterpolationControlSource"
+ doc="The instance structure of #GstControlSource."
+ parent="ControlSource"
+ glib:type-name="GstInterpolationControlSource"
+ glib:get-type="gst_interpolation_control_source_get_type"
+ glib:type-struct="InterpolationControlSourceClass">
+ <constructor name="new"
+ c:identifier="gst_interpolation_control_source_new"
+ doc="This returns a new, unbound #GstInterpolationControlSource.">
+ <return-value transfer-ownership="full">
+ <type name="InterpolationControlSource"
+ c:type="GstInterpolationControlSource*"/>
+ </return-value>
+ </constructor>
+ <method name="set_interpolation_mode"
+ c:identifier="gst_interpolation_control_source_set_interpolation_mode"
+ doc="Sets the given interpolation mode.
+<note><para>User interpolation is not yet available and quadratic interpolation
+is deprecated and maps to cubic interpolation.</para></note>">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="mode" transfer-ownership="none">
+ <type name="InterpolateMode" c:type="GstInterpolateMode"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set"
+ c:identifier="gst_interpolation_control_source_set"
+ doc="Set the value of given controller-handled property at a certain time.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_from_list"
+ c:identifier="gst_interpolation_control_source_set_from_list"
+ doc="Sets multiple timed values at once.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedvalues" transfer-ownership="none">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unset"
+ c:identifier="gst_interpolation_control_source_unset"
+ doc="Used to remove the value of given controller-handled property at a certain
+time.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="unset_all"
+ c:identifier="gst_interpolation_control_source_unset_all"
+ doc="Used to remove all time-stamped values of given controller-handled property">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_all"
+ c:identifier="gst_interpolation_control_source_get_all"
+ doc="Returns a read-only copy of the list of #GstTimedValue for the given property.
+Free the list after done with it.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="get_count"
+ c:identifier="gst_interpolation_control_source_get_count"
+ doc="Returns the number of control points that are set.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <field name="parent">
+ <type name="ControlSource" c:type="GstControlSource"/>
+ </field>
+ <field name="lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="priv">
+ <type name="InterpolationControlSourcePrivate"
+ c:type="GstInterpolationControlSourcePrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="InterpolationControlSourceClass"
+ c:type="GstInterpolationControlSourceClass"
+ glib:is-gtype-struct-for="InterpolationControlSource">
+ <field name="parent_class">
+ <type name="ControlSourceClass" c:type="GstControlSourceClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="InterpolationControlSourcePrivate"
+ c:type="GstInterpolationControlSourcePrivate">
+ </record>
+ <class name="LFOControlSource"
+ c:type="GstLFOControlSource"
+ doc="The instance structure of #GstControlSource."
+ parent="ControlSource"
+ glib:type-name="GstLFOControlSource"
+ glib:get-type="gst_lfo_control_source_get_type"
+ glib:type-struct="LFOControlSourceClass">
+ <constructor name="new"
+ c:identifier="gst_lfo_control_source_new"
+ doc="This returns a new, unbound #GstLFOControlSource.">
+ <return-value transfer-ownership="full">
+ <type name="LFOControlSource" c:type="GstLFOControlSource*"/>
+ </return-value>
+ </constructor>
+ <property name="amplitude" writable="1">
+ <type name="GObject.Value" c:type="GValue"/>
+ </property>
+ <property name="frequency" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </property>
+ <property name="offset" writable="1">
+ <type name="GObject.Value" c:type="GValue"/>
+ </property>
+ <property name="timeshift" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </property>
+ <property name="waveform" writable="1">
+ <type name="LFOWaveform" c:type="GstLFOWaveform"/>
+ </property>
+ <field name="parent">
+ <type name="ControlSource" c:type="GstControlSource"/>
+ </field>
+ <field name="priv">
+ <type name="LFOControlSourcePrivate"
+ c:type="GstLFOControlSourcePrivate*"/>
+ </field>
+ <field name="lock">
+ <type name="GLib.Mutex" c:type="GMutex*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="LFOControlSourceClass"
+ c:type="GstLFOControlSourceClass"
+ glib:is-gtype-struct-for="LFOControlSource">
+ <field name="parent_class">
+ <type name="ControlSourceClass" c:type="GstControlSourceClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="LFOControlSourcePrivate" c:type="GstLFOControlSourcePrivate">
+ </record>
+ <enumeration name="LFOWaveform"
+ doc="The various waveform modes available."
+ glib:type-name="GstLFOWaveform"
+ glib:get-type="gst_lfo_waveform_get_type"
+ c:type="GstLFOWaveform">
+ <member name="sine"
+ value="0"
+ c:identifier="GST_LFO_WAVEFORM_SINE"
+ glib:nick="sine"/>
+ <member name="square"
+ value="1"
+ c:identifier="GST_LFO_WAVEFORM_SQUARE"
+ glib:nick="square"/>
+ <member name="saw"
+ value="2"
+ c:identifier="GST_LFO_WAVEFORM_SAW"
+ glib:nick="saw"/>
+ <member name="reverse_saw"
+ value="3"
+ c:identifier="GST_LFO_WAVEFORM_REVERSE_SAW"
+ glib:nick="reverse-saw"/>
+ <member name="triangle"
+ value="4"
+ c:identifier="GST_LFO_WAVEFORM_TRIANGLE"
+ glib:nick="triangle"/>
+ </enumeration>
+ <record name="TimedValue"
+ c:type="GstTimedValue"
+ doc="Structure for saving a timestamp and a value.">
+ <field name="timestamp" writable="1">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="value" writable="1">
+ <type name="GObject.Value" c:type="GValue"/>
+ </field>
+ </record>
+ <record name="ValueArray"
+ c:type="GstValueArray"
+ doc="Structure to receive multiple values at once.">
+ <field name="property_name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="nbsamples" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="sample_interval" writable="1">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="values" writable="1">
+ <type name="any" c:type="gpointer*"/>
+ </field>
+ </record>
+ <function name="object_control_properties"
+ c:identifier="gst_object_control_properties"
+ doc="Convenience function for GObject
+Creates a GstController that allows you to dynamically control one, or more, GObject properties.
+If the given GObject already has a GstController, it adds the given properties to the existing
+controller and returns that controller.
+one or more of the given properties aren't available, or cannot be controlled, for the given element."
+ version="0.9">
+ <return-value transfer-ownership="full">
+ <type name="Controller" c:type="GstController*"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_get_control_rate"
+ c:identifier="gst_object_get_control_rate"
+ doc="Obtain the control-rate for this @object. Audio processing #GstElement
+objects will use this rate to sub-divide their processing loop and call
+gst_object_sync_values() inbetween. The length of the processing segment
+should be up to @control-rate nanoseconds.
+If the @object is not under property control, this will return
+%GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
+The control-rate is not expected to change if the element is in
+%GST_STATE_PAUSED or %GST_STATE_PLAYING."
+ version="0.10.10">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_get_control_source"
+ c:identifier="gst_object_get_control_source"
+ doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced
+again after use.
+controlled by this controller or no #GstControlSource was assigned yet."
+ version="0.10.14">
+ <return-value transfer-ownership="full">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_get_controller"
+ c:identifier="gst_object_get_controller"
+ doc="Gets the controller for the given GObject"
+ version="0.9">
+ <return-value transfer-ownership="full">
+ <type name="Controller" c:type="GstController*"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_get_value_array"
+ c:identifier="gst_object_get_value_array"
+ doc="Function to be able to get an array of values for one element properties
+If the GstValueArray->values array is NULL, it will be created by the function.
+The type of the values in the array are the same as the property's type.
+The g_object_* functions are just convenience functions for GObject"
+ version="0.9">
+ <return-value transfer-ownership="none"
+ doc="could be filled, %FALSE otherwise">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value_array" transfer-ownership="none">
+ <type name="ValueArray" c:type="GstValueArray*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_get_value_arrays"
+ c:identifier="gst_object_get_value_arrays"
+ doc="Function to be able to get an array of values for one or more given element
+properties.
+If the GstValueArray->values array in list nodes is NULL, it will be created
+by the function.
+The type of the values in the array are the same as the property's type.
+The g_object_* functions are just convenience functions for GObject"
+ version="0.9">
+ <return-value transfer-ownership="none"
+ doc="could be filled, %FALSE otherwise">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ <parameter name="value_arrays" transfer-ownership="none">
+ <type name="GLib.SList" c:type="GSList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_set_control_rate"
+ c:identifier="gst_object_set_control_rate"
+ doc="Change the control-rate for this @object. Audio processing #GstElement
+objects will use this rate to sub-divide their processing loop and call
+gst_object_sync_values() inbetween. The length of the processing segment
+should be up to @control-rate nanoseconds.
+The control-rate should not change if the element is in %GST_STATE_PAUSED or
+%GST_STATE_PLAYING."
+ version="0.10.10">
+ <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="control_rate" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_set_control_source"
+ c:identifier="gst_object_set_control_source"
+ doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource
+for this property it will be unreferenced.
+couldn't be bound to the property, %TRUE if everything worked as expected."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="property_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="csource" transfer-ownership="none">
+ <type name="ControlSource" c:type="GstControlSource*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_set_controller"
+ c:identifier="gst_object_set_controller"
+ doc="Sets the controller on the given GObject"
+ version="0.9">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="controller" transfer-ownership="none">
+ <type name="Controller" c:type="GstController*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_suggest_next_sync"
+ c:identifier="gst_object_suggest_next_sync"
+ doc="Convenience function for GObject"
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_sync_values"
+ c:identifier="gst_object_sync_values"
+ doc="Convenience function for GObject"
+ version="0.9">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="object_uncontrol_properties"
+ c:identifier="gst_object_uncontrol_properties"
+ doc="Convenience function for GObject
+Removes the given element's properties from it's controller
+controller, %TRUE otherwise"
+ version="0.9">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="GObject.Object" c:type="GObject*"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.controller.ffi ;
+IN: gstreamer.controller
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
+IN: gstreamer.controller.ffi
+
+<<
+"gstreamer.controller" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstcontroller-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/controller/GstController-0.10.gir
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/fft/gstfft.h"/>
+ <c:include name="gst/fft/gstfftf32.h"/>
+ <c:include name="gst/fft/gstfftf64.h"/>
+ <c:include name="gst/fft/gstffts16.h"/>
+ <c:include name="gst/fft/gstffts32.h"/>
+ <namespace name="GstFft"
+ version="0.10"
+ shared-library="libgstfft-0.10.so.0"
+ c:prefix="Gst">
+ <record name="FFTF32"
+ c:type="GstFFTF32"
+ doc="Instance structure for #GstFFTF32.">
+ <field name="cfg" writable="1">
+ <type name="any" c:type="void*"/>
+ </field>
+ <field name="inverse" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="len" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="_padding" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_fft_f32_new"
+ doc="This returns a new #GstFFTF32 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+ <return-value transfer-ownership="full">
+ <type name="FFTF32" c:type="GstFFTF32*"/>
+ </return-value>
+ <parameters>
+ <parameter name="len" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="inverse" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="fft"
+ c:identifier="gst_fft_f32_fft"
+ doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTF32 instance with gst_fft_f32_new().
+domain samples.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="none">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inverse_fft"
+ c:identifier="gst_fft_f32_inverse_fft"
+ doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTF32 instance with gst_fft_f32_new().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTF32Complex" c:type="GstFFTF32Complex*"/>
+ </parameter>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_fft_f32_free"
+ doc="This frees the memory allocated for @self.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="window"
+ c:identifier="gst_fft_f32_window"
+ doc="This calls the window function @window on the @timedata sample buffer.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="float" c:type="gfloat*"/>
+ </parameter>
+ <parameter name="window" transfer-ownership="none">
+ <type name="FFTWindow" c:type="GstFFTWindow"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="FFTF32Complex"
+ c:type="GstFFTF32Complex"
+ doc="Data type for complex numbers composed of
+32 bit float.">
+ <field name="r" writable="1">
+ <type name="float" c:type="gfloat"/>
+ </field>
+ <field name="i" writable="1">
+ <type name="float" c:type="gfloat"/>
+ </field>
+ </record>
+ <record name="FFTF64"
+ c:type="GstFFTF64"
+ doc="Instance structure for #GstFFTF64.">
+ <field name="cfg" writable="1">
+ <type name="any" c:type="void*"/>
+ </field>
+ <field name="inverse" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="len" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="_padding" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_fft_f64_new"
+ doc="This returns a new #GstFFTF64 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+ <return-value transfer-ownership="full">
+ <type name="FFTF64" c:type="GstFFTF64*"/>
+ </return-value>
+ <parameters>
+ <parameter name="len" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="inverse" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="fft"
+ c:identifier="gst_fft_f64_fft"
+ doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTF64 instance with gst_fft_f64_new().
+domain samples.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="none">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inverse_fft"
+ c:identifier="gst_fft_f64_inverse_fft"
+ doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTF64 instance with gst_fft_f64_new().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTF64Complex" c:type="GstFFTF64Complex*"/>
+ </parameter>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_fft_f64_free"
+ doc="This frees the memory allocated for @self.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="window"
+ c:identifier="gst_fft_f64_window"
+ doc="This calls the window function @window on the @timedata sample buffer.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="window" transfer-ownership="none">
+ <type name="FFTWindow" c:type="GstFFTWindow"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="FFTF64Complex"
+ c:type="GstFFTF64Complex"
+ doc="Data type for complex numbers composed of
+64 bit float.">
+ <field name="r" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </field>
+ <field name="i" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </field>
+ </record>
+ <record name="FFTS16"
+ c:type="GstFFTS16"
+ doc="Instance structure for #GstFFTS16.">
+ <field name="cfg" writable="1">
+ <type name="any" c:type="void*"/>
+ </field>
+ <field name="inverse" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="len" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="_padding" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_fft_s16_new"
+ doc="This returns a new #GstFFTS16 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+ <return-value transfer-ownership="full">
+ <type name="FFTS16" c:type="GstFFTS16*"/>
+ </return-value>
+ <parameters>
+ <parameter name="len" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="inverse" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="fft"
+ c:identifier="gst_fft_s16_fft"
+ doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTS16 instance with gst_fft_s16_new().
+domain samples.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="none">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inverse_fft"
+ c:identifier="gst_fft_s16_inverse_fft"
+ doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTS16 instance with gst_fft_s16_new().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTS16Complex" c:type="GstFFTS16Complex*"/>
+ </parameter>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_fft_s16_free"
+ doc="This frees the memory allocated for @self.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="window"
+ c:identifier="gst_fft_s16_window"
+ doc="This calls the window function @window on the @timedata sample buffer.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="int16" c:type="gint16*"/>
+ </parameter>
+ <parameter name="window" transfer-ownership="none">
+ <type name="FFTWindow" c:type="GstFFTWindow"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="FFTS16Complex"
+ c:type="GstFFTS16Complex"
+ doc="Data type for complex numbers composed of
+signed 16 bit integers.">
+ <field name="r" writable="1">
+ <type name="int16" c:type="gint16"/>
+ </field>
+ <field name="i" writable="1">
+ <type name="int16" c:type="gint16"/>
+ </field>
+ </record>
+ <record name="FFTS32"
+ c:type="GstFFTS32"
+ doc="Instance structure for #GstFFTS32.">
+ <field name="cfg" writable="1">
+ <type name="any" c:type="void*"/>
+ </field>
+ <field name="inverse" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="len" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="_padding" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_fft_s32_new"
+ doc="This returns a new #GstFFTS32 instance with the given parameters. It makes
+sense to keep one instance for several calls for speed reasons.
+2, 3 and 5. To get the next number with this characteristics use
+gst_fft_next_fast_length().">
+ <return-value transfer-ownership="full">
+ <type name="FFTS32" c:type="GstFFTS32*"/>
+ </return-value>
+ <parameters>
+ <parameter name="len" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="inverse" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="fft"
+ c:identifier="gst_fft_s32_fft"
+ doc="This performs the FFT on @timedata and puts the result in @freqdata.
+allocating the #GstFFTS32 instance with gst_fft_s32_new().
+domain samples.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="none">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="inverse_fft"
+ c:identifier="gst_fft_s32_inverse_fft"
+ doc="This performs the inverse FFT on @freqdata and puts the result in @timedata.
+while allocating the #GstFFTS32 instance with gst_fft_s32_new().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="freqdata" transfer-ownership="none">
+ <type name="FFTS32Complex" c:type="GstFFTS32Complex*"/>
+ </parameter>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="free"
+ c:identifier="gst_fft_s32_free"
+ doc="This frees the memory allocated for @self.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="window"
+ c:identifier="gst_fft_s32_window"
+ doc="This calls the window function @window on the @timedata sample buffer.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timedata" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ <parameter name="window" transfer-ownership="none">
+ <type name="FFTWindow" c:type="GstFFTWindow"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="FFTS32Complex"
+ c:type="GstFFTS32Complex"
+ doc="Data type for complex numbers composed of
+signed 32 bit integers.">
+ <field name="r" writable="1">
+ <type name="int32" c:type="gint32"/>
+ </field>
+ <field name="i" writable="1">
+ <type name="int32" c:type="gint32"/>
+ </field>
+ </record>
+ <enumeration name="FFTWindow"
+ doc="The various window functions available."
+ c:type="GstFFTWindow">
+ <member name="rectangular"
+ value="0"
+ c:identifier="GST_FFT_WINDOW_RECTANGULAR"/>
+ <member name="hamming" value="1" c:identifier="GST_FFT_WINDOW_HAMMING"/>
+ <member name="hann" value="2" c:identifier="GST_FFT_WINDOW_HANN"/>
+ <member name="bartlett"
+ value="3"
+ c:identifier="GST_FFT_WINDOW_BARTLETT"/>
+ <member name="blackman"
+ value="4"
+ c:identifier="GST_FFT_WINDOW_BLACKMAN"/>
+ </enumeration>
+ <function name="next_fast_length"
+ c:identifier="gst_fft_next_fast_length"
+ doc="Returns the next number to @n that is entirely a product
+of 2, 3 and 5. Using this as the @len parameter for
+the different GstFFT types will provide the best performance.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="n" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.fft.ffi
+
+<<
+"gstreamer.fft" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstfft-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/fft/GstFft-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.fft.ffi ;
+IN: gstreamer.fft
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/interfaces/colorbalance.h"/>
+ <c:include name="gst/interfaces/colorbalancechannel.h"/>
+ <c:include name="gst/interfaces/interfaces-enumtypes.h"/>
+ <c:include name="gst/interfaces/mixer.h"/>
+ <c:include name="gst/interfaces/mixeroptions.h"/>
+ <c:include name="gst/interfaces/mixertrack.h"/>
+ <c:include name="gst/interfaces/navigation.h"/>
+ <c:include name="gst/interfaces/propertyprobe.h"/>
+ <c:include name="gst/interfaces/streamvolume.h"/>
+ <c:include name="gst/interfaces/tuner.h"/>
+ <c:include name="gst/interfaces/tunerchannel.h"/>
+ <c:include name="gst/interfaces/tunernorm.h"/>
+ <c:include name="gst/interfaces/videoorientation.h"/>
+ <c:include name="gst/interfaces/xoverlay.h"/>
+ <namespace name="GstInterfaces"
+ version="0.10"
+ shared-library="libgstinterfaces-0.10.so.0"
+ c:prefix="Gst">
+ <interface name="ColorBalance"
+ c:type="GstColorBalance"
+ glib:type-name="GstColorBalance"
+ glib:get-type="gst_color_balance_get_type"
+ glib:type-struct="ColorBalanceClass">
+ <prerequisite name="Gst.ImplementsInterface"/>
+ <prerequisite name="Gst.Element"/>
+ <virtual-method name="list_channels" invoker="list_channels">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_value" invoker="set_value">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_value" invoker="get_value">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="list_channels"
+ c:identifier="gst_color_balance_list_channels"
+ doc="Retrieve a list of the available channels.
+The list is owned by the #GstColorBalance instance and must not
+be freed.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="set_value"
+ c:identifier="gst_color_balance_set_value"
+ doc="Sets the current value of the channel to the passed value, which must
+be between min_value and max_value.
+#GstColorBalanceChannel::max_value members of the
+#GstColorBalanceChannel object.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_value"
+ c:identifier="gst_color_balance_get_value"
+ doc="Retrieve the current value of the indicated channel, between min_value
+and max_value.
+#GstColorBalanceChannel::max_value members of the
+#GstColorBalanceChannel object.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_balance_type"
+ c:identifier="gst_color_balance_get_balance_type"
+ doc="Get the #GstColorBalanceType of this implementation."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
+ </return-value>
+ </method>
+ <method name="value_changed"
+ c:identifier="gst_color_balance_value_changed"
+ doc="A helper function called by implementations of the GstColorBalance
+interface. It fires the #GstColorBalance::value-changed signal on the
+instance, and the #GstColorBalanceChannel::value-changed signal on the
+channel object.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="value-changed"
+ doc="Fired when the value of the indicated channel has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <class name="ColorBalanceChannel"
+ c:type="GstColorBalanceChannel"
+ parent="GObject.Object"
+ glib:type-name="GstColorBalanceChannel"
+ glib:get-type="gst_color_balance_channel_get_type"
+ glib:type-struct="ColorBalanceChannelClass">
+ <field name="parent">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="label">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="min_value">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="max_value">
+ <type name="int" c:type="gint"/>
+ </field>
+ <glib:signal name="value-changed"
+ doc="Fired when the value of the indicated channel has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="ColorBalanceChannelClass"
+ c:type="GstColorBalanceChannelClass"
+ glib:is-gtype-struct-for="ColorBalanceChannel">
+ <field name="parent">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="value_changed">
+ <callback name="value_changed" c:type="value_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel"
+ c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </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="ColorBalanceClass"
+ c:type="GstColorBalanceClass"
+ glib:is-gtype-struct-for="ColorBalance">
+ <field name="klass">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="balance_type">
+ <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
+ </field>
+ <field name="list_channels">
+ <callback name="list_channels" c:type="list_channels">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="balance" transfer-ownership="none">
+ <type name="ColorBalance" c:type="GstColorBalance*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_value">
+ <callback name="set_value" c:type="set_value">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="balance" transfer-ownership="none">
+ <type name="ColorBalance" c:type="GstColorBalance*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel"
+ c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_value">
+ <callback name="get_value" c:type="get_value">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="balance" transfer-ownership="none">
+ <type name="ColorBalance" c:type="GstColorBalance*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel"
+ c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="value_changed">
+ <callback name="value_changed" c:type="value_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="balance" transfer-ownership="none">
+ <type name="ColorBalance" c:type="GstColorBalance*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="ColorBalanceChannel"
+ c:type="GstColorBalanceChannel*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </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="ColorBalanceType"
+ doc="hardware.
+processing.
+An enumeration indicating whether an element implements color balancing
+operations in software or in dedicated hardware. In general, dedicated
+hardware implementations (such as those provided by xvimagesink) are
+preferred."
+ glib:type-name="GstColorBalanceType"
+ glib:get-type="gst_color_balance_type_get_type"
+ c:type="GstColorBalanceType">
+ <member name="hardware"
+ value="0"
+ c:identifier="GST_COLOR_BALANCE_HARDWARE"
+ glib:nick="hardware"/>
+ <member name="software"
+ value="1"
+ c:identifier="GST_COLOR_BALANCE_SOFTWARE"
+ glib:nick="software"/>
+ </enumeration>
+ <interface name="Mixer"
+ c:type="GstMixer"
+ glib:type-name="GstMixer"
+ glib:get-type="gst_mixer_get_type"
+ glib:type-struct="MixerClass">
+ <prerequisite name="Gst.ImplementsInterface"/>
+ <prerequisite name="Gst.Element"/>
+ <virtual-method name="list_tracks" invoker="list_tracks">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_volume" invoker="set_volume">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_volume" invoker="get_volume">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_mute" invoker="set_mute">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="mute" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_record" invoker="set_record">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="record" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_option" invoker="set_option">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_option" invoker="get_option">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_mixer_flags" invoker="get_mixer_flags">
+ <return-value transfer-ownership="full">
+ <type name="MixerFlags" c:type="GstMixerFlags"/>
+ </return-value>
+ </virtual-method>
+ <method name="list_tracks"
+ c:identifier="gst_mixer_list_tracks"
+ doc="Returns a list of available tracks for this mixer/element. Note
+that it is allowed for sink (output) elements to only provide
+the output tracks in this list. Likewise, for sources (inputs),
+it is allowed to only provide input elements in this list.
+The list is owned by the #GstMixer instance and must not be freed
+or modified.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="set_volume"
+ c:identifier="gst_mixer_set_volume"
+ doc="that gives the wanted volume for each channel in
+this track.
+Sets the volume on each channel in a track. Short note about
+the mixer/element, such as 'Line-in' or 'Microphone'. A
+channel is said to be a mono-stream inside this track. A
+stereo track thus contains two channels.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_volume"
+ c:identifier="gst_mixer_get_volume"
+ doc="track->num_channels) to store the current volume
+of each channel in the given track in.
+Get the current volume(s) on the given track.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_mute"
+ c:identifier="gst_mixer_set_mute"
+ doc="muting.
+Mutes or unmutes the given channel. To find out whether a
+track is currently muted, use GST_MIXER_TRACK_HAS_FLAG ().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="mute" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_record"
+ c:identifier="gst_mixer_set_record"
+ doc="or off recording.
+Enables or disables recording on the given track. Note that
+this is only possible on input tracks, not on output tracks
+(see GST_MIXER_TRACK_HAS_FLAG () and the GST_MIXER_TRACK_INPUT
+flag).">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="record" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_option"
+ c:identifier="gst_mixer_set_option"
+ doc="Sets a name/value option in the mixer to the requested value.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_option"
+ c:identifier="gst_mixer_get_option"
+ doc="Get the current value of a name/value option in the mixer.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="mute_toggled"
+ c:identifier="gst_mixer_mute_toggled"
+ doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the given track
+has changed mute state.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="mute" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="record_toggled"
+ c:identifier="gst_mixer_record_toggled"
+ doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the given track
+has changed recording state.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="record" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="volume_changed"
+ c:identifier="gst_mixer_volume_changed"
+ doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the volume(s) for the
+given track have changed.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="option_changed"
+ c:identifier="gst_mixer_option_changed"
+ doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the given options
+object has changed state.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="mixer_changed"
+ c:identifier="gst_mixer_mixer_changed"
+ doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the list of available
+mixer tracks for a given mixer object has changed. Applications should
+rebuild their interface when they receive this message.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="options_list_changed"
+ c:identifier="gst_mixer_options_list_changed"
+ doc="This function is called by the mixer implementation to produce
+a notification message on the bus indicating that the list of possible
+options of a given options object has changed.
+The new options are not contained in the message on purpose. Applications
+should call gst_mixer_option_get_values() on @opts to make @opts update
+its internal state and obtain the new list of values.
+This function only works for GstElements that are implementing the
+GstMixer interface, and the element needs to have been provided a bus
+for this to work."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_mixer_type"
+ c:identifier="gst_mixer_get_mixer_type"
+ doc="Get the #GstMixerType of this mixer implementation."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="MixerType" c:type="GstMixerType"/>
+ </return-value>
+ </method>
+ <method name="get_mixer_flags"
+ c:identifier="gst_mixer_get_mixer_flags"
+ doc="Get the set of supported flags for this mixer implementation.">
+ <return-value transfer-ownership="full">
+ <type name="MixerFlags" c:type="GstMixerFlags"/>
+ </return-value>
+ </method>
+ <glib:signal name="mute-toggled">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="option-changed">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="utf8" c:type="gchararray"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="record-toggled">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="volume-changed">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="MixerClass"
+ c:type="GstMixerClass"
+ glib:is-gtype-struct-for="Mixer">
+ <field name="klass">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="mixer_type">
+ <type name="MixerType" c:type="GstMixerType"/>
+ </field>
+ <field name="list_tracks">
+ <callback name="list_tracks" c:type="list_tracks">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_volume">
+ <callback name="set_volume" c:type="set_volume">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_volume">
+ <callback name="get_volume" c:type="get_volume">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_mute">
+ <callback name="set_mute" c:type="set_mute">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="mute" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_record">
+ <callback name="set_record" c:type="set_record">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="record" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="mute_toggled">
+ <callback name="mute_toggled" c:type="mute_toggled">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="mute" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="record_toggled">
+ <callback name="record_toggled" c:type="record_toggled">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="record" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="volume_changed">
+ <callback name="volume_changed" c:type="volume_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack*"/>
+ </parameter>
+ <parameter name="volumes"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_option">
+ <callback name="set_option" c:type="set_option">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_option">
+ <callback name="get_option" c:type="get_option">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="option_changed">
+ <callback name="option_changed" c:type="option_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </parameter>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ <parameter name="option" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_mixer_flags">
+ <callback name="get_mixer_flags" c:type="get_mixer_flags">
+ <return-value transfer-ownership="full">
+ <type name="MixerFlags" c:type="GstMixerFlags"/>
+ </return-value>
+ <parameters>
+ <parameter name="mixer" transfer-ownership="none">
+ <type name="Mixer" c:type="GstMixer*"/>
+ </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="MixerFlags"
+ doc="sends notification messages.
+marked without either input or output. Controls marked as input or
+output should be grouped with input & output sliders, even if they
+Flags indicating which optional features are supported by a mixer
+implementation."
+ version="0.10.14"
+ glib:type-name="GstMixerFlags"
+ glib:get-type="gst_mixer_flags_get_type"
+ c:type="GstMixerFlags">
+ <member name="none"
+ value="0"
+ c:identifier="GST_MIXER_FLAG_NONE"
+ glib:nick="none"/>
+ <member name="auto_notifications"
+ value="1"
+ c:identifier="GST_MIXER_FLAG_AUTO_NOTIFICATIONS"
+ glib:nick="auto-notifications"/>
+ <member name="has_whitelist"
+ value="2"
+ c:identifier="GST_MIXER_FLAG_HAS_WHITELIST"
+ glib:nick="has-whitelist"/>
+ <member name="grouping"
+ value="4"
+ c:identifier="GST_MIXER_FLAG_GROUPING"
+ glib:nick="grouping"/>
+ </bitfield>
+ <enumeration name="MixerMessageType"
+ doc="GstMixer message, posted when the list of available options for a
+when the list of available mixer tracks has changed. The application
+An enumeration for the type of a GstMixer message received on the bus"
+ version="0.10.14"
+ glib:type-name="GstMixerMessageType"
+ glib:get-type="gst_mixer_message_type_get_type"
+ c:type="GstMixerMessageType">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_MIXER_MESSAGE_INVALID"
+ glib:nick="invalid"/>
+ <member name="mute_toggled"
+ value="1"
+ c:identifier="GST_MIXER_MESSAGE_MUTE_TOGGLED"
+ glib:nick="mute-toggled"/>
+ <member name="record_toggled"
+ value="2"
+ c:identifier="GST_MIXER_MESSAGE_RECORD_TOGGLED"
+ glib:nick="record-toggled"/>
+ <member name="volume_changed"
+ value="3"
+ c:identifier="GST_MIXER_MESSAGE_VOLUME_CHANGED"
+ glib:nick="volume-changed"/>
+ <member name="option_changed"
+ value="4"
+ c:identifier="GST_MIXER_MESSAGE_OPTION_CHANGED"
+ glib:nick="option-changed"/>
+ <member name="options_list_changed"
+ value="5"
+ c:identifier="GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED"
+ glib:nick="options-list-changed"/>
+ <member name="mixer_changed"
+ value="6"
+ c:identifier="GST_MIXER_MESSAGE_MIXER_CHANGED"
+ glib:nick="mixer-changed"/>
+ </enumeration>
+ <class name="MixerOptions"
+ c:type="GstMixerOptions"
+ doc="always use gst_mixer_options_get_values() instead."
+ parent="MixerTrack"
+ glib:type-name="GstMixerOptions"
+ glib:get-type="gst_mixer_options_get_type"
+ glib:type-struct="MixerOptionsClass">
+ <virtual-method name="get_values" invoker="get_values">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </virtual-method>
+ <method name="get_values"
+ c:identifier="gst_mixer_options_get_values"
+ doc="Get the values for the mixer option.
+option. You must not free or modify the list or its contents, it belongs
+to the @mixer_options object.">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <field name="parent">
+ <type name="MixerTrack" c:type="GstMixerTrack"/>
+ </field>
+ <field name="values">
+ <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="MixerOptionsClass"
+ c:type="GstMixerOptionsClass"
+ glib:is-gtype-struct-for="MixerOptions">
+ <field name="parent">
+ <type name="MixerTrackClass" c:type="GstMixerTrackClass"/>
+ </field>
+ <field name="get_values">
+ <callback name="get_values" c:type="get_values">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="opts" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <class name="MixerTrack"
+ c:type="GstMixerTrack"
+ parent="GObject.Object"
+ glib:type-name="GstMixerTrack"
+ glib:get-type="gst_mixer_track_get_type"
+ glib:type-struct="MixerTrackClass">
+ <property name="flags">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="index" writable="1" construct-only="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="label">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
+ <property name="max-volume">
+ <type name="int" c:type="gint"/>
+ </property>
+ <property name="min-volume">
+ <type name="int" c:type="gint"/>
+ </property>
+ <property name="num-channels">
+ <type name="int" c:type="gint"/>
+ </property>
+ <property name="untranslated-label" writable="1" construct-only="1">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
+ <field name="parent">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="label">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="flags">
+ <type name="MixerTrackFlags" c:type="GstMixerTrackFlags"/>
+ </field>
+ <field name="num_channels">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="min_volume">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="max_volume">
+ <type name="int" c:type="gint"/>
+ </field>
+ </class>
+ <record name="MixerTrackClass"
+ c:type="GstMixerTrackClass"
+ glib:is-gtype-struct-for="MixerTrack">
+ <field name="parent">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <bitfield name="MixerTrackFlags"
+ doc="(for #GST_MIXER_TRACK_INPUT mixer tracks only)
+in software (as opposed to a hardware control)
+Mixer track flags."
+ version="0.10.23"
+ glib:type-name="GstMixerTrackFlags"
+ glib:get-type="gst_mixer_track_flags_get_type"
+ c:type="GstMixerTrackFlags">
+ <member name="input"
+ value="1"
+ c:identifier="GST_MIXER_TRACK_INPUT"
+ glib:nick="input"/>
+ <member name="output"
+ value="2"
+ c:identifier="GST_MIXER_TRACK_OUTPUT"
+ glib:nick="output"/>
+ <member name="mute"
+ value="4"
+ c:identifier="GST_MIXER_TRACK_MUTE"
+ glib:nick="mute"/>
+ <member name="record"
+ value="8"
+ c:identifier="GST_MIXER_TRACK_RECORD"
+ glib:nick="record"/>
+ <member name="master"
+ value="16"
+ c:identifier="GST_MIXER_TRACK_MASTER"
+ glib:nick="master"/>
+ <member name="software"
+ value="32"
+ c:identifier="GST_MIXER_TRACK_SOFTWARE"
+ glib:nick="software"/>
+ <member name="no_record"
+ value="64"
+ c:identifier="GST_MIXER_TRACK_NO_RECORD"
+ glib:nick="no-record"/>
+ <member name="no_mute"
+ value="128"
+ c:identifier="GST_MIXER_TRACK_NO_MUTE"
+ glib:nick="no-mute"/>
+ <member name="whitelist"
+ value="256"
+ c:identifier="GST_MIXER_TRACK_WHITELIST"
+ glib:nick="whitelist"/>
+ <member name="readonly"
+ value="512"
+ c:identifier="GST_MIXER_TRACK_READONLY"
+ glib:nick="readonly"/>
+ <member name="writeonly"
+ value="1024"
+ c:identifier="GST_MIXER_TRACK_WRITEONLY"
+ glib:nick="writeonly"/>
+ </bitfield>
+ <enumeration name="MixerType"
+ glib:type-name="GstMixerType"
+ glib:get-type="gst_mixer_type_get_type"
+ c:type="GstMixerType">
+ <member name="hardware"
+ value="0"
+ c:identifier="GST_MIXER_HARDWARE"
+ glib:nick="hardware"/>
+ <member name="software"
+ value="1"
+ c:identifier="GST_MIXER_SOFTWARE"
+ glib:nick="software"/>
+ </enumeration>
+ <interface name="Navigation"
+ c:type="GstNavigation"
+ glib:type-name="GstNavigation"
+ glib:get-type="gst_navigation_get_type"
+ glib:type-struct="NavigationInterface">
+ <virtual-method name="send_event" invoker="send_event">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="send_event" c:identifier="gst_navigation_send_event">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send_key_event"
+ c:identifier="gst_navigation_send_key_event"
+ doc=""key-release"
+by XKeysymToString.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="key" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send_mouse_event"
+ c:identifier="gst_navigation_send_mouse_event"
+ doc=""mouse-button-press", "mouse-button-release" and "mouse-move".
+for mouse-move events.
+Sends a mouse event to the navigation interface. Mouse event coordinates
+are sent relative to the display space of the related output area. This is
+usually the size in pixels of the window associated with the element
+implementing the #GstNavigation interface.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </parameter>
+ <parameter name="button" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="double" c:type="double"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="double" c:type="double"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send_command"
+ c:identifier="gst_navigation_send_command"
+ doc="Sends the indicated command to the navigation interface."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="command" transfer-ownership="none">
+ <type name="NavigationCommand" c:type="GstNavigationCommand"/>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <enumeration name="NavigationCommand"
+ doc="this enters the DVD root menu, or exits back to the title from the menu.
+this jumps to the DVD title menu.
+this jumps into the DVD root menu.
+this jumps to the Subpicture menu.
+the jumps to the audio menu.
+this jumps to the angles menu.
+this jumps to the chapter menu.
+if such a button exists.
+if such a button exists.
+menu, if such a button exists.
+menu, if such a button exists.
+button in a menu, if such a button exists.
+multiangle feature.
+feature.
+A set of commands that may be issued to an element providing the
+#GstNavigation interface. The available commands can be queried via
+the gst_navigation_query_new_commands() query.
+For convenience in handling DVD navigation, the MENU commands are aliased as:
+GST_NAVIGATION_COMMAND_DVD_MENU = @GST_NAVIGATION_COMMAND_MENU1
+GST_NAVIGATION_COMMAND_DVD_TITLE_MENU = @GST_NAVIGATION_COMMAND_MENU2
+GST_NAVIGATION_COMMAND_DVD_ROOT_MENU = @GST_NAVIGATION_COMMAND_MENU3
+GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4
+GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU = @GST_NAVIGATION_COMMAND_MENU5
+GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU = @GST_NAVIGATION_COMMAND_MENU6
+GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU = @GST_NAVIGATION_COMMAND_MENU7"
+ version="0.10.23"
+ glib:type-name="GstNavigationCommand"
+ glib:get-type="gst_navigation_command_get_type"
+ c:type="GstNavigationCommand">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_NAVIGATION_COMMAND_INVALID"
+ glib:nick="invalid"/>
+ <member name="menu1"
+ value="1"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU1"
+ glib:nick="menu1"/>
+ <member name="menu2"
+ value="2"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU2"
+ glib:nick="menu2"/>
+ <member name="menu3"
+ value="3"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU3"
+ glib:nick="menu3"/>
+ <member name="menu4"
+ value="4"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU4"
+ glib:nick="menu4"/>
+ <member name="menu5"
+ value="5"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU5"
+ glib:nick="menu5"/>
+ <member name="menu6"
+ value="6"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU6"
+ glib:nick="menu6"/>
+ <member name="menu7"
+ value="7"
+ c:identifier="GST_NAVIGATION_COMMAND_MENU7"
+ glib:nick="menu7"/>
+ <member name="left"
+ value="20"
+ c:identifier="GST_NAVIGATION_COMMAND_LEFT"
+ glib:nick="left"/>
+ <member name="right"
+ value="21"
+ c:identifier="GST_NAVIGATION_COMMAND_RIGHT"
+ glib:nick="right"/>
+ <member name="up"
+ value="22"
+ c:identifier="GST_NAVIGATION_COMMAND_UP"
+ glib:nick="up"/>
+ <member name="down"
+ value="23"
+ c:identifier="GST_NAVIGATION_COMMAND_DOWN"
+ glib:nick="down"/>
+ <member name="activate"
+ value="24"
+ c:identifier="GST_NAVIGATION_COMMAND_ACTIVATE"
+ glib:nick="activate"/>
+ <member name="prev_angle"
+ value="30"
+ c:identifier="GST_NAVIGATION_COMMAND_PREV_ANGLE"
+ glib:nick="prev-angle"/>
+ <member name="next_angle"
+ value="31"
+ c:identifier="GST_NAVIGATION_COMMAND_NEXT_ANGLE"
+ glib:nick="next-angle"/>
+ </enumeration>
+ <enumeration name="NavigationEventType"
+ doc="gst_navigation_event_get_type() when the passed event is not a navigation event.
+gst_navigation_event_parse_key_event() to extract the details from the event.
+gst_navigation_event_parse_key_event() to extract the details from the event.
+gst_navigation_event_parse_mouse_button_event() to extract the details from the
+event.
+gst_navigation_event_parse_mouse_button_event() to extract the details from the
+event.
+gst_navigation_event_parse_mouse_move_event() to extract the details from the
+event.
+gst_navigation_event_parse_command() to extract the details from the event.
+Enum values for the various events that an element implementing the
+GstNavigation interface might send up the pipeline."
+ version="0.10.23"
+ glib:type-name="GstNavigationEventType"
+ glib:get-type="gst_navigation_event_type_get_type"
+ c:type="GstNavigationEventType">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_NAVIGATION_EVENT_INVALID"
+ glib:nick="invalid"/>
+ <member name="key_press"
+ value="1"
+ c:identifier="GST_NAVIGATION_EVENT_KEY_PRESS"
+ glib:nick="key-press"/>
+ <member name="key_release"
+ value="2"
+ c:identifier="GST_NAVIGATION_EVENT_KEY_RELEASE"
+ glib:nick="key-release"/>
+ <member name="mouse_button_press"
+ value="3"
+ c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS"
+ glib:nick="mouse-button-press"/>
+ <member name="mouse_button_release"
+ value="4"
+ c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE"
+ glib:nick="mouse-button-release"/>
+ <member name="mouse_move"
+ value="5"
+ c:identifier="GST_NAVIGATION_EVENT_MOUSE_MOVE"
+ glib:nick="mouse-move"/>
+ <member name="command"
+ value="6"
+ c:identifier="GST_NAVIGATION_EVENT_COMMAND"
+ glib:nick="command"/>
+ </enumeration>
+ <record name="NavigationInterface"
+ c:type="GstNavigationInterface"
+ glib:is-gtype-struct-for="Navigation">
+ <field name="g_iface">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="send_event">
+ <callback name="send_event" c:type="send_event">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="navigation" transfer-ownership="none">
+ <type name="Navigation" c:type="GstNavigation*"/>
+ </parameter>
+ <parameter name="structure" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </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="NavigationMessageType"
+ doc="gst_navigation_message_get_type() when the passed message is not a
+navigation message.
+clickable region of the output, such as a DVD menu button.
+changes and should re-queried by interested applications.
+feature (such as a multiangle DVD) change - either angles have appeared or
+disappeared.
+A set of notifications that may be received on the bus when navigation
+related status changes."
+ version="0.10.23"
+ glib:type-name="GstNavigationMessageType"
+ glib:get-type="gst_navigation_message_type_get_type"
+ c:type="GstNavigationMessageType">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_NAVIGATION_MESSAGE_INVALID"
+ glib:nick="invalid"/>
+ <member name="mouse_over"
+ value="1"
+ c:identifier="GST_NAVIGATION_MESSAGE_MOUSE_OVER"
+ glib:nick="mouse-over"/>
+ <member name="commands_changed"
+ value="2"
+ c:identifier="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
+ glib:nick="commands-changed"/>
+ <member name="angles_changed"
+ value="3"
+ c:identifier="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED"
+ glib:nick="angles-changed"/>
+ </enumeration>
+ <enumeration name="NavigationQueryType"
+ glib:type-name="GstNavigationQueryType"
+ glib:get-type="gst_navigation_query_type_get_type"
+ c:type="GstNavigationQueryType">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_NAVIGATION_QUERY_INVALID"
+ glib:nick="invalid"/>
+ <member name="commands"
+ value="1"
+ c:identifier="GST_NAVIGATION_QUERY_COMMANDS"
+ glib:nick="commands"/>
+ <member name="angles"
+ value="2"
+ c:identifier="GST_NAVIGATION_QUERY_ANGLES"
+ glib:nick="angles"/>
+ </enumeration>
+ <interface name="PropertyProbe"
+ c:type="GstPropertyProbe"
+ doc="Opaque #GstPropertyProbe data structure."
+ glib:type-name="GstPropertyProbe"
+ glib:get-type="gst_property_probe_get_type"
+ glib:type-struct="PropertyProbeInterface">
+ <virtual-method name="get_properties" invoker="get_properties">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="needs_probe">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="prop_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="probe_property">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="prop_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_values">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ValueArray" c:type="GValueArray*"/>
+ </return-value>
+ <parameters>
+ <parameter name="prop_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_properties"
+ c:identifier="gst_property_probe_get_properties"
+ doc="Get a list of properties for which probing is supported.
+by this element.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="get_property"
+ c:identifier="gst_property_probe_get_property"
+ doc="Get #GParamSpec for a property for which probing is supported.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="probe_property"
+ c:identifier="gst_property_probe_probe_property"
+ doc="Runs a probe on the property specified by @pspec">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="probe_property_name"
+ c:identifier="gst_property_probe_probe_property_name"
+ doc="Runs a probe on the property specified by @name.">
+ <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="needs_probe"
+ c:identifier="gst_property_probe_needs_probe"
+ doc="Checks whether a property needs a probe. This might be because
+the property wasn't initialized before, or because host setup
+changed. This might be, for example, because a new device was
+added, and thus device probing needs to be refreshed to display
+the new device.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="needs_probe_name"
+ c:identifier="gst_property_probe_needs_probe_name"
+ doc="Same as gst_property_probe_needs_probe ().">
+ <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_values"
+ c:identifier="gst_property_probe_get_values"
+ doc="Gets the possible (probed) values for the given property,
+requires the property to have been probed before.">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ValueArray" c:type="GValueArray*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_values_name"
+ c:identifier="gst_property_probe_get_values_name"
+ doc="Same as gst_property_probe_get_values ().">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ValueArray" c:type="GValueArray*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="probe_and_get_values"
+ c:identifier="gst_property_probe_probe_and_get_values"
+ doc="Check whether the given property requires a new probe. If so,
+fo the probe. After that, retrieve a value list. Meant as a
+utility function that wraps the above functions.">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ValueArray" c:type="GValueArray*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="probe_and_get_values_name"
+ c:identifier="gst_property_probe_probe_and_get_values_name"
+ doc="Same as gst_property_probe_probe_and_get_values ().">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ValueArray" c:type="GValueArray*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="probe-needed">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="PropertyProbeInterface"
+ c:type="GstPropertyProbeInterface"
+ glib:is-gtype-struct-for="PropertyProbe"
+ doc="#GstPropertyProbe interface.">
+ <field name="klass">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="probe_needed">
+ <callback name="probe_needed" c:type="probe_needed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="probe" transfer-ownership="none">
+ <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_properties">
+ <callback name="get_properties" c:type="get_properties">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="probe" transfer-ownership="none">
+ <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="needs_probe">
+ <callback name="needs_probe" c:type="needs_probe">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="probe" transfer-ownership="none">
+ <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+ </parameter>
+ <parameter name="prop_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="probe_property">
+ <callback name="probe_property" c:type="probe_property">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="probe" transfer-ownership="none">
+ <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+ </parameter>
+ <parameter name="prop_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_values">
+ <callback name="get_values" c:type="get_values">
+ <return-value transfer-ownership="full">
+ <type name="GObject.ValueArray" c:type="GValueArray*"/>
+ </return-value>
+ <parameters>
+ <parameter name="probe" transfer-ownership="none">
+ <type name="PropertyProbe" c:type="GstPropertyProbe*"/>
+ </parameter>
+ <parameter name="prop_id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pspec" transfer-ownership="none">
+ <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <interface name="StreamVolume"
+ c:type="GstStreamVolume"
+ glib:type-name="GstStreamVolume"
+ glib:get-type="gst_stream_volume_get_type"
+ glib:type-struct="StreamVolumeInterface">
+ <method name="set_volume"
+ c:identifier="gst_stream_volume_set_volume"
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+ </parameter>
+ <parameter name="val" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_volume"
+ c:identifier="gst_stream_volume_get_volume"
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_mute"
+ c:identifier="gst_stream_volume_set_mute"
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="mute" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_mute"
+ c:identifier="gst_stream_volume_get_mute"
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <property name="mute" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="volume" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </property>
+ </interface>
+ <enumeration name="StreamVolumeFormat"
+ doc="Different representations of a stream volume. gst_stream_volume_convert()
+allows to convert between the different representations.
+Formulas to convert from a linear to a cubic or dB volume are
+cbrt(val) and 20 * log10 (val)."
+ version="0.10.25"
+ glib:type-name="GstStreamVolumeFormat"
+ glib:get-type="gst_stream_volume_format_get_type"
+ c:type="GstStreamVolumeFormat">
+ <member name="linear"
+ value="0"
+ c:identifier="GST_STREAM_VOLUME_FORMAT_LINEAR"
+ glib:nick="linear"/>
+ <member name="cubic"
+ value="1"
+ c:identifier="GST_STREAM_VOLUME_FORMAT_CUBIC"
+ glib:nick="cubic"/>
+ <member name="db"
+ value="2"
+ c:identifier="GST_STREAM_VOLUME_FORMAT_DB"
+ glib:nick="db"/>
+ </enumeration>
+ <record name="StreamVolumeInterface"
+ c:type="GstStreamVolumeInterface"
+ glib:is-gtype-struct-for="StreamVolume">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <interface name="Tuner"
+ c:type="GstTuner"
+ glib:type-name="GstTuner"
+ glib:get-type="gst_tuner_get_type"
+ glib:type-struct="TunerClass">
+ <prerequisite name="Gst.ImplementsInterface"/>
+ <prerequisite name="Gst.Element"/>
+ <virtual-method name="list_channels" invoker="list_channels">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_channel" invoker="set_channel">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_channel" invoker="get_channel">
+ <return-value transfer-ownership="full">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="list_norms" invoker="list_norms">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_norm" invoker="set_norm">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="norm" transfer-ownership="none">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_norm" invoker="get_norm">
+ <return-value transfer-ownership="full">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="set_frequency" invoker="set_frequency">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_frequency" invoker="get_frequency">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="signal_strength" invoker="signal_strength">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="list_channels"
+ c:identifier="gst_tuner_list_channels"
+ doc="Retrieve a #GList of #GstTunerChannels available
+(e.g. 'composite', 's-video', ...) from the given tuner object.
+owned by the GstTuner and must not be freed.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="set_channel"
+ c:identifier="gst_tuner_set_channel"
+ doc="Tunes the object to the given channel, which should be one of the
+channels returned by gst_tuner_list_channels().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_channel"
+ c:identifier="gst_tuner_get_channel"
+ doc="Retrieve the current channel from the tuner.">
+ <return-value transfer-ownership="full">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </return-value>
+ </method>
+ <method name="list_norms"
+ c:identifier="gst_tuner_list_norms"
+ doc="Retrieve a GList of available #GstTunerNorm settings for the currently
+tuned channel on the given tuner object.
+tuner object. The list is owned by the GstTuner and must not
+be freed.">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ </method>
+ <method name="set_norm"
+ c:identifier="gst_tuner_set_norm"
+ doc="Changes the video norm on this tuner to the given norm, which should be
+one of the norms returned by gst_tuner_list_norms().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="norm" transfer-ownership="none">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_norm"
+ c:identifier="gst_tuner_get_norm"
+ doc="Get the current video norm from the given tuner object for the
+currently selected channel.">
+ <return-value transfer-ownership="full">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </return-value>
+ </method>
+ <method name="set_frequency"
+ c:identifier="gst_tuner_set_frequency"
+ doc="Sets a tuning frequency on the given tuner/channel. Note that this
+requires the given channel to be a "tuning" channel, which can be
+checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag
+being GST_TUNER_CHANNEL_FREQUENCY.
+The frequency is in Hz, with minimum steps indicated by the
+frequency_multiplicator provided in the #GstTunerChannel. The
+valid range is provided in the min_frequency and max_frequency properties
+of the #GstTunerChannel.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_frequency"
+ c:identifier="gst_tuner_get_frequency"
+ doc="Retrieve the current frequency from the given channel. As for
+gst_tuner_set_frequency(), the #GstTunerChannel must support frequency
+operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag.">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="signal_strength"
+ c:identifier="gst_tuner_signal_strength"
+ doc="Get the strength of the signal on this channel. Note that this
+requires the current channel to be a "tuning" channel, i.e. a
+channel on which frequency can be set. This can be checked using
+GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check
+for is GST_TUNER_CHANNEL_FREQUENCY.
+The valid range of the signal strength is indicated in the
+min_signal and max_signal properties of the #GstTunerChannel.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_norm_by_name"
+ c:identifier="gst_tuner_find_norm_by_name"
+ doc="Look up a #GstTunerNorm by name.
+is available.">
+ <return-value transfer-ownership="full">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </return-value>
+ <parameters>
+ <parameter name="norm" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="find_channel_by_name"
+ c:identifier="gst_tuner_find_channel_by_name"
+ doc="Look up a #GstTunerChannel by name.
+is available.">
+ <return-value transfer-ownership="full">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="channel_changed"
+ c:identifier="gst_tuner_channel_changed"
+ doc="Called by elements implementing the #GstTuner interface when the
+current channel changes. Fires the #GstTuner::channel-changed signal.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="norm_changed"
+ c:identifier="gst_tuner_norm_changed"
+ doc="Called by elements implementing the #GstTuner interface when the
+current norm changes. Fires the #GstTuner::norm-changed signal.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="norm" transfer-ownership="none">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="frequency_changed"
+ c:identifier="gst_tuner_frequency_changed"
+ doc="Called by elements implementing the #GstTuner interface when the
+configured frequency changes. Fires the #GstTuner::frequency-changed
+signal on the tuner, and the #GstTunerChannel::frequency-changed signal
+on the channel.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="signal_changed"
+ c:identifier="gst_tuner_signal_changed"
+ doc="Called by elements implementing the #GstTuner interface when the
+incoming signal strength changes. Fires the #GstTuner::signal-changed
+signal on the tuner and the #GstTunerChannel::signal-changed signal on
+the channel.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="signal" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="channel-changed"
+ doc="Reports that the current #GstTunerChannel has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="frequency-changed"
+ doc="Reports that the current frequency has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="norm-changed"
+ doc="Reports that the current #GstTunerNorm has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="norm" transfer-ownership="none">
+ <type name="TunerNorm" c:type="GstTunerNorm"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="signal-changed"
+ doc="Reports that the signal strength has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel"/>
+ </parameter>
+ <parameter name="signal" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <class name="TunerChannel"
+ c:type="GstTunerChannel"
+ parent="GObject.Object"
+ glib:type-name="GstTunerChannel"
+ glib:get-type="gst_tuner_channel_get_type"
+ glib:type-struct="TunerChannelClass">
+ <field name="parent">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="label">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="flags">
+ <type name="TunerChannelFlags" c:type="GstTunerChannelFlags"/>
+ </field>
+ <field name="freq_multiplicator">
+ <type name="float" c:type="gfloat"/>
+ </field>
+ <field name="min_frequency">
+ <type name="ulong" c:type="gulong"/>
+ </field>
+ <field name="max_frequency">
+ <type name="ulong" c:type="gulong"/>
+ </field>
+ <field name="min_signal">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="max_signal">
+ <type name="int" c:type="gint"/>
+ </field>
+ <glib:signal name="frequency-changed"
+ doc="Reports that the current frequency has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="signal-changed"
+ doc="Reports that the signal strength has changed.">
+ <return-value transfer-ownership="full">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="signal" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="TunerChannelClass"
+ c:type="GstTunerChannelClass"
+ glib:is-gtype-struct-for="TunerChannel">
+ <field name="parent">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="frequency_changed">
+ <callback name="frequency_changed" c:type="frequency_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="signal_changed">
+ <callback name="signal_changed" c:type="signal_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="signal" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </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="TunerChannelFlags"
+ doc="and signal strength.
+An enumeration for flags indicating the available capabilities
+of a #GstTunerChannel."
+ glib:type-name="GstTunerChannelFlags"
+ glib:get-type="gst_tuner_channel_flags_get_type"
+ c:type="GstTunerChannelFlags">
+ <member name="input"
+ value="1"
+ c:identifier="GST_TUNER_CHANNEL_INPUT"
+ glib:nick="input"/>
+ <member name="output"
+ value="2"
+ c:identifier="GST_TUNER_CHANNEL_OUTPUT"
+ glib:nick="output"/>
+ <member name="frequency"
+ value="4"
+ c:identifier="GST_TUNER_CHANNEL_FREQUENCY"
+ glib:nick="frequency"/>
+ <member name="audio"
+ value="8"
+ c:identifier="GST_TUNER_CHANNEL_AUDIO"
+ glib:nick="audio"/>
+ </bitfield>
+ <record name="TunerClass"
+ c:type="GstTunerClass"
+ glib:is-gtype-struct-for="Tuner">
+ <field name="klass">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="list_channels">
+ <callback name="list_channels" c:type="list_channels">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_channel">
+ <callback name="set_channel" c:type="set_channel">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_channel">
+ <callback name="get_channel" c:type="get_channel">
+ <return-value transfer-ownership="full">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="list_norms">
+ <callback name="list_norms" c:type="list_norms">
+ <return-value transfer-ownership="none">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_norm">
+ <callback name="set_norm" c:type="set_norm">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="norm" transfer-ownership="none">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_norm">
+ <callback name="get_norm" c:type="get_norm">
+ <return-value transfer-ownership="full">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_frequency">
+ <callback name="set_frequency" c:type="set_frequency">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_frequency">
+ <callback name="get_frequency" c:type="get_frequency">
+ <return-value transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="signal_strength">
+ <callback name="signal_strength" c:type="signal_strength">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="channel_changed">
+ <callback name="channel_changed" c:type="channel_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="norm_changed">
+ <callback name="norm_changed" c:type="norm_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="norm" transfer-ownership="none">
+ <type name="TunerNorm" c:type="GstTunerNorm*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="frequency_changed">
+ <callback name="frequency_changed" c:type="frequency_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="frequency" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="signal_changed">
+ <callback name="signal_changed" c:type="signal_changed">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tuner" transfer-ownership="none">
+ <type name="Tuner" c:type="GstTuner*"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="TunerChannel" c:type="GstTunerChannel*"/>
+ </parameter>
+ <parameter name="signal" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </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="TunerNorm"
+ c:type="GstTunerNorm"
+ doc="if any. (May be unset)."
+ parent="GObject.Object"
+ glib:type-name="GstTunerNorm"
+ glib:get-type="gst_tuner_norm_get_type"
+ glib:type-struct="TunerNormClass">
+ <field name="parent">
+ <type name="GObject.Object" c:type="GObject"/>
+ </field>
+ <field name="label">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="framerate">
+ <type name="GObject.Value" c:type="GValue"/>
+ </field>
+ </class>
+ <record name="TunerNormClass"
+ c:type="GstTunerNormClass"
+ glib:is-gtype-struct-for="TunerNorm">
+ <field name="parent">
+ <type name="GObject.ObjectClass" c:type="GObjectClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <interface name="VideoOrientation"
+ c:type="GstVideoOrientation"
+ doc="Opaque #GstVideoOrientation data structure."
+ glib:type-name="GstVideoOrientation"
+ glib:get-type="gst_video_orientation_get_type"
+ glib:type-struct="VideoOrientationInterface">
+ <prerequisite name="Gst.ImplementsInterface"/>
+ <prerequisite name="Gst.Element"/>
+ <virtual-method name="get_hflip" invoker="get_hflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_vflip" invoker="get_vflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_hcenter" invoker="get_hcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_vcenter" invoker="get_vcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_hflip" invoker="set_hflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_vflip" invoker="set_vflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_hcenter" invoker="set_hcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_vcenter" invoker="set_vcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_hflip"
+ c:identifier="gst_video_orientation_get_hflip"
+ doc="Get the horizontal flipping state (%TRUE for flipped) from the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_vflip"
+ c:identifier="gst_video_orientation_get_vflip"
+ doc="Get the vertical flipping state (%TRUE for flipped) from the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_hcenter"
+ c:identifier="gst_video_orientation_get_hcenter"
+ doc="Get the horizontal centering offset from the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_vcenter"
+ c:identifier="gst_video_orientation_get_vcenter"
+ doc="Get the vertical centering offset from the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_hflip"
+ c:identifier="gst_video_orientation_set_hflip"
+ doc="Set the horizontal flipping state (%TRUE for flipped) for the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_vflip"
+ c:identifier="gst_video_orientation_set_vflip"
+ doc="Set the vertical flipping state (%TRUE for flipped) for the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="flip" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_hcenter"
+ c:identifier="gst_video_orientation_set_hcenter"
+ doc="Set the horizontal centering offset for the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_vcenter"
+ c:identifier="gst_video_orientation_set_vcenter"
+ doc="Set the vertical centering offset for the given object."
+ version="0.10.11">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="center" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ </interface>
+ <record name="VideoOrientationInterface"
+ c:type="GstVideoOrientationInterface"
+ glib:is-gtype-struct-for="VideoOrientation"
+ doc="#GstVideoOrientationInterface interface.">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="get_hflip">
+ <callback name="get_hflip" c:type="get_hflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="flip" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_vflip">
+ <callback name="get_vflip" c:type="get_vflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="flip" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_hcenter">
+ <callback name="get_hcenter" c:type="get_hcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="center" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_vcenter">
+ <callback name="get_vcenter" c:type="get_vcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="center" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_hflip">
+ <callback name="set_hflip" c:type="set_hflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="flip" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_vflip">
+ <callback name="set_vflip" c:type="set_vflip">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="flip" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_hcenter">
+ <callback name="set_hcenter" c:type="set_hcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="center" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_vcenter">
+ <callback name="set_vcenter" c:type="set_vcenter">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_orientation" transfer-ownership="none">
+ <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
+ </parameter>
+ <parameter name="center" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <interface name="XOverlay"
+ c:type="GstXOverlay"
+ doc="Opaque #GstXOverlay data structure."
+ glib:type-name="GstXOverlay"
+ glib:get-type="gst_x_overlay_get_type"
+ glib:type-struct="XOverlayClass">
+ <prerequisite name="Gst.ImplementsInterface"/>
+ <prerequisite name="Gst.Element"/>
+ <virtual-method name="set_xwindow_id" invoker="set_xwindow_id">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xwindow_id" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="expose" invoker="expose">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </virtual-method>
+ <virtual-method name="handle_events" invoker="handle_events">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="handle_events" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_render_rectangle"
+ invoker="set_render_rectangle">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="set_xwindow_id"
+ c:identifier="gst_x_overlay_set_xwindow_id"
+ doc="This will call the video overlay's set_xwindow_id method. You should
+use this method to tell to a XOverlay to display video output to a
+specific XWindow. Passing 0 as the xwindow_id will tell the overlay to
+stop using that window and create an internal one.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xwindow_id" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_render_rectangle"
+ c:identifier="gst_x_overlay_set_render_rectangle"
+ doc="Configure a subregion as a video target within the window set by
+gst_x_overlay_set_xwindow_id(). If this is not used or not supported
+the video will fill the area of the window set as the overlay to 100%.
+By specifying the rectangle, the video can be overlayed to a specific region
+of that window only. After setting the new rectangle one should call
+gst_x_overlay_expose() to force a redraw. To unset the region pass -1 for
+the @x, @y, @width, and @height parameters.
+This method is needed for non fullscreen video overlay in UI toolkits that
+do not support subwindows."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="expose"
+ c:identifier="gst_x_overlay_expose"
+ doc="Tell an overlay that it has been exposed. This will redraw the current frame
+in the drawable even if the pipeline is PAUSED.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="handle_events"
+ c:identifier="gst_x_overlay_handle_events"
+ doc="Tell an overlay that it should handle events from the window system. These
+events are forwared upstream as navigation events. In some window system,
+events are not propagated in the window hierarchy if a client is listening
+for them. This method allows you to disable events handling completely
+from the XOverlay."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="handle_events" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="got_xwindow_id"
+ c:identifier="gst_x_overlay_got_xwindow_id"
+ doc="This will post a "have-xwindow-id" element message on the bus.
+This function should only be used by video overlay plugin developers.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xwindow_id" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="prepare_xwindow_id"
+ c:identifier="gst_x_overlay_prepare_xwindow_id"
+ doc="This will post a "prepare-xwindow-id" element message on the bus
+to give applications an opportunity to call
+gst_x_overlay_set_xwindow_id() before a plugin creates its own
+window.
+This function should only be used by video overlay plugin developers.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ </interface>
+ <record name="XOverlayClass"
+ c:type="GstXOverlayClass"
+ glib:is-gtype-struct-for="XOverlay"
+ doc="#GstXOverlay interface">
+ <field name="klass">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="set_xwindow_id">
+ <callback name="set_xwindow_id" c:type="set_xwindow_id">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="overlay" transfer-ownership="none">
+ <type name="XOverlay" c:type="GstXOverlay*"/>
+ </parameter>
+ <parameter name="xwindow_id" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="expose">
+ <callback name="expose" c:type="expose">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="overlay" transfer-ownership="none">
+ <type name="XOverlay" c:type="GstXOverlay*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="handle_events">
+ <callback name="handle_events" c:type="handle_events">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="overlay" transfer-ownership="none">
+ <type name="XOverlay" c:type="GstXOverlay*"/>
+ </parameter>
+ <parameter name="handle_events" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_render_rectangle">
+ <callback name="set_render_rectangle" c:type="set_render_rectangle">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="overlay" transfer-ownership="none">
+ <type name="XOverlay" c:type="GstXOverlay*"/>
+ </parameter>
+ <parameter name="x" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="y" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <function name="mixer_message_get_type"
+ c:identifier="gst_mixer_message_get_type"
+ doc="Check a bus message to see if it is a GstMixer notification
+message and return the GstMixerMessageType identifying which
+type of notification it is.
+if the message is not a GstMixer notification."
+ version="0.10.14">
+ <return-value transfer-ownership="full">
+ <type name="MixerMessageType" c:type="GstMixerMessageType"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="mixer_message_parse_mute_toggled"
+ c:identifier="gst_mixer_message_parse_mute_toggled"
+ doc="Extracts the contents of a mute-toggled bus message. Reads
+the GstMixerTrack that has changed, and the new value of the mute
+flag.
+The GstMixerTrack remains valid until the message is freed."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack**"/>
+ </parameter>
+ <parameter name="mute" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="mixer_message_parse_option_changed"
+ c:identifier="gst_mixer_message_parse_option_changed"
+ doc="Extracts the GstMixerOptions and new value from a option-changed bus notification
+message.
+The options and value returned remain valid until the message is freed."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="options" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions**"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="mixer_message_parse_options_list_changed"
+ c:identifier="gst_mixer_message_parse_options_list_changed"
+ doc="Extracts the GstMixerOptions whose value list has changed from an
+options-list-changed bus notification message.
+The options object returned remains valid until the message is freed. You
+do not need to unref it."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="options" transfer-ownership="none">
+ <type name="MixerOptions" c:type="GstMixerOptions**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="mixer_message_parse_record_toggled"
+ c:identifier="gst_mixer_message_parse_record_toggled"
+ doc="Extracts the contents of a record-toggled bus message. Reads
+the GstMixerTrack that has changed, and the new value of the
+recording flag.
+The GstMixerTrack remains valid until the message is freed."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack**"/>
+ </parameter>
+ <parameter name="record" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="mixer_message_parse_volume_changed"
+ c:identifier="gst_mixer_message_parse_volume_changed"
+ doc="Parses a volume-changed notification message and extracts the track object
+it refers to, as well as an array of volumes and the size of the volumes array.
+The track object remains valid until the message is freed.
+The caller must free the array returned in the volumes parameter using g_free
+when they are done with it."
+ version="0.10.14">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="track" transfer-ownership="none">
+ <type name="MixerTrack" c:type="GstMixerTrack**"/>
+ </parameter>
+ <parameter name="volumes" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint**"/>
+ </parameter>
+ <parameter name="num_channels"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_event_get_type"
+ c:identifier="gst_navigation_event_get_type"
+ doc="Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
+#GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="NavigationEventType" c:type="GstNavigationEventType"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_event_parse_command"
+ c:identifier="gst_navigation_event_parse_command"
+ doc="navigation event.
+Inspect a #GstNavigation command event and retrieve the enum value of the
+associated command."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="command" transfer-ownership="none">
+ <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_event_parse_key_event"
+ c:identifier="gst_navigation_event_parse_key_event"
+ doc="press. The returned string is owned by the event, and valid only until the
+event is unreffed."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="key" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_event_parse_mouse_button_event"
+ c:identifier="gst_navigation_event_parse_mouse_button_event"
+ doc="with the event.
+event.
+event.
+Retrieve the details of either a #GstNavigation mouse button press event or
+a mouse button release event. Determine which type the event is using
+gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.
+otherwise FALSE."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="button" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="x" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_event_parse_mouse_move_event"
+ c:identifier="gst_navigation_event_parse_mouse_move_event"
+ doc="Inspect a #GstNavigation mouse movement event and extract the coordinates
+of the event."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="x" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ <parameter name="y" direction="out" transfer-ownership="full">
+ <type name="double" c:type="gdouble*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_message_get_type"
+ c:identifier="gst_navigation_message_get_type"
+ doc="Check a bus message to see if it is a #GstNavigation event, and return
+the #GstNavigationMessageType identifying the type of the message if so.
+#GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
+notification."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="NavigationMessageType" c:type="GstNavigationMessageType"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_message_new_angles_changed"
+ c:identifier="gst_navigation_message_new_angles_changed"
+ doc="Creates a new #GstNavigation message with type
+#GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
+that the current angle, or current number of angles available in a
+multiangle video has changed."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="cur_angle" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="n_angles" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_message_new_commands_changed"
+ c:identifier="gst_navigation_message_new_commands_changed"
+ doc="Creates a new #GstNavigation message with type
+#GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_message_new_mouse_over"
+ c:identifier="gst_navigation_message_new_mouse_over"
+ doc="%FALSE if it over a non-clickable area.
+Creates a new #GstNavigation message with type
+#GST_NAVIGATION_MESSAGE_MOUSE_OVER."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="Gst.Object" c:type="GstObject*"/>
+ </parameter>
+ <parameter name="active" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_message_parse_angles_changed"
+ c:identifier="gst_navigation_message_parse_angles_changed"
+ doc="or NULL
+Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
+and extract the @cur_angle and @n_angles parameters."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="cur_angle" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="n_angles" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_message_parse_mouse_over"
+ c:identifier="gst_navigation_message_parse_mouse_over"
+ doc="or NULL.
+Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
+and extract the active/inactive flag. If the mouse over event is marked
+active, it indicates that the mouse is over a clickable area."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ <parameter name="active" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_get_type"
+ c:identifier="gst_navigation_query_get_type"
+ doc="Inspect a #GstQuery and return the #GstNavigationQueryType associated with
+it if it is a #GstNavigation query.
+#GST_NAVIGATION_QUERY_INVALID"
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_new_angles"
+ c:identifier="gst_navigation_query_new_angles"
+ doc="Create a new #GstNavigation angles query. When executed, it will
+query the pipeline for the set of currently available angles, which may be
+greater than one in a multiangle video."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </return-value>
+ </function>
+ <function name="navigation_query_new_commands"
+ c:identifier="gst_navigation_query_new_commands"
+ doc="Create a new #GstNavigation commands query. When executed, it will
+query the pipeline for the set of currently available commands."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </return-value>
+ </function>
+ <function name="navigation_query_parse_angles"
+ c:identifier="gst_navigation_query_parse_angles"
+ doc="angle value from the query, or NULL
+value from the query, or NULL
+Parse the current angle number in the #GstNavigation angles @query into the
+#guint pointed to by the @cur_angle variable, and the number of available
+angles into the #guint pointed to by the @n_angles variable."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ <parameter name="cur_angle" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="n_angles" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_parse_commands_length"
+ c:identifier="gst_navigation_query_parse_commands_length"
+ doc="Parse the number of commands in the #GstNavigation commands @query."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ <parameter name="n_cmds" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_parse_commands_nth"
+ c:identifier="gst_navigation_query_parse_commands_nth"
+ doc="Parse the #GstNavigation command query and retrieve the @nth command from
+it into @cmd. If the list contains less elements than @nth, @cmd will be
+set to #GST_NAVIGATION_COMMAND_INVALID."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ <parameter name="nth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="cmd" transfer-ownership="none">
+ <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_set_angles"
+ c:identifier="gst_navigation_query_set_angles"
+ doc="Set the #GstNavigation angles query result field in @query."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ <parameter name="cur_angle" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="n_angles" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_set_commands"
+ c:identifier="gst_navigation_query_set_commands"
+ doc="Set the #GstNavigation command query result fields in @query. The number
+of commands passed must be equal to @n_commands."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ <parameter name="n_cmds" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter transfer-ownership="none">
+ <varargs>
+ </varargs>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="navigation_query_set_commandsv"
+ c:identifier="gst_navigation_query_set_commandsv"
+ doc="Set the #GstNavigation command query result fields in @query. The number
+of commands passed must be equal to @n_commands."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="query" transfer-ownership="none">
+ <type name="Gst.Query" c:type="GstQuery*"/>
+ </parameter>
+ <parameter name="n_cmds" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="cmds" transfer-ownership="none">
+ <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="stream_volume_convert_volume"
+ c:identifier="gst_stream_volume_convert_volume"
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </return-value>
+ <parameters>
+ <parameter name="from" transfer-ownership="none">
+ <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+ </parameter>
+ <parameter name="to" transfer-ownership="none">
+ <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/>
+ </parameter>
+ <parameter name="val" transfer-ownership="none">
+ <type name="double" c:type="gdouble"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
+IN: gstreamer.interfaces.ffi
+
+<<
+"gstreamer.interfaces" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstinterfaces-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/interfaces/GstInterfaces-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.interfaces.ffi ;
+IN: gstreamer.interfaces
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <namespace name="GstNet"
+ version="0.10"
+ shared-library="libgstnet-0.10.so.0"
+ c:prefix="Gst">
+ <class name="NetClientClock"
+ c:type="GstNetClientClock"
+ doc="Opaque #GstNetClientClock structure."
+ parent="Gst.SystemClock"
+ glib:type-name="GstNetClientClock"
+ glib:get-type="gst_net_client_clock_get_type"
+ glib:type-struct="NetClientClockClass">
+ <constructor name="new"
+ c:identifier="gst_net_client_clock_new"
+ doc="Create a new #GstNetClientClock that will report the time
+provided by the #GstNetTimeProvider on @remote_address and
+clock.">
+ <return-value transfer-ownership="full">
+ <type name="NetClientClock" c:type="GstClock*"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="remote_address" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="remote_port" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="base_time" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <property name="address" writable="1">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
+ <property name="port" writable="1">
+ <type name="int" c:type="gint"/>
+ </property>
+ <field name="clock">
+ <type name="Gst.SystemClock" c:type="GstSystemClock"/>
+ </field>
+ <field name="address">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="port">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="sock">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="control_sock">
+ <array zero-terminated="0" c:type="int" fixed-size="2">
+ <type name="int"/>
+ </array>
+ </field>
+ <field name="current_timeout">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="servaddr">
+ <type name="any" c:type="any*"/>
+ </field>
+ <field name="thread">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ <field name="priv">
+ <type name="NetClientClockPrivate" c:type="GstNetClientClockPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="NetClientClockClass"
+ c:type="GstNetClientClockClass"
+ glib:is-gtype-struct-for="NetClientClock">
+ <field name="parent_class">
+ <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="NetClientClockPrivate" c:type="GstNetClientClockPrivate">
+ </record>
+ <record name="NetTimePacket"
+ c:type="GstNetTimePacket"
+ doc="Content of a #GstNetTimePacket.">
+ <field name="local_time" writable="1">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="remote_time" writable="1">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_net_time_packet_new"
+ doc="Creates a new #GstNetTimePacket from a buffer received over the network. The
+caller is responsible for ensuring that @buffer is at least
+#GST_NET_TIME_PACKET_SIZE bytes long.
+If @buffer is #NULL, the local and remote times will be set to
+#GST_CLOCK_TIME_NONE.
+MT safe. Caller owns return value (g_free to free).">
+ <return-value transfer-ownership="full">
+ <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="serialize"
+ c:identifier="gst_net_time_packet_serialize"
+ doc="Serialized a #GstNetTimePacket into a newly-allocated sequence of
+#GST_NET_TIME_PACKET_SIZE bytes, in network byte order. The value returned is
+suitable for passing to write(2) or sendto(2) for communication over the
+network.
+MT safe. Caller owns return value (g_free to free).">
+ <return-value transfer-ownership="full">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </return-value>
+ </method>
+ <method name="send"
+ c:identifier="gst_net_time_packet_send"
+ doc="Sends a #GstNetTimePacket over a socket. Essentially a thin wrapper around
+sendto(2) and gst_net_time_packet_serialize().
+MT safe.">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="addr" transfer-ownership="none">
+ <type name="any" c:type="any*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="int32" c:type="socklen_t"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <class name="NetTimeProvider"
+ c:type="GstNetTimeProvider"
+ doc="Opaque #GstNetTimeProvider structure."
+ parent="Gst.Object"
+ glib:type-name="GstNetTimeProvider"
+ glib:get-type="gst_net_time_provider_get_type"
+ glib:type-struct="NetTimeProviderClass">
+ <constructor name="new"
+ c:identifier="gst_net_time_provider_new"
+ doc="to bind to all addresses
+Allows network clients to get the current time of @clock.">
+ <return-value transfer-ownership="full">
+ <type name="NetTimeProvider" c:type="GstNetTimeProvider*"/>
+ </return-value>
+ <parameters>
+ <parameter name="clock" transfer-ownership="none">
+ <type name="Gst.Clock" c:type="GstClock*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none" doc="or NULL">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="port" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <property name="active" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="address" writable="1">
+ <type name="utf8" c:type="gchararray"/>
+ </property>
+ <property name="clock" writable="1">
+ <type name="Gst.Clock" c:type="GstClock"/>
+ </property>
+ <property name="port" writable="1">
+ <type name="int" c:type="gint"/>
+ </property>
+ <field name="parent">
+ <type name="Gst.Object" c:type="GstObject"/>
+ </field>
+ <field name="address">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="port">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="sock">
+ <type name="int" c:type="int"/>
+ </field>
+ <field name="control_sock">
+ <array zero-terminated="0" c:type="int" fixed-size="2">
+ <type name="int"/>
+ </array>
+ </field>
+ <field name="thread">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ <field name="clock">
+ <type name="Gst.Clock" c:type="GstClock*"/>
+ </field>
+ <union name="active" c:type="active">
+ <field name="_gst_reserved1" writable="1">
+ <type name="any" c:type="gpointer"/>
+ </field>
+ <field name="active" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ </union>
+ <field name="priv">
+ <type name="NetTimeProviderPrivate"
+ c:type="GstNetTimeProviderPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="NetTimeProviderClass"
+ c:type="GstNetTimeProviderClass"
+ glib:is-gtype-struct-for="NetTimeProvider">
+ <field name="parent_class">
+ <type name="Gst.ObjectClass" c:type="GstObjectClass"/>
+ </field>
+ </record>
+ <record name="NetTimeProviderPrivate" c:type="GstNetTimeProviderPrivate">
+ </record>
+ <constant name="TIME_PACKET_SIZE" value="16">
+ <type name="int"/>
+ </constant>
+ <function name="time_packet_receive"
+ c:identifier="gst_net_time_packet_receive"
+ doc="Receives a #GstNetTimePacket over a socket. Handles interrupted system calls,
+but otherwise returns NULL on error. See recvfrom(2) for more information on
+how to interpret @sockaddr.
+MT safe. Caller owns return value (g_free to free).">
+ <return-value transfer-ownership="full">
+ <type name="NetTimePacket" c:type="GstNetTimePacket*"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="addr" transfer-ownership="none">
+ <type name="any" c:type="any*"/>
+ </parameter>
+ <parameter name="len" direction="out" transfer-ownership="full">
+ <type name="int32" c:type="socklen_t*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+FROM: unix.types => socklen_t ;
+IN: gstreamer.net.ffi
+
+<<
+"gstreamer.net" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstnet-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/net/GstNet-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.net.ffi ;
+IN: gstreamer.net
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/netbuffer/gstnetbuffer.h"/>
+ <namespace name="GstNetbuffer"
+ version="0.10"
+ shared-library="libgstnetbuffer-0.10.so.0"
+ c:prefix="Gst">
+ <record name="NetAddress"
+ c:type="GstNetAddress"
+ doc="An opaque network address as used in #GstNetBuffer.">
+ <field name="type" writable="1">
+ <type name="NetType" c:type="GstNetType"/>
+ </field>
+ <union name="address" c:type="address">
+ <field name="ip6" writable="1">
+ <array zero-terminated="0" c:type="guint8" fixed-size="16">
+ <type name="uint8"/>
+ </array>
+ </field>
+ <field name="ip4" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </union>
+ <field name="port" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </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="NetBuffer"
+ c:type="GstNetBuffer"
+ doc="buffer for use in network sources and sinks.
+It contains the source or destination address of the buffer.">
+ <field name="buffer" writable="1">
+ <type name="Gst.Buffer" c:type="GstBuffer"/>
+ </field>
+ <field name="from" writable="1">
+ <type name="NetAddress" c:type="GstNetAddress"/>
+ </field>
+ <field name="to" writable="1">
+ <type name="NetAddress" c:type="GstNetAddress"/>
+ </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="NetBufferClass" c:type="GstNetBufferClass">
+ <field name="buffer_class" writable="1">
+ <type name="Gst.BufferClass" c:type="GstBufferClass"/>
+ </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="NetType"
+ doc="The Address type used in #GstNetAddress."
+ c:type="GstNetType">
+ <member name="unknown" value="0" c:identifier="GST_NET_TYPE_UNKNOWN"/>
+ <member name="ip4" value="1" c:identifier="GST_NET_TYPE_IP4"/>
+ <member name="ip6" value="2" c:identifier="GST_NET_TYPE_IP6"/>
+ </enumeration>
+ <function name="netaddress_equal"
+ c:identifier="gst_netaddress_equal"
+ doc="Compare two #GstNetAddress structures"
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr1" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="naddr2" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_get_address_bytes"
+ c:identifier="gst_netaddress_get_address_bytes"
+ doc="Get just the address bytes stored in @naddr into @address.
+Note that @port is expressed in network byte order, use g_ntohs() to convert
+it to host order. IP4 addresses are also stored in network byte order."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="port" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_get_ip4_address"
+ c:identifier="gst_netaddress_get_ip4_address"
+ doc="Get the IPv4 address stored in @naddr into @address. This function requires
+that the address type of @naddr is of type #GST_NET_TYPE_IP4.
+Note that @port and @address are expressed in network byte order, use
+g_ntohs() and g_ntohl() to convert them to host order.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="address" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="port" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_get_ip6_address"
+ c:identifier="gst_netaddress_get_ip6_address"
+ doc="Get the IPv6 address stored in @naddr into @address.
+If @naddr is of type GST_NET_TYPE_IP4, the transitional IP6 address is
+returned.
+Note that @port is expressed in network byte order, use g_ntohs() to convert
+it to host order.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="port" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_get_net_type"
+ c:identifier="gst_netaddress_get_net_type"
+ doc="Get the type of address stored in @naddr.">
+ <return-value transfer-ownership="full">
+ <type name="NetType" c:type="GstNetType"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_set_address_bytes"
+ c:identifier="gst_netaddress_set_address_bytes"
+ doc="Set just the address bytes stored in @naddr into @address.
+Note that @port must be expressed in network byte order, use g_htons() to
+convert it to network byte order order. IP4 address bytes must also be
+stored in network byte order."
+ version="0.10.22">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="NetType" c:type="GstNetType"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_set_ip4_address"
+ c:identifier="gst_netaddress_set_ip4_address"
+ doc="Set @naddr with the IPv4 @address and @port pair.
+Note that @port and @address must be expressed in network byte order,
+use g_htons() and g_htonl() to convert them to network byte order.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_set_ip6_address"
+ c:identifier="gst_netaddress_set_ip6_address"
+ doc="Set @naddr with the IPv6 @address and @port pair.
+Note that @port must be expressed in network byte order, use g_htons() to convert
+it to network byte order.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="netaddress_to_string"
+ c:identifier="gst_netaddress_to_string"
+ doc="Copies a string representation of @naddr into @dest. Up to @len bytes are
+copied.
+enough"
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="naddr" transfer-ownership="none">
+ <type name="NetAddress" c:type="GstNetAddress*"/>
+ </parameter>
+ <parameter name="dest" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="ulong" c:type="gulong"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="new"
+ c:identifier="gst_netbuffer_new"
+ doc="Create a new network buffer.">
+ <return-value transfer-ownership="full">
+ <type name="NetBuffer" c:type="GstNetBuffer*"/>
+ </return-value>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi ;
+IN: gstreamer.netbuffer.ffi
+
+<<
+"gstreamer.netbuffer" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstnetbuffer-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/netbuffer/GstNetbuffer-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.netbuffer.ffi ;
+IN: gstreamer.netbuffer
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/pbutils/descriptions.h"/>
+ <c:include name="gst/pbutils/install-plugins.h"/>
+ <c:include name="gst/pbutils/missing-plugins.h"/>
+ <c:include name="gst/pbutils/pbutils-enumtypes.h"/>
+ <c:include name="gst/pbutils/pbutils.h"/>
+ <namespace name="GstPbutils"
+ version="0.10"
+ shared-library="libgstpbutils-0.10.so.0"
+ c:prefix="Gst">
+ <record name="InstallPluginsContext"
+ c:type="GstInstallPluginsContext"
+ doc="Opaque context structure for the plugin installation. Use the provided
+API to set details on it."
+ version="0.10.12"
+ glib:type-name="GstInstallPluginsContext"
+ glib:get-type="gst_install_plugins_context_get_type">
+ <constructor name="new"
+ c:identifier="gst_install_plugins_context_new"
+ doc="Creates a new #GstInstallPluginsContext.
+gst_install_plugins_context_free() when no longer needed"
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="InstallPluginsContext"
+ c:type="GstInstallPluginsContext*"/>
+ </return-value>
+ </constructor>
+ <method name="free"
+ c:identifier="gst_install_plugins_context_free"
+ doc="Frees a #GstInstallPluginsContext."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_xid"
+ c:identifier="gst_install_plugins_context_set_xid"
+ doc="This function is for X11-based applications (such as most Gtk/Qt
+applications on linux/unix) only. You can use it to tell the external
+installer the XID of your main application window. That way the installer
+can make its own window transient to your application window during the
+installation.
+If set, the XID will be passed to the installer via a --transient-for=XID
+command line option.
+Gtk+/Gnome application should be able to obtain the XID of the top-level
+window like this:
+<programlisting>
+##include &lt;gtk/gtk.h&gt;
+##ifdef GDK_WINDOWING_X11
+##include &lt;gdk/gdkx.h&gt;
+##endif
+...
+##ifdef GDK_WINDOWING_X11
+xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&gt;window);
+##endif
+...
+</programlisting>"
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="xid"
+ transfer-ownership="none"
+ doc="of the top-level application">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <callback name="InstallPluginsResultFunc"
+ c:type="GstInstallPluginsResultFunc"
+ doc="The prototype of the callback function that will be called once the
+external plugin installer program has returned. You only need to provide
+a callback function if you are using the asynchronous interface."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="result" transfer-ownership="none">
+ <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none" closure="1">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ <enumeration name="InstallPluginsReturn"
+ doc="installed
+any of the requested plugins could be found. Only return this if nothing
+has been installed. Return #GST_INSTALL_PLUGINS_PARTIAL_SUCCESS if
+some (but not all) of the requested plugins could be installed.
+this happens, the user has already seen an error message and another
+one should not be displayed
+(ie. death by signal)
+be installed, but not all
+indicate that everything went fine so far and the provided callback
+will be called with the result of the installation later
+occured when trying to start the installer
+actual installer is not installed
+installation is still in progress, try again later
+Result codes returned by gst_install_plugins_async() and
+gst_install_plugins_sync(), and also the result code passed to the
+#GstInstallPluginsResultFunc specified with gst_install_plugin_async().
+These codes indicate success or failure of starting an external installer
+program and to what extent the requested plugins could be installed."
+ version="0.10.12"
+ glib:type-name="GstInstallPluginsReturn"
+ glib:get-type="gst_install_plugins_return_get_type"
+ c:type="GstInstallPluginsReturn">
+ <member name="success"
+ value="0"
+ c:identifier="GST_INSTALL_PLUGINS_SUCCESS"
+ glib:nick="success"/>
+ <member name="not_found"
+ value="1"
+ c:identifier="GST_INSTALL_PLUGINS_NOT_FOUND"
+ glib:nick="not-found"/>
+ <member name="error"
+ value="2"
+ c:identifier="GST_INSTALL_PLUGINS_ERROR"
+ glib:nick="error"/>
+ <member name="partial_success"
+ value="3"
+ c:identifier="GST_INSTALL_PLUGINS_PARTIAL_SUCCESS"
+ glib:nick="partial-success"/>
+ <member name="user_abort"
+ value="4"
+ c:identifier="GST_INSTALL_PLUGINS_USER_ABORT"
+ glib:nick="user-abort"/>
+ <member name="crashed"
+ value="100"
+ c:identifier="GST_INSTALL_PLUGINS_CRASHED"
+ glib:nick="crashed"/>
+ <member name="invalid"
+ value="101"
+ c:identifier="GST_INSTALL_PLUGINS_INVALID"
+ glib:nick="invalid"/>
+ <member name="started_ok"
+ value="200"
+ c:identifier="GST_INSTALL_PLUGINS_STARTED_OK"
+ glib:nick="started-ok"/>
+ <member name="internal_failure"
+ value="201"
+ c:identifier="GST_INSTALL_PLUGINS_INTERNAL_FAILURE"
+ glib:nick="internal-failure"/>
+ <member name="helper_missing"
+ value="202"
+ c:identifier="GST_INSTALL_PLUGINS_HELPER_MISSING"
+ glib:nick="helper-missing"/>
+ <member name="install_in_progress"
+ value="203"
+ c:identifier="GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS"
+ glib:nick="install-in-progress"/>
+ </enumeration>
+ <function name="install_plugins_async"
+ c:identifier="gst_install_plugins_async"
+ doc="Requests plugin installation without blocking. Once the plugins have been
+installed or installation has failed, @func will be called with the result
+of the installation and your provided @user_data pointer.
+This function requires a running GLib/Gtk main loop. If you are not
+running a GLib/Gtk main loop, make sure to regularly call
+g_main_context_iteration(NULL,FALSE).
+The installer strings that make up @detail are typically obtained by
+calling gst_missing_plugin_message_get_installer_detail() on missing-plugin
+messages that have been caught on a pipeline's bus or created by the
+application via the provided API, such as gst_missing_element_message_new().
+It is possible to request the installation of multiple missing plugins in
+one go (as might be required if there is a demuxer for a certain format
+installed but no suitable video decoder and no suitable audio decoder)."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="details" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="ctx" transfer-ownership="none">
+ <type name="InstallPluginsContext"
+ c:type="GstInstallPluginsContext*"/>
+ </parameter>
+ <parameter name="func"
+ transfer-ownership="none"
+ scope="call"
+ closure="3">
+ <type name="InstallPluginsResultFunc"
+ c:type="GstInstallPluginsResultFunc"/>
+ </parameter>
+ <parameter name="user_data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="install_plugins_installation_in_progress"
+ c:identifier="gst_install_plugins_installation_in_progress"
+ doc="Checks whether plugin installation (initiated by this application only)
+is currently in progress."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="install_plugins_return_get_name"
+ c:identifier="gst_install_plugins_return_get_name"
+ doc="Convenience function to return the descriptive string associated
+with a status code. This function returns English strings and
+should not be used for user messages. It is here only to assist
+in debugging."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="ret" transfer-ownership="none">
+ <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="install_plugins_supported"
+ c:identifier="gst_install_plugins_supported"
+ doc="Checks whether plugin installation is likely to be supported by the
+current environment. This currently only checks whether the helper script
+that is to be provided by the distribution or operating system vendor
+exists."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </function>
+ <function name="install_plugins_sync"
+ c:identifier="gst_install_plugins_sync"
+ doc="Requests plugin installation and block until the plugins have been
+installed or installation has failed.
+This function should almost never be used, it only exists for cases where
+a non-GLib main loop is running and the user wants to run it in a separate
+thread and marshal the result back asynchronously into the main thread
+using the other non-GLib main loop. You should almost always use
+gst_install_plugins_async() instead of this function."
+ version="0.10.12">
+ <return-value transfer-ownership="full">
+ <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="details" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="ctx" transfer-ownership="none">
+ <type name="InstallPluginsContext"
+ c:type="GstInstallPluginsContext*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="is_missing_plugin_message"
+ c:identifier="gst_is_missing_plugin_message"
+ doc="Checks whether @msg is a missing plugins message.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_decoder_installer_detail_new"
+ c:identifier="gst_missing_decoder_installer_detail_new"
+ doc="Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="decode_caps"
+ transfer-ownership="none"
+ doc="caps for which a decoder element is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_decoder_message_new"
+ c:identifier="gst_missing_decoder_message_new"
+ doc="Creates a missing-plugin message for @element to notify the application
+that a decoder element for a particular set of (fixed) caps is missing.
+This function is mainly for use in plugins.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="decode_caps"
+ transfer-ownership="none"
+ doc="caps for which a decoder element is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_element_installer_detail_new"
+ c:identifier="gst_missing_element_installer_detail_new"
+ doc="e.g. "videoscale" or "cdparanoiasrc"
+Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="factory_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_element_message_new"
+ c:identifier="gst_missing_element_message_new"
+ doc="e.g. "videoscale" or "cdparanoiasrc"
+Creates a missing-plugin message for @element to notify the application
+that a certain required element is missing. This function is mainly for
+use in plugins.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="factory_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_encoder_installer_detail_new"
+ c:identifier="gst_missing_encoder_installer_detail_new"
+ doc="Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="encode_caps"
+ transfer-ownership="none"
+ doc="caps for which an encoder element is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_encoder_message_new"
+ c:identifier="gst_missing_encoder_message_new"
+ doc="Creates a missing-plugin message for @element to notify the application
+that an encoder element for a particular set of (fixed) caps is missing.
+This function is mainly for use in plugins.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="encode_caps"
+ transfer-ownership="none"
+ doc="caps for which an encoder element is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_plugin_message_get_description"
+ c:identifier="gst_missing_plugin_message_get_description"
+ doc="Returns a localised string describing the missing feature, for use in
+error dialogs and the like. Should never return NULL unless @msg is not
+a valid missing-plugin message.
+This function is mainly for applications that need a human-readable string
+describing a missing plugin, given a previously collected missing-plugin
+message
+string with g_free() when not needed any longer.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_plugin_message_get_installer_detail"
+ c:identifier="gst_missing_plugin_message_get_installer_detail"
+ doc="Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions.
+with g_free() when not needed any longer.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_uri_sink_installer_detail_new"
+ c:identifier="gst_missing_uri_sink_installer_detail_new"
+ doc="e.g. "http" or "mms"
+Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+ version="0.10.15">
+ <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>
+ </parameters>
+ </function>
+ <function name="missing_uri_sink_message_new"
+ c:identifier="gst_missing_uri_sink_message_new"
+ doc="e.g. "http" or "smb"
+Creates a missing-plugin message for @element to notify the application
+that a sink element for a particular URI protocol is missing. This
+function is mainly for use in plugins.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="protocol" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="missing_uri_source_installer_detail_new"
+ c:identifier="gst_missing_uri_source_installer_detail_new"
+ doc="e.g. "http" or "mms"
+Returns an opaque string containing all the details about the missing
+element to be passed to an external installer called via
+gst_install_plugins_async() or gst_install_plugins_sync().
+This function is mainly for applications that call external plugin
+installation mechanisms using one of the two above-mentioned functions in
+the case where the application knows exactly what kind of plugin it is
+missing.
+with g_free() when not needed any longer."
+ version="0.10.15">
+ <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>
+ </parameters>
+ </function>
+ <function name="missing_uri_source_message_new"
+ c:identifier="gst_missing_uri_source_message_new"
+ doc="e.g. "http" or "mms"
+Creates a missing-plugin message for @element to notify the application
+that a source element for a particular URI protocol is missing. This
+function is mainly for use in plugins.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Message" c:type="GstMessage*"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="protocol" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="pb_utils_add_codec_description_to_tag_list"
+ c:identifier="gst_pb_utils_add_codec_description_to_tag_list"
+ doc="#GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC
+Adds a codec tag describing the format specified by @caps to @taglist.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="taglist" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="codec_tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="caps"
+ transfer-ownership="none"
+ doc="#GstCaps for which a codec tag should be added.">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="pb_utils_get_codec_description"
+ c:identifier="gst_pb_utils_get_codec_description"
+ doc="Returns a localised (as far as this is possible) string describing the
+media format specified in @caps, for use in error dialogs or other messages
+to be seen by the user. Should never return NULL unless @caps is invalid.
+Also see the convenience function
+gst_pb_utils_add_codec_description_to_tag_list().
+string with g_free() when not needed any longer.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps"
+ transfer-ownership="none"
+ doc="#GstCaps for which an format description is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="pb_utils_get_decoder_description"
+ c:identifier="gst_pb_utils_get_decoder_description"
+ doc="Returns a localised string describing an decoder for the format specified
+in @caps, for use in error dialogs or other messages to be seen by the user.
+Should never return NULL unless @factory_name or @caps are invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps"
+ transfer-ownership="none"
+ doc="#GstCaps for which an decoder description is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="pb_utils_get_element_description"
+ c:identifier="gst_pb_utils_get_element_description"
+ doc="Returns a localised string describing the given element, for use in
+error dialogs or other messages to be seen by the user. Should never
+return NULL unless @factory_name is invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="factory_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="pb_utils_get_encoder_description"
+ c:identifier="gst_pb_utils_get_encoder_description"
+ doc="Returns a localised string describing an encoder for the format specified
+in @caps, for use in error dialogs or other messages to be seen by the user.
+Should never return NULL unless @factory_name or @caps are invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps"
+ transfer-ownership="none"
+ doc="#GstCaps for which an encoder description is needed">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="pb_utils_get_sink_description"
+ c:identifier="gst_pb_utils_get_sink_description"
+ doc="Returns a localised string describing a sink element handling the protocol
+specified in @protocol, for use in error dialogs or other messages to be
+seen by the user. Should never return NULL unless @protocol is invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+ <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>
+ </parameters>
+ </function>
+ <function name="pb_utils_get_source_description"
+ c:identifier="gst_pb_utils_get_source_description"
+ doc="Returns a localised string describing a source element handling the protocol
+specified in @protocol, for use in error dialogs or other messages to be
+seen by the user. Should never return NULL unless @protocol is invalid.
+This function is mainly for internal use, applications would typically
+use gst_missing_plugin_message_get_description() to get a description of
+a missing feature from a missing-plugin message.
+string with g_free() when not needed any longer.">
+ <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>
+ </parameters>
+ </function>
+ <function name="pb_utils_init"
+ c:identifier="gst_pb_utils_init"
+ doc="Initialises the base utils support library. This function is not
+thread-safe. Applications should call it after calling gst_init(),
+plugins should call it from their plugin_init function.
+This function may be called multiple times. It will do nothing if the
+library has already been initialised."
+ version="0.10.12">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.pbutils.ffi
+
+<<
+"gstreamer.pbutils" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstpbutils-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/pbutils/GstPbutils-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.pbutils.ffi ;
+IN: gstreamer.pbutils
+
--- /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="Gst" version="0.10"/>
+ <include name="GstAudio" version="0.10"/>
+ <include name="GstBase" version="0.10"/>
+ <include name="GstInterfaces" version="0.10"/>
+ <include name="GstTag" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-audio-0.10"/>
+ <package name="gstreamer-interfaces-0.10"/>
+ <package name="gstreamer-tag-0.10"/>
+ <c:include name="gst/riff/riff-ids.h"/>
+ <c:include name="gst/riff/riff-media.h"/>
+ <c:include name="gst/riff/riff-read.h"/>
+ <namespace name="GstRiff"
+ version="0.10"
+ shared-library="libgstriff-0.10.so.0"
+ c:prefix="Gst">
+ <constant name="IBM_FORMAT_ADPCM" value="259">
+ <type name="int"/>
+ </constant>
+ <constant name="IBM_FORMAT_ALAW" value="258">
+ <type name="int"/>
+ </constant>
+ <constant name="IBM_FORMAT_MULAW" value="257">
+ <type name="int"/>
+ </constant>
+ <constant name="IF_KEYFRAME" value="16">
+ <type name="int"/>
+ </constant>
+ <constant name="IF_LIST" value="1">
+ <type name="int"/>
+ </constant>
+ <constant name="IF_NO_TIME" value="256">
+ <type name="int"/>
+ </constant>
+ <constant name="STRH_DISABLED" value="1">
+ <type name="int"/>
+ </constant>
+ <constant name="STRH_VIDEOPALCHANGES" value="65536">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_A52" value="8192">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AAC" value="255">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AAC_AC" value="16707">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AAC_pm" value="28781">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ADPCM" value="2">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ADPCM_IMA_DK3" value="98">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ADPCM_IMA_DK4" value="97">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ADPCM_IMA_WAV" value="105">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ALAW" value="6">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AMR_NB" value="87">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AMR_WB" value="88">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_APTX" value="37">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AUDIOFILE_AF10" value="38">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_AUDIOFILE_AF36" value="36">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_BTV_DIGITAL" value="1024">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CANOPUS_ATRAC" value="99">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CIRRUS" value="96">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CONTROL_RES_CR10" value="55">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CONTROL_RES_VQLPC" value="52">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CREATIVE_ADPCM" value="512">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CREATIVE_FASTSPEECH10" value="515">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CREATIVE_FASTSPEECH8" value="514">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CS2" value="608">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CS_IMAADPCM" value="57">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_CU_CODEC" value="25">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DF_G726" value="133">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DF_GSM610" value="134">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DIALOGIC_OKI_ADPCM" value="23">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DIGIADPCM" value="54">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DIGIFIX" value="22">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DIGIREAL" value="53">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DIGISTD" value="21">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DIGITAL_G723" value="291">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DOLBY_AC2" value="48">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DOLBY_AC3_SPDIF" value="146">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DSAT_DISPLAY" value="103">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DSP_TRUESPEECH" value="34">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DTS" value="8193">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_DVI_ADPCM" value="17">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ECHOSC1" value="35">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ECHOSC3" value="58">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ESPCM" value="97">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_EXTENSIBLE" value="65534">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_FLAC" value="61868">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_FM_TOWNS_SND" value="768">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_G722_ADPCM" value="101">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_G723_ADPCM" value="20">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_G726ADPCM" value="320">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_G726_ADPCM" value="100">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_G728_CELP" value="65">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_G729A" value="131">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_GSM610" value="49">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_GSM_AMR_CBR" value="31265">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_GSM_AMR_VBR" value="31266">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_IBM_CVSD" value="5">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_IEEE_FLOAT" value="3">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ILINK_VC" value="560">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_IMC" value="1025">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_IPI_HSX" value="592">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_IPI_RPELP" value="593">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ISIAUDIO" value="136">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ITU_G721_ADPCM" value="64">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_LH_CODEC" value="4352">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_LRC" value="40">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_LUCENT_G723" value="89">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MALDEN_PHONYTALK" value="160">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MEDIASONIC_G723" value="147">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MEDIASPACE_ADPCM" value="18">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MEDIAVISION_ADPCM" value="24">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MPEGL12" value="80">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MPEGL3" value="85">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MSG723" value="66">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MSN" value="50">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MSRT24" value="130">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MULAW" value="7">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_MVI_MVI2" value="132">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_NMS_VBXADPCM" value="56">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_NORRIS" value="5120">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_OKI_ADPCM" value="16">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_OLIADPCM" value="4097">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_OLICELP" value="4098">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_OLIGSM" value="4096">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_OLIOPR" value="4100">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_OLISBC" value="4099">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ONLIVE" value="137">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_PAC" value="83">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_PACKED" value="153">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_PCM" value="1">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_PHILIPS_LPCBB" value="152">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_PROSODY_1612" value="39">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_PROSODY_8KBPS" value="148">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_QDESIGN_MUSIC" value="1104">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_QUALCOMM_HALFRATE" value="337">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_QUALCOMM_PUREVOICE" value="336">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_QUARTERDECK" value="544">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_RAW_SPORT" value="576">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_RHETOREX_ADPCM" value="256">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ROCKWELL_ADPCM" value="59">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ROCKWELL_DIGITALK" value="60">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_RT24" value="82">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SANYO_LD_ADPCM" value="293">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SBC24" value="145">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIERRA_ADPCM" value="19">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIPROLAB_ACELP4800" value="305">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIPROLAB_ACELP8V3" value="306">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIPROLAB_ACEPLNET" value="304">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIPROLAB_G729" value="307">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIPROLAB_G729A" value="308">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIPROLAB_KELVIN" value="309">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SIREN" value="654">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SOFTSOUND" value="128">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SONARC" value="33">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SONIC" value="8264">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SONIC_LS" value="8264">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SONY_ATRAC3" value="624">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_SOUNDSPACE_MUSICOMPRESS" value="5376">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_TPC" value="1665">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_TUBGSM" value="341">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_UHER_ADPCM" value="528">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_UNKNOWN" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VIVO_G723" value="273">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VIVO_SIREN" value="274">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VME_VMPCM" value="1664">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VORBIS1" value="26447">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VORBIS1PLUS" value="26479">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VORBIS2" value="26448">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VORBIS2PLUS" value="26480">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VORBIS3" value="26449">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VORBIS3PLUS" value="26481">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE" value="98">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_AC10" value="113">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_AC16" value="114">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_AC20" value="115">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_AC8" value="112">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_BYTE_ALIGNED" value="105">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_METASOUND" value="117">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_METAVOICE" value="116">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_RT29HW" value="118">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_TQ40" value="121">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_TQ60" value="129">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_VR12" value="119">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VOXWARE_VR18" value="120">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_VSELP" value="4">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_WMAV1" value="352">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_WMAV2" value="353">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_WMAV3" value="354">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_WMAV3_L" value="355">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_WMS" value="10">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_XEBEC" value="61">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_YAMAHA_ADPCM" value="32">
+ <type name="int"/>
+ </constant>
+ <constant name="WAVE_FORMAT_ZYXEL_ADPCM" value="151">
+ <type name="int"/>
+ </constant>
+ <function name="create_audio_caps"
+ c:identifier="gst_riff_create_audio_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="codec_id" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ <parameter name="strh" transfer-ownership="none">
+ <type name="riff_strh" c:type="gst_riff_strh*"/>
+ </parameter>
+ <parameter name="strf" transfer-ownership="none">
+ <type name="riff_strf_auds" c:type="gst_riff_strf_auds*"/>
+ </parameter>
+ <parameter name="strf_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strd_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="codec_name" transfer-ownership="none">
+ <array c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="create_audio_template_caps"
+ c:identifier="gst_riff_create_audio_template_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </function>
+ <function name="create_iavs_caps" c:identifier="gst_riff_create_iavs_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="codec_fcc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="strh" transfer-ownership="none">
+ <type name="riff_strh" c:type="gst_riff_strh*"/>
+ </parameter>
+ <parameter name="strf" transfer-ownership="none">
+ <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs*"/>
+ </parameter>
+ <parameter name="strf_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strd_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="codec_name" transfer-ownership="none">
+ <array c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="create_iavs_template_caps"
+ c:identifier="gst_riff_create_iavs_template_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </function>
+ <function name="create_video_caps"
+ c:identifier="gst_riff_create_video_caps"
+ doc="data that is within the range of strf.size, but excluding any
+additional data withint this chunk but outside strf.size.
+chunk outside reach of strf.size. Ususally a palette.
+chunk. Usually codec initialization data.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="codec_fcc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="strh" transfer-ownership="none">
+ <type name="riff_strh" c:type="gst_riff_strh*"/>
+ </parameter>
+ <parameter name="strf" transfer-ownership="none">
+ <type name="riff_strf_vids" c:type="gst_riff_strf_vids*"/>
+ </parameter>
+ <parameter name="strf_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strd_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="codec_name" transfer-ownership="none">
+ <array c:type="char**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="create_video_template_caps"
+ c:identifier="gst_riff_create_video_template_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ </function>
+ <function name="init"
+ c:identifier="gst_riff_init"
+ doc="Initialize riff library.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="parse_chunk"
+ c:identifier="gst_riff_parse_chunk"
+ doc="by the read size by this function.
+chunk data, which may be NULL if chunksize == 0
+Reads a single chunk.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="offset" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="fourcc" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="chunk_data"
+ transfer-ownership="none"
+ doc="containing the">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_file_header"
+ c:identifier="gst_riff_parse_file_header"
+ doc="should be at least 12 bytes long.
+type of document (according to the header).
+Reads the first few bytes from the provided buffer, checks
+if this stream is a RIFF stream, and determines document type.
+This function takes ownership of @buf so it should not be used anymore
+after calling this function.
+caller should error out; we already throw an error), or TRUE
+if it is.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="doctype"
+ direction="out"
+ transfer-ownership="full"
+ doc="to indicate the">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_info"
+ c:identifier="gst_riff_parse_info"
+ doc="containing information about this stream. May be
+NULL if no supported tags were found.
+Parses stream metadata from input data.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="taglist" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_strf_auds"
+ c:identifier="gst_riff_parse_strf_auds"
+ doc="strf/auds structure. Caller should free it.
+containing extradata for this particular stream (e.g.
+codec initialization data).
+Parses an audio stream´s strf structure plus optionally some
+extradata from input data. This function takes ownership of @buf.
+use.
+should be skipped on error, but it is not fatal.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
+ <type name="riff_strf_auds" c:type="gst_riff_strf_auds**"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none" doc="to a buffer">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_strf_iavs"
+ c:identifier="gst_riff_parse_strf_iavs"
+ doc="strf/iavs structure. Caller should free it.
+containing extradata for this particular stream (e.g.
+codec initialization data).
+Parses a interleaved (also known as "complex") stream´s strf
+structure plus optionally some extradata from input data. This
+function takes ownership of @buf.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
+ <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs**"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none" doc="to a buffer">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_strf_vids"
+ c:identifier="gst_riff_parse_strf_vids"
+ doc="strf/vids structure. Caller should free it.
+containing extradata for this particular stream (e.g.
+palette, codec initialization data).
+Parses a video stream´s strf structure plus optionally some
+extradata from input data. This function takes ownership of @buf.
+should be skipped on error, but it is not fatal.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strf" transfer-ownership="none" doc="to a filled-in">
+ <type name="riff_strf_vids" c:type="gst_riff_strf_vids**"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none" doc="to a buffer">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_strh"
+ c:identifier="gst_riff_parse_strh"
+ doc="strh structure. Caller should free it.
+Parses a strh structure from input data. Takes ownership of @buf.
+should be skipped on error, but it is not fatal.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="strh" transfer-ownership="none" doc="to a filled-in">
+ <type name="riff_strh" c:type="gst_riff_strh**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="read_chunk"
+ c:identifier="gst_riff_read_chunk"
+ doc="Reads a single chunk of data. Since 0.10.8 'JUNK' chunks
+are skipped automatically.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="element" transfer-ownership="none">
+ <type name="Gst.Element" c:type="GstElement*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="offset" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="tag" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="chunk_data" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <record name="riff_acid" c:type="_gst_riff_acid">
+ <field name="loop_type" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="root_note" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="unknown1" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="unknown2" writable="1">
+ <type name="float" c:type="gfloat"/>
+ </field>
+ <field name="number_of_beats" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="meter_d" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="meter_n" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="tempo" writable="1">
+ <type name="float" c:type="gfloat"/>
+ </field>
+ </record>
+ <record name="riff_dmlh" c:type="_gst_riff_dmlh">
+ <field name="totalframes" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </record>
+ <record name="riff_index_entry" c:type="_gst_riff_index_entry">
+ <field name="id" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="offset" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="size" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </record>
+ <record name="riff_strf_auds" c:type="_gst_riff_strf_auds">
+ <field name="format" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="channels" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="rate" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="av_bps" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="blockalign" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="size" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ </record>
+ <record name="riff_strf_iavs" c:type="_gst_riff_strf_iavs">
+ <field name="DVAAuxSrc" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVAAuxCtl" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVAAuxSrc1" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVAAuxCtl1" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVVAuxSrc" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVVAuxCtl" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVReserved1" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="DVReserved2" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </record>
+ <record name="riff_strf_vids" c:type="_gst_riff_strf_vids">
+ <field name="size" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="width" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="height" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="planes" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="bit_cnt" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="compression" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="image_size" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="xpels_meter" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="ypels_meter" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="num_colors" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="imp_colors" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </record>
+ <record name="riff_strh" c:type="_gst_riff_strh">
+ <field name="type" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="fcc_handler" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="flags" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="priority" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="init_frames" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="scale" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="rate" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="start" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="length" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="bufsize" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="quality" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="samplesize" writable="1">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ </record>
+ </namespace>
+</repository>
--- /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
+<?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="Gst" version="0.10"/>
+ <include name="GstBase" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-base-0.10"/>
+ <c:include name="gst/rtp/gstbasertpaudiopayload.h"/>
+ <c:include name="gst/rtp/gstbasertpdepayload.h"/>
+ <c:include name="gst/rtp/gstbasertppayload.h"/>
+ <c:include name="gst/rtp/gstrtcpbuffer.h"/>
+ <c:include name="gst/rtp/gstrtpbuffer.h"/>
+ <c:include name="gst/rtp/gstrtppayloads.h"/>
+ <namespace name="GstRtp"
+ version="0.10"
+ shared-library="libgstrtp-0.10.so.0"
+ c:prefix="Gst">
+ <class name="BaseRTPAudioPayload"
+ c:type="GstBaseRTPAudioPayload"
+ parent="BaseRTPPayload"
+ glib:type-name="GstBaseRTPAudioPayload"
+ glib:get-type="gst_base_rtp_audio_payload_get_type"
+ glib:type-struct="BaseRTPAudioPayloadClass">
+ <method name="set_frame_based"
+ c:identifier="gst_base_rtp_audio_payload_set_frame_based"
+ doc="Tells #GstBaseRTPAudioPayload that the child element is for a frame based
+audio codec">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_frame_options"
+ c:identifier="gst_base_rtp_audio_payload_set_frame_options"
+ doc="Sets the options for frame based audio codecs.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="frame_duration" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="frame_size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_sample_based"
+ c:identifier="gst_base_rtp_audio_payload_set_sample_based"
+ doc="Tells #GstBaseRTPAudioPayload that the child element is for a sample based
+audio codec">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_sample_options"
+ c:identifier="gst_base_rtp_audio_payload_set_sample_options"
+ doc="Sets the options for sample based audio codecs.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample_size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_samplebits_options"
+ c:identifier="gst_base_rtp_audio_payload_set_samplebits_options"
+ doc="Sets the options for sample based audio codecs."
+ version="0.10.18">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample_size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_adapter"
+ c:identifier="gst_base_rtp_audio_payload_get_adapter"
+ doc="Gets the internal adapter used by the depayloader."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="GstBase.Adapter" c:type="GstAdapter*"/>
+ </return-value>
+ </method>
+ <method name="push"
+ c:identifier="gst_base_rtp_audio_payload_push"
+ doc="Create an RTP buffer and store @payload_len bytes of @data as the
+payload. Set the timestamp on the new buffer to @timestamp before pushing
+the buffer downstream."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="payload_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="flush"
+ c:identifier="gst_base_rtp_audio_payload_flush"
+ doc="Create an RTP buffer and store @payload_len bytes of the adapter as the
+payload. Set the timestamp on the new buffer to @timestamp before pushing
+the buffer downstream.
+If @payload_len is -1, all pending bytes will be flushed. If @timestamp is
+-1, the timestamp will be calculated automatically."
+ version="0.10.25">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="buffer-list" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <field name="payload">
+ <type name="BaseRTPPayload" c:type="GstBaseRTPPayload"/>
+ </field>
+ <field name="priv">
+ <type name="BaseRTPAudioPayloadPrivate"
+ c:type="GstBaseRTPAudioPayloadPrivate*"/>
+ </field>
+ <field name="base_ts">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </field>
+ <field name="frame_size">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="frame_duration">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="sample_size">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="BaseRTPAudioPayloadClass"
+ c:type="GstBaseRTPAudioPayloadClass"
+ glib:is-gtype-struct-for="BaseRTPAudioPayload">
+ <field name="parent_class">
+ <type name="BaseRTPPayloadClass" c:type="GstBaseRTPPayloadClass"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="BaseRTPAudioPayloadPrivate"
+ c:type="GstBaseRTPAudioPayloadPrivate">
+ </record>
+ <class name="BaseRTPDepayload"
+ c:type="GstBaseRTPDepayload"
+ parent="Gst.Element"
+ glib:type-name="GstBaseRTPDepayload"
+ glib:get-type="gst_base_rtp_depayload_get_type"
+ glib:type-struct="BaseRTPDepayloadClass">
+ <virtual-method name="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="add_to_queue">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="in" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="process">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="in" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="set_gst_timestamp">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="packet_lost">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="push"
+ c:identifier="gst_base_rtp_depayload_push"
+ doc="Push @out_buf to the peer of @filter. This function takes ownership of
+Unlike gst_base_rtp_depayload_push_ts(), this function will not apply
+any timestamp on the outgoing buffer. Subclasses should therefore timestamp
+outgoing buffers themselves.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="out_buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push_ts"
+ c:identifier="gst_base_rtp_depayload_push_ts"
+ doc="Push @out_buf to the peer of @filter. This function takes ownership of
+Unlike gst_base_rtp_depayload_push(), this function will by default apply
+the last incomming timestamp on the outgoing buffer when it didn't have a
+timestamp already. The set_get_timestamp vmethod can be overwritten to change
+this behaviour (and take, for example, @timestamp into account).">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="out_buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="queue-delay" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <field name="parent">
+ <type name="Gst.Element" c:type="GstElement"/>
+ </field>
+ <field name="sinkpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="srcpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="queuelock">
+ <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex"/>
+ </field>
+ <field name="thread_running">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="thread">
+ <type name="GLib.Thread" c:type="GThread*"/>
+ </field>
+ <field name="clock_rate">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="queue_delay">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="queue">
+ <type name="GLib.Queue" c:type="GQueue*"/>
+ </field>
+ <field name="segment">
+ <type name="Gst.Segment" c:type="GstSegment"/>
+ </field>
+ <field name="need_newsegment">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="priv">
+ <type name="BaseRTPDepayloadPrivate"
+ c:type="GstBaseRTPDepayloadPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="BaseRTPDepayloadClass"
+ c:type="GstBaseRTPDepayloadClass"
+ glib:is-gtype-struct-for="BaseRTPDepayload">
+ <field name="parent_class">
+ <type name="Gst.ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="set_caps">
+ <callback name="set_caps" c:type="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="add_to_queue">
+ <callback name="add_to_queue" c:type="add_to_queue">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+ </parameter>
+ <parameter name="in" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="process">
+ <callback name="process" c:type="process">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="base" transfer-ownership="none">
+ <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+ </parameter>
+ <parameter name="in" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="set_gst_timestamp">
+ <callback name="set_gst_timestamp" c:type="set_gst_timestamp">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="packet_lost">
+ <callback name="packet_lost" c:type="packet_lost">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="filter" transfer-ownership="none">
+ <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </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="BaseRTPDepayloadPrivate" c:type="GstBaseRTPDepayloadPrivate">
+ </record>
+ <class name="BaseRTPPayload"
+ c:type="GstBaseRTPPayload"
+ parent="Gst.Element"
+ abstract="1"
+ glib:type-name="GstBaseRTPPayload"
+ glib:get-type="gst_basertppayload_get_type"
+ glib:type-struct="BaseRTPPayloadClass">
+ <virtual-method name="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="handle_buffer">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="set_options"
+ c:identifier="gst_basertppayload_set_options"
+ doc="Set the rtp options of the payloader. These options will be set in the caps
+of the payloader. Subclasses must call this method before calling
+gst_basertppayload_push() or gst_basertppayload_set_outcaps().">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="media" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="dynamic" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="encoding_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="clock_rate" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_outcaps"
+ c:identifier="gst_basertppayload_set_outcaps"
+ doc="Configure the output caps with the optional parameters.
+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="boolean" c:type="gboolean"/>
+ </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="is_filled"
+ c:identifier="gst_basertppayload_is_filled"
+ doc="Check if the packet with @size and @duration would exceed the configured
+maximum size.
+configured MTU or max_ptime.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push"
+ c:identifier="gst_basertppayload_push"
+ doc="Push @buffer to the peer element of the payloader. The SSRC, payload type,
+seqnum and timestamp of the RTP buffer will be updated first.
+This function takes ownership of @buffer.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push_list"
+ c:identifier="gst_basertppayload_push_list"
+ doc="Push @list to the peer element of the payloader. The SSRC, payload type,
+seqnum and timestamp of the RTP buffer will be updated first.
+This function takes ownership of @list."
+ version="0.10.24">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="max-ptime" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="min-ptime" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="mtu" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="perfect-rtptime" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <property name="pt" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="ptime-multiple" writable="1">
+ <type name="int64" c:type="gint64"/>
+ </property>
+ <property name="seqnum">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="seqnum-offset" writable="1">
+ <type name="int" c:type="gint"/>
+ </property>
+ <property name="ssrc" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="timestamp">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <property name="timestamp-offset" writable="1">
+ <type name="uint" c:type="guint"/>
+ </property>
+ <field name="element">
+ <type name="Gst.Element" c:type="GstElement"/>
+ </field>
+ <field name="sinkpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="srcpad">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </field>
+ <field name="seq_rand">
+ <type name="GLib.Rand" c:type="GRand*"/>
+ </field>
+ <field name="ssrc_rand">
+ <type name="GLib.Rand" c:type="GRand*"/>
+ </field>
+ <field name="ts_rand">
+ <type name="GLib.Rand" c:type="GRand*"/>
+ </field>
+ <field name="ts_base">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="seqnum_base">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="media">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="encoding_name">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="dynamic">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="clock_rate">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="ts_offset">
+ <type name="int32" c:type="gint32"/>
+ </field>
+ <field name="timestamp">
+ <type name="uint32" c:type="guint32"/>
+ </field>
+ <field name="seqnum_offset">
+ <type name="int16" c:type="gint16"/>
+ </field>
+ <field name="seqnum">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="max_ptime">
+ <type name="int64" c:type="gint64"/>
+ </field>
+ <field name="pt">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="ssrc">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="current_ssrc">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="mtu">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="segment">
+ <type name="Gst.Segment" c:type="GstSegment"/>
+ </field>
+ <field name="min_ptime">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="priv">
+ <type name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate*"/>
+ </field>
+ <union name="abidata" c:type="abidata">
+ <record name="ABI" c:type="ABI">
+ <field name="ptime" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ <field name="ptime_multiple" writable="1">
+ <type name="uint64" c:type="guint64"/>
+ </field>
+ </record>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </union>
+ </class>
+ <record name="BaseRTPPayloadClass"
+ c:type="GstBaseRTPPayloadClass"
+ glib:is-gtype-struct-for="BaseRTPPayload">
+ <field name="parent_class">
+ <type name="Gst.ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="set_caps">
+ <callback name="set_caps" c:type="set_caps">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload" transfer-ownership="none">
+ <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="handle_buffer">
+ <callback name="handle_buffer" c:type="handle_buffer">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload" transfer-ownership="none">
+ <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="handle_event">
+ <callback name="handle_event" c:type="handle_event">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_caps">
+ <callback name="get_caps" c:type="get_caps">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload" transfer-ownership="none">
+ <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/>
+ </parameter>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate">
+ </record>
+ <constant name="PAYLOAD_1016_STRING" value="1">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_CELLB_STRING" value="25">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_CN_STRING" value="13">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_DVI4_11025_STRING" value="16">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_DVI4_16000_STRING" value="6">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_DVI4_22050_STRING" value="17">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_DVI4_8000_STRING" value="5">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_DYNAMIC_STRING" value="[96, 127]">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G721_STRING" value="2">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G722_STRING" value="9">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G723_53" value="17">
+ <type name="int"/>
+ </constant>
+ <constant name="PAYLOAD_G723_53_STRING" value="17">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G723_63" value="16">
+ <type name="int"/>
+ </constant>
+ <constant name="PAYLOAD_G723_63_STRING" value="16">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G723_STRING" value="4">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G728_STRING" value="15">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_G729_STRING" value="18">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_GSM_STRING" value="3">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_H261_STRING" value="31">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_H263_STRING" value="34">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_JPEG_STRING" value="26">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_L16_MONO_STRING" value="11">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_L16_STEREO_STRING" value="10">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_LPC_STRING" value="7">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_MP2T_STRING" value="33">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_MPA_STRING" value="14">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_MPV_STRING" value="32">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_NV_STRING" value="28">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_PCMA_STRING" value="8">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_PCMU_STRING" value="0">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_QCELP_STRING" value="12">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_TS41" value="19">
+ <type name="int"/>
+ </constant>
+ <constant name="PAYLOAD_TS41_STRING" value="19">
+ <type name="utf8"/>
+ </constant>
+ <constant name="PAYLOAD_TS48" value="18">
+ <type name="int"/>
+ </constant>
+ <constant name="PAYLOAD_TS48_STRING" value="18">
+ <type name="utf8"/>
+ </constant>
+ <enumeration name="RTCPFBType"
+ doc="Different types of feedback messages."
+ version="0.10.23"
+ c:type="GstRTCPFBType">
+ <member name="fb_type_invalid"
+ value="0"
+ c:identifier="GST_RTCP_FB_TYPE_INVALID"/>
+ <member name="rtpfb_type_nack"
+ value="1"
+ c:identifier="GST_RTCP_RTPFB_TYPE_NACK"/>
+ <member name="psfb_type_pli"
+ value="1"
+ c:identifier="GST_RTCP_PSFB_TYPE_PLI"/>
+ <member name="psfb_type_sli"
+ value="2"
+ c:identifier="GST_RTCP_PSFB_TYPE_SLI"/>
+ <member name="psfb_type_rpsi"
+ value="3"
+ c:identifier="GST_RTCP_PSFB_TYPE_RPSI"/>
+ <member name="psfb_type_afb"
+ value="15"
+ c:identifier="GST_RTCP_PSFB_TYPE_AFB"/>
+ </enumeration>
+ <record name="RTCPPacket"
+ c:type="GstRTCPPacket"
+ doc="Data structure that points to a packet at @offset in @buffer.
+The size of the structure is made public to allow stack allocations.">
+ <field name="buffer" writable="1">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </field>
+ <field name="offset" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="padding" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="count" writable="1">
+ <type name="uint8" c:type="guint8"/>
+ </field>
+ <field name="type" writable="1">
+ <type name="RTCPType" c:type="GstRTCPType"/>
+ </field>
+ <field name="length" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="item_offset" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="item_count" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="entry_offset" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <method name="move_to_next"
+ c:identifier="gst_rtcp_packet_move_to_next"
+ doc="Move the packet pointer @packet to the next packet in the payload.
+Use gst_rtcp_buffer_get_first_packet() to initialize @packet.
+function.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="remove"
+ c:identifier="gst_rtcp_packet_remove"
+ doc="Removes the packet pointed to by @packet and moves pointer to the next one
+function.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_padding"
+ c:identifier="gst_rtcp_packet_get_padding"
+ doc="Get the packet padding of the packet pointed to by @packet.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_count"
+ c:identifier="gst_rtcp_packet_get_count"
+ doc="Get the count field in @packet.
+valid packet.">
+ <return-value transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </return-value>
+ </method>
+ <method name="get_length"
+ c:identifier="gst_rtcp_packet_get_length"
+ doc="Get the length field of @packet. This is the length of the packet in
+32-bit words minus one.">
+ <return-value transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </return-value>
+ </method>
+ <method name="sr_get_sender_info"
+ c:identifier="gst_rtcp_packet_sr_get_sender_info"
+ doc="Parse the SR sender info and store the values.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="ntptime" direction="out" transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="rtptime" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="packet_count"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="octet_count"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sr_set_sender_info"
+ c:identifier="gst_rtcp_packet_sr_set_sender_info"
+ doc="Set the given values in the SR packet @packet.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="ntptime" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="rtptime" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="packet_count" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="octet_count" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="rr_get_ssrc"
+ c:identifier="gst_rtcp_packet_rr_get_ssrc"
+ doc="Get the ssrc field of the RR @packet.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="rr_set_ssrc"
+ c:identifier="gst_rtcp_packet_rr_set_ssrc"
+ doc="Set the ssrc field of the RR @packet.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_rb_count"
+ c:identifier="gst_rtcp_packet_get_rb_count"
+ doc="Get the number of report blocks in @packet.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_rb"
+ c:identifier="gst_rtcp_packet_get_rb"
+ doc="Parse the values of the @nth report block in @packet and store the result in
+the values.">
+ <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="ssrc" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="fractionlost" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="packetslost"
+ direction="out"
+ transfer-ownership="full">
+ <type name="int32" c:type="gint32*"/>
+ </parameter>
+ <parameter name="exthighestseq"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="jitter" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="lsr" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="dlsr" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_rb"
+ c:identifier="gst_rtcp_packet_add_rb"
+ doc="Add a new report block to @packet with the given values.
+the max MTU is exceeded or the number of report blocks is greater than
+#GST_RTCP_MAX_RB_COUNT.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="fractionlost" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="packetslost" transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </parameter>
+ <parameter name="exthighestseq" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="lsr" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="dlsr" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_rb"
+ c:identifier="gst_rtcp_packet_set_rb"
+ doc="Set the @nth new report block in @packet with the given values.">
+ <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="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="fractionlost" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="packetslost" transfer-ownership="none">
+ <type name="int32" c:type="gint32"/>
+ </parameter>
+ <parameter name="exthighestseq" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="jitter" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="lsr" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ <parameter name="dlsr" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sdes_get_item_count"
+ c:identifier="gst_rtcp_packet_sdes_get_item_count"
+ doc="Get the number of items in the SDES packet @packet.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="sdes_first_item"
+ c:identifier="gst_rtcp_packet_sdes_first_item"
+ doc="Move to the first SDES item in @packet.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="sdes_next_item"
+ c:identifier="gst_rtcp_packet_sdes_next_item"
+ doc="Move to the next SDES item in @packet.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="sdes_get_ssrc"
+ c:identifier="gst_rtcp_packet_sdes_get_ssrc"
+ doc="Get the SSRC of the current SDES item.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="sdes_first_entry"
+ c:identifier="gst_rtcp_packet_sdes_first_entry"
+ doc="Move to the first SDES entry in the current item.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="sdes_next_entry"
+ c:identifier="gst_rtcp_packet_sdes_next_entry"
+ doc="Move to the next SDES entry in the current item.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="sdes_get_entry"
+ c:identifier="gst_rtcp_packet_sdes_get_entry"
+ doc="Get the data of the current SDES item entry. @type (when not NULL) will
+contain the type of the entry. @data (when not NULL) will point to @len
+bytes.
+When @type refers to a text item, @data will point to a UTF8 string. Note
+that this UTF8 string is NOT null-terminated. Use
+gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="data" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sdes_copy_entry"
+ c:identifier="gst_rtcp_packet_sdes_copy_entry"
+ doc="This function is like gst_rtcp_packet_sdes_get_entry() but it returns a
+null-terminated copy of the data instead. use g_free() after usage.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="data" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sdes_add_item"
+ c:identifier="gst_rtcp_packet_sdes_add_item"
+ doc="Add a new SDES item for @ssrc to @packet.
+items has been exceeded for the SDES packet or the MTU has been reached.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="sdes_add_entry"
+ c:identifier="gst_rtcp_packet_sdes_add_entry"
+ doc="Add a new SDES entry to the current item in @packet.
+reached.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bye_get_ssrc_count"
+ c:identifier="gst_rtcp_packet_bye_get_ssrc_count"
+ doc="Get the number of SSRC fields in @packet.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="bye_get_nth_ssrc"
+ c:identifier="gst_rtcp_packet_bye_get_nth_ssrc"
+ doc="Get the @nth SSRC of the BYE @packet.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="nth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bye_add_ssrc"
+ c:identifier="gst_rtcp_packet_bye_add_ssrc"
+ doc="Add @ssrc to the BYE @packet.
+the max MTU is exceeded or the number of sources blocks is greater than
+#GST_RTCP_MAX_BYE_SSRC_COUNT.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bye_add_ssrcs"
+ c:identifier="gst_rtcp_packet_bye_add_ssrcs"
+ doc="Adds @len SSRCs in @ssrc to BYE @packet.
+the max MTU is exceeded or the number of sources blocks is greater than
+#GST_RTCP_MAX_BYE_SSRC_COUNT.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" direction="out" transfer-ownership="full">
+ <type name="uint32" c:type="guint32*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bye_get_reason_len"
+ c:identifier="gst_rtcp_packet_bye_get_reason_len"
+ doc="Get the length of the reason string.
+present.">
+ <return-value transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </return-value>
+ </method>
+ <method name="bye_get_reason"
+ c:identifier="gst_rtcp_packet_bye_get_reason"
+ doc="Get the reason in @packet.
+a reason string. The string must be freed with g_free() after usage.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="bye_set_reason"
+ c:identifier="gst_rtcp_packet_bye_set_reason"
+ doc="Set the reason string to @reason in @packet.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="reason" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fb_get_sender_ssrc"
+ c:identifier="gst_rtcp_packet_fb_get_sender_ssrc"
+ doc="Get the sender SSRC field of the RTPFB or PSFB @packet."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="fb_set_sender_ssrc"
+ c:identifier="gst_rtcp_packet_fb_set_sender_ssrc"
+ doc="Set the sender SSRC field of the RTPFB or PSFB @packet."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fb_get_media_ssrc"
+ c:identifier="gst_rtcp_packet_fb_get_media_ssrc"
+ doc="Get the media SSRC field of the RTPFB or PSFB @packet."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ </method>
+ <method name="fb_set_media_ssrc"
+ c:identifier="gst_rtcp_packet_fb_set_media_ssrc"
+ doc="Set the media SSRC field of the RTPFB or PSFB @packet."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="fb_set_type"
+ c:identifier="gst_rtcp_packet_fb_set_type"
+ doc="Set the feedback message type of the FB @packet."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="RTCPFBType" c:type="GstRTCPFBType"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="RTCPSDESType" c:type="GstRTCPSDESType">
+ <member name="invalid" value="-1" c:identifier="GST_RTCP_SDES_INVALID"/>
+ <member name="end" value="0" c:identifier="GST_RTCP_SDES_END"/>
+ <member name="cname" value="1" c:identifier="GST_RTCP_SDES_CNAME"/>
+ <member name="name" value="2" c:identifier="GST_RTCP_SDES_NAME"/>
+ <member name="email" value="3" c:identifier="GST_RTCP_SDES_EMAIL"/>
+ <member name="phone" value="4" c:identifier="GST_RTCP_SDES_PHONE"/>
+ <member name="loc" value="5" c:identifier="GST_RTCP_SDES_LOC"/>
+ <member name="tool" value="6" c:identifier="GST_RTCP_SDES_TOOL"/>
+ <member name="note" value="7" c:identifier="GST_RTCP_SDES_NOTE"/>
+ <member name="priv" value="8" c:identifier="GST_RTCP_SDES_PRIV"/>
+ </enumeration>
+ <enumeration name="RTCPType" c:type="GstRTCPType">
+ <member name="invalid" value="0" c:identifier="GST_RTCP_TYPE_INVALID"/>
+ <member name="sr" value="200" c:identifier="GST_RTCP_TYPE_SR"/>
+ <member name="rr" value="201" c:identifier="GST_RTCP_TYPE_RR"/>
+ <member name="sdes" value="202" c:identifier="GST_RTCP_TYPE_SDES"/>
+ <member name="bye" value="203" c:identifier="GST_RTCP_TYPE_BYE"/>
+ <member name="app" value="204" c:identifier="GST_RTCP_TYPE_APP"/>
+ <member name="rtpfb" value="205" c:identifier="GST_RTCP_TYPE_RTPFB"/>
+ <member name="psfb" value="206" c:identifier="GST_RTCP_TYPE_PSFB"/>
+ </enumeration>
+ <constant name="RTCP_MAX_BYE_SSRC_COUNT" value="31">
+ <type name="int"/>
+ </constant>
+ <constant name="RTCP_MAX_RB_COUNT" value="31">
+ <type name="int"/>
+ </constant>
+ <constant name="RTCP_MAX_SDES" value="255">
+ <type name="int"/>
+ </constant>
+ <constant name="RTCP_MAX_SDES_ITEM_COUNT" value="31">
+ <type name="int"/>
+ </constant>
+ <constant name="RTCP_VALID_MASK" value="57598">
+ <type name="int"/>
+ </constant>
+ <constant name="RTCP_VALID_VALUE" value="0">
+ <type name="int"/>
+ </constant>
+ <constant name="RTCP_VERSION" value="2">
+ <type name="int"/>
+ </constant>
+ <enumeration name="RTPPayload" c:type="GstRTPPayload">
+ <member name="pcmu" value="0" c:identifier="GST_RTP_PAYLOAD_PCMU"/>
+ <member name="1016" value="1" c:identifier="GST_RTP_PAYLOAD_1016"/>
+ <member name="g721" value="2" c:identifier="GST_RTP_PAYLOAD_G721"/>
+ <member name="gsm" value="3" c:identifier="GST_RTP_PAYLOAD_GSM"/>
+ <member name="g723" value="4" c:identifier="GST_RTP_PAYLOAD_G723"/>
+ <member name="dvi4_8000"
+ value="5"
+ c:identifier="GST_RTP_PAYLOAD_DVI4_8000"/>
+ <member name="dvi4_16000"
+ value="6"
+ c:identifier="GST_RTP_PAYLOAD_DVI4_16000"/>
+ <member name="lpc" value="7" c:identifier="GST_RTP_PAYLOAD_LPC"/>
+ <member name="pcma" value="8" c:identifier="GST_RTP_PAYLOAD_PCMA"/>
+ <member name="g722" value="9" c:identifier="GST_RTP_PAYLOAD_G722"/>
+ <member name="l16_stereo"
+ value="10"
+ c:identifier="GST_RTP_PAYLOAD_L16_STEREO"/>
+ <member name="l16_mono"
+ value="11"
+ c:identifier="GST_RTP_PAYLOAD_L16_MONO"/>
+ <member name="qcelp" value="12" c:identifier="GST_RTP_PAYLOAD_QCELP"/>
+ <member name="cn" value="13" c:identifier="GST_RTP_PAYLOAD_CN"/>
+ <member name="mpa" value="14" c:identifier="GST_RTP_PAYLOAD_MPA"/>
+ <member name="g728" value="15" c:identifier="GST_RTP_PAYLOAD_G728"/>
+ <member name="dvi4_11025"
+ value="16"
+ c:identifier="GST_RTP_PAYLOAD_DVI4_11025"/>
+ <member name="dvi4_22050"
+ value="17"
+ c:identifier="GST_RTP_PAYLOAD_DVI4_22050"/>
+ <member name="g729" value="18" c:identifier="GST_RTP_PAYLOAD_G729"/>
+ <member name="cellb" value="25" c:identifier="GST_RTP_PAYLOAD_CELLB"/>
+ <member name="jpeg" value="26" c:identifier="GST_RTP_PAYLOAD_JPEG"/>
+ <member name="nv" value="28" c:identifier="GST_RTP_PAYLOAD_NV"/>
+ <member name="h261" value="31" c:identifier="GST_RTP_PAYLOAD_H261"/>
+ <member name="mpv" value="32" c:identifier="GST_RTP_PAYLOAD_MPV"/>
+ <member name="mp2t" value="33" c:identifier="GST_RTP_PAYLOAD_MP2T"/>
+ <member name="h263" value="34" c:identifier="GST_RTP_PAYLOAD_H263"/>
+ </enumeration>
+ <record name="RTPPayloadInfo"
+ c:type="GstRTPPayloadInfo"
+ doc=""message".
+channels. NULL = not applicable.
+Structure holding default payload type information.">
+ <field name="payload_type" writable="1">
+ <type name="uint8" c:type="guint8"/>
+ </field>
+ <field name="media" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="encoding_name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="clock_rate" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="encoding_parameters" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="bitrate" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ </record>
+ <constant name="VERSION" value="2">
+ <type name="int"/>
+ </constant>
+ <function name="buffer_allocate_data"
+ c:identifier="gst_rtp_buffer_allocate_data"
+ doc="Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs,
+a payload length of @payload_len and padding of @pad_len.
+MALLOCDATA of @buffer will be overwritten and will not be freed.
+All other RTP header fields will be set to 0/FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="payload_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pad_len" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="csrc_count" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_calc_header_len"
+ c:identifier="gst_rtp_buffer_calc_header_len"
+ doc="Calculate the header length of an RTP packet with @csrc_count CSRC entries.
+An RTP packet can have at most 15 CSRC entries.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="csrc_count" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_calc_packet_len"
+ c:identifier="gst_rtp_buffer_calc_packet_len"
+ doc="Calculate the total length of an RTP packet with a payload size of @payload_len,
+a padding of @pad_len and a @csrc_count CSRC entries.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pad_len" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="csrc_count" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_calc_payload_len"
+ c:identifier="gst_rtp_buffer_calc_payload_len"
+ doc="Calculate the length of the payload of an RTP packet with size @packet_len,
+a padding of @pad_len and a @csrc_count CSRC entries.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="packet_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pad_len" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="csrc_count" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_compare_seqnum"
+ c:identifier="gst_rtp_buffer_compare_seqnum"
+ doc="Compare two sequence numbers, taking care of wraparounds. This function
+returns the difference between @seqnum1 and @seqnum2.
+are equal or a positive value if @seqnum1 is smaller than @segnum2."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ <parameters>
+ <parameter name="seqnum1" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ <parameter name="seqnum2" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_default_clock_rate"
+ c:identifier="gst_rtp_buffer_default_clock_rate"
+ doc="Get the default clock-rate for the static payload type @payload_type.
+the clock-rate is undefined."
+ version="0.10.13">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload_type" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_ext_timestamp"
+ c:identifier="gst_rtp_buffer_ext_timestamp"
+ doc="Update the @exttimestamp field with @timestamp. For the first call of the
+method, @exttimestamp should point to a location with a value of -1.
+This function makes sure that the returned value is a constantly increasing
+value even in the case where there is a timestamp wraparound."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="exttimestamp"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_csrc"
+ c:identifier="gst_rtp_buffer_get_csrc"
+ doc="Get the CSRC at index @idx in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_csrc_count"
+ c:identifier="gst_rtp_buffer_get_csrc_count"
+ doc="Get the CSRC count of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_extension"
+ c:identifier="gst_rtp_buffer_get_extension"
+ doc="Check if the extension bit is set on the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_extension_data"
+ c:identifier="gst_rtp_buffer_get_extension_data"
+ doc="Get the extension data. @bits will contain the extension 16 bits of custom
+data. @data will point to the data in the extension and @wordlen will contain
+the length of @data in 32 bits words.
+If @buffer did not contain an extension, this function will return %FALSE
+with @bits, @data and @wordlen unchanged."
+ version="0.10.15">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="bits" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer*"/>
+ </parameter>
+ <parameter name="wordlen" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_header_len"
+ c:identifier="gst_rtp_buffer_get_header_len"
+ doc="Return the total length of the header in @buffer. This include the length of
+the fixed header, the CSRC list and the extension header.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_marker"
+ c:identifier="gst_rtp_buffer_get_marker"
+ doc="Check if the marker bit is set on the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_packet_len"
+ c:identifier="gst_rtp_buffer_get_packet_len"
+ doc="Return the total length of the packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_padding"
+ c:identifier="gst_rtp_buffer_get_padding"
+ doc="Check if the padding bit is set on the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_payload"
+ c:identifier="gst_rtp_buffer_get_payload"
+ doc="Get a pointer to the payload data in @buffer. This pointer is valid as long
+as a reference to @buffer is held.">
+ <return-value transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_payload_buffer"
+ c:identifier="gst_rtp_buffer_get_payload_buffer"
+ doc="Create a buffer of the payload of the RTP packet in @buffer. This function
+will internally create a subbuffer of @buffer so that a memcpy can be
+avoided.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_payload_len"
+ c:identifier="gst_rtp_buffer_get_payload_len"
+ doc="Get the length of the payload of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_payload_subbuffer"
+ c:identifier="gst_rtp_buffer_get_payload_subbuffer"
+ doc="Create a subbuffer of the payload of the RTP packet in @buffer. @offset bytes
+are skipped in the payload and the subbuffer will be of size @len.
+If @len is -1 the total payload starting from @offset if subbuffered."
+ version="0.10.10">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_payload_type"
+ c:identifier="gst_rtp_buffer_get_payload_type"
+ doc="Get the payload type of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_seq"
+ c:identifier="gst_rtp_buffer_get_seq"
+ doc="Get the sequence number of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_ssrc"
+ c:identifier="gst_rtp_buffer_get_ssrc"
+ doc="Get the SSRC of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_timestamp"
+ c:identifier="gst_rtp_buffer_get_timestamp"
+ doc="Get the timestamp of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_get_version"
+ c:identifier="gst_rtp_buffer_get_version"
+ doc="Get the version number of the RTP packet in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_get_payload_len"
+ c:identifier="gst_rtp_buffer_list_get_payload_len"
+ doc="Get the length of the payload of the RTP packet in @list."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_get_payload_type"
+ c:identifier="gst_rtp_buffer_list_get_payload_type"
+ doc="Get the payload type of the first RTP packet in @list.
+All packets in @list should have the same payload type."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_get_seq"
+ c:identifier="gst_rtp_buffer_list_get_seq"
+ doc="Get the sequence number of the first RTP packet in @list.
+All packets within @list have the same sequence number."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_get_ssrc"
+ c:identifier="gst_rtp_buffer_list_get_ssrc"
+ doc="Get the SSRC of the first RTP packet in @list.
+All RTP packets within @list have the same SSRC."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_get_timestamp"
+ c:identifier="gst_rtp_buffer_list_get_timestamp"
+ doc="Get the timestamp of the first RTP packet in @list.
+All packets within @list have the same timestamp."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_set_payload_type"
+ c:identifier="gst_rtp_buffer_list_set_payload_type"
+ doc="Set the payload type of each RTP packet in @list to @payload_type."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ <parameter name="payload_type" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_set_seq"
+ c:identifier="gst_rtp_buffer_list_set_seq"
+ doc="Set the sequence number of each RTP packet in @list to @seq."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ <parameter name="seq" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_set_ssrc"
+ c:identifier="gst_rtp_buffer_list_set_ssrc"
+ doc="Set the SSRC on each RTP packet in @list to @ssrc."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_set_timestamp"
+ c:identifier="gst_rtp_buffer_list_set_timestamp"
+ doc="Set the timestamp of each RTP packet in @list to @timestamp."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_list_validate"
+ c:identifier="gst_rtp_buffer_list_validate"
+ doc="Check if all RTP packets in the @list are valid using validate_data().
+Use this function to validate an list before using the other functions in
+this module."
+ version="0.10.24">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_new_allocate"
+ c:identifier="gst_rtp_buffer_new_allocate"
+ doc="Allocate a new #GstBuffer with enough data to hold an RTP packet with
+All other RTP header fields will be set to 0/FALSE.
+parameters.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pad_len" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="csrc_count" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_new_allocate_len"
+ c:identifier="gst_rtp_buffer_new_allocate_len"
+ doc="Create a new #GstBuffer that can hold an RTP packet that is exactly
+All RTP header fields will be set to 0/FALSE.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="packet_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="pad_len" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="csrc_count" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_new_copy_data"
+ c:identifier="gst_rtp_buffer_new_copy_data"
+ doc="Create a new buffer and set the data to a copy of @len
+bytes of @data and the size to @len. The data will be freed when the buffer
+is freed.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_new_take_data"
+ c:identifier="gst_rtp_buffer_new_take_data"
+ doc="Create a new buffer and set the data and size of the buffer to @data and @len
+respectively. @data will be freed when the buffer is unreffed, so this
+function transfers ownership of @data to the new buffer.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_pad_to"
+ c:identifier="gst_rtp_buffer_pad_to"
+ doc="Set the amount of padding in the RTP packet in @buffer to">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_csrc"
+ c:identifier="gst_rtp_buffer_set_csrc"
+ doc="Modify the CSRC at index @idx in @buffer to @csrc.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ <parameter name="csrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_extension"
+ c:identifier="gst_rtp_buffer_set_extension"
+ doc="Set the extension bit on the RTP packet in @buffer to @extension.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="extension" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_extension_data"
+ c:identifier="gst_rtp_buffer_set_extension_data"
+ doc="the extension, excluding the extension header ( therefore zero is a valid length)
+Set the extension bit of the rtp buffer and fill in the @bits and @length of the
+extension header. It will refuse to set the extension data if the buffer is not
+large enough.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="bits" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_marker"
+ c:identifier="gst_rtp_buffer_set_marker"
+ doc="Set the marker bit on the RTP packet in @buffer to @marker.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="marker" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_packet_len"
+ c:identifier="gst_rtp_buffer_set_packet_len"
+ doc="Set the total @buffer size to @len. The data in the buffer will be made
+larger if needed. Any padding will be removed from the packet.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_padding"
+ c:identifier="gst_rtp_buffer_set_padding"
+ doc="Set the padding bit on the RTP packet in @buffer to @padding.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="padding" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_payload_type"
+ c:identifier="gst_rtp_buffer_set_payload_type"
+ doc="Set the payload type of the RTP packet in @buffer to @payload_type.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="payload_type" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_seq"
+ c:identifier="gst_rtp_buffer_set_seq"
+ doc="Set the sequence number of the RTP packet in @buffer to @seq.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="seq" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_ssrc"
+ c:identifier="gst_rtp_buffer_set_ssrc"
+ doc="Set the SSRC on the RTP packet in @buffer to @ssrc.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="ssrc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_timestamp"
+ c:identifier="gst_rtp_buffer_set_timestamp"
+ doc="Set the timestamp of the RTP packet in @buffer to @timestamp.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="timestamp" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_set_version"
+ c:identifier="gst_rtp_buffer_set_version"
+ doc="Set the version of the RTP packet in @buffer to @version.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="version" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_validate"
+ c:identifier="gst_rtp_buffer_validate"
+ doc="Check if the data pointed to by @buffer is a valid RTP packet using
+validate_data().
+Use this function to validate a packet before using the other functions in
+this module.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="buffer_validate_data"
+ c:identifier="gst_rtp_buffer_validate_data"
+ doc="Check if the @data and @size point to the data of a valid RTP packet.
+This function checks the length, version and padding of the packet data.
+Use this function to validate a packet before using the other functions in
+this module.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="payload_info_for_name"
+ c:identifier="gst_rtp_payload_info_for_name"
+ doc="Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is
+mostly used to get the default clock-rate and bandwidth for dynamic payload
+types specified with @media and @encoding name.
+The search for @encoding_name will be performed in a case insensitve way.">
+ <return-value transfer-ownership="none">
+ <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/>
+ </return-value>
+ <parameters>
+ <parameter name="media" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="encoding_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="payload_info_for_pt"
+ c:identifier="gst_rtp_payload_info_for_pt"
+ doc="Get the #GstRTPPayloadInfo for @payload_type. This function is
+mostly used to get the default clock-rate and bandwidth for static payload
+types specified with @payload_type.">
+ <return-value transfer-ownership="none">
+ <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/>
+ </return-value>
+ <parameters>
+ <parameter name="payload_type" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_add_packet"
+ c:identifier="gst_rtcp_buffer_add_packet"
+ doc="Add a new packet of @type to @buffer. @packet will point to the newly created
+packet.
+if the max mtu is exceeded for the buffer.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="type" transfer-ownership="none">
+ <type name="RTCPType" c:type="GstRTCPType"/>
+ </parameter>
+ <parameter name="packet" transfer-ownership="none">
+ <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_end"
+ c:identifier="gst_rtcp_buffer_end"
+ doc="Finish @buffer after being constructured. This function is usually called
+after gst_rtcp_buffer_new() and after adding the RTCP items to the new buffer.
+The function adjusts the size of @buffer with the total length of all the
+added packets.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_get_first_packet"
+ c:identifier="gst_rtcp_buffer_get_first_packet"
+ doc="Initialize a new #GstRTCPPacket pointer that points to the first packet in">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="packet" transfer-ownership="none">
+ <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_get_packet_count"
+ c:identifier="gst_rtcp_buffer_get_packet_count"
+ doc="Get the number of RTCP packets in @buffer.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_new"
+ c:identifier="gst_rtcp_buffer_new"
+ doc="Create a new buffer for constructing RTCP packets. The packet will have a
+maximum size of @mtu.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="mtu" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_new_copy_data"
+ c:identifier="gst_rtcp_buffer_new_copy_data"
+ doc="Create a new buffer and set the data to a copy of @len
+bytes of @data and the size to @len. The data will be freed when the buffer
+is freed.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_new_take_data"
+ c:identifier="gst_rtcp_buffer_new_take_data"
+ doc="Create a new buffer and set the data and size of the buffer to @data and @len
+respectively. @data will be freed when the buffer is unreffed, so this
+function transfers ownership of @data to the new buffer.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_validate"
+ c:identifier="gst_rtcp_buffer_validate"
+ doc="Check if the data pointed to by @buffer is a valid RTCP packet using
+gst_rtcp_buffer_validate_data().">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_buffer_validate_data"
+ c:identifier="gst_rtcp_buffer_validate_data"
+ doc="Check if the @data and @size point to the data of a valid RTCP (compound)
+packet.
+Use this function to validate a packet before using the other functions in
+this module.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_ntp_to_unix"
+ c:identifier="gst_rtcp_ntp_to_unix"
+ doc="Converts an NTP time to UNIX nanoseconds. @ntptime can typically be
+the NTP time of an SR RTCP message and contains, in the upper 32 bits, the
+number of seconds since 1900 and, in the lower 32 bits, the fractional
+seconds. The resulting value will be the number of nanoseconds since 1970.">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="ntptime" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_packet_fb_get_type"
+ c:identifier="gst_rtcp_packet_fb_get_type"
+ doc="Get the feedback message type of the FB @packet."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTCPFBType" c:type="GstRTCPFBType"/>
+ </return-value>
+ <parameters>
+ <parameter name="packet" transfer-ownership="none">
+ <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_packet_get_type"
+ c:identifier="gst_rtcp_packet_get_type"
+ doc="Get the packet type of the packet pointed to by @packet.
+pointing to a valid packet.">
+ <return-value transfer-ownership="full">
+ <type name="RTCPType" c:type="GstRTCPType"/>
+ </return-value>
+ <parameters>
+ <parameter name="packet" transfer-ownership="none">
+ <type name="RTCPPacket" c:type="GstRTCPPacket*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_sdes_name_to_type"
+ c:identifier="gst_rtcp_sdes_name_to_type"
+ doc="Convert @name into a @GstRTCPSDESType. @name is typically a key in a
+#GstStructure containing SDES items.
+is a private sdes item."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
+ </return-value>
+ <parameters>
+ <parameter name="name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_sdes_type_to_name"
+ c:identifier="gst_rtcp_sdes_type_to_name"
+ doc="Converts @type to the string equivalent. The string is typically used as a
+key in a #GstStructure containing SDES items."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="RTCPSDESType" c:type="GstRTCPSDESType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="rtcp_unix_to_ntp"
+ c:identifier="gst_rtcp_unix_to_ntp"
+ doc="Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should
+pass a value with nanoseconds since 1970. The NTP time will, in the upper
+32 bits, contain the number of seconds since 1900 and, in the lower 32
+bits, the fractional seconds. The resulting value can be used as an ntptime
+for constructing SR RTCP packets.">
+ <return-value transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <parameter name="unixtime" transfer-ownership="none">
+ <type name="uint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.base.ffi gstreamer.ffi ;
+IN: gstreamer.rtp.ffi
+
+<<
+"gstreamer.rtp" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstrtp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/rtp/GstRtp-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.rtp.ffi ;
+IN: gstreamer.rtp
+
--- /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="Gst" version="0.10"/>
+ <include name="GstSdp" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-sdp-0.10"/>
+ <c:include name="gst/audio/gstrtsp-enumtypes.h"/>
+ <c:include name="gst/audio/gstrtspbase64.h"/>
+ <c:include name="gst/audio/gstrtspconnection.h"/>
+ <c:include name="gst/audio/gstrtspdefs.h"/>
+ <c:include name="gst/audio/gstrtspextension.h"/>
+ <c:include name="gst/audio/gstrtspmessage.h"/>
+ <c:include name="gst/audio/gstrtsprange.h"/>
+ <c:include name="gst/audio/gstrtsptransport.h"/>
+ <c:include name="gst/audio/gstrtspurl.h"/>
+ <namespace name="GstRtsp"
+ version="0.10"
+ shared-library="libgstrtsp-0.10.so.0"
+ c:prefix="Gst">
+ <constant name="DEFAULT_PORT" value="554">
+ <type name="int"/>
+ </constant>
+ <enumeration name="RTSPAuthMethod"
+ doc="Authentication methods, ordered by strength"
+ glib:type-name="GstRTSPAuthMethod"
+ glib:get-type="gst_rtsp_auth_method_get_type"
+ c:type="GstRTSPAuthMethod">
+ <member name="none"
+ value="0"
+ c:identifier="GST_RTSP_AUTH_NONE"
+ glib:nick="none"/>
+ <member name="basic"
+ value="1"
+ c:identifier="GST_RTSP_AUTH_BASIC"
+ glib:nick="basic"/>
+ <member name="digest"
+ value="2"
+ c:identifier="GST_RTSP_AUTH_DIGEST"
+ glib:nick="digest"/>
+ </enumeration>
+ <record name="RTSPConnection"
+ c:type="GstRTSPConnection"
+ doc="Opaque RTSP connection object.">
+ <method name="connect"
+ c:identifier="gst_rtsp_connection_connect"
+ doc="Attempt to connect to the url of @conn made with
+gst_rtsp_connection_create(). If @timeout is #NULL this function can block
+forever. If @timeout contains a valid timeout, this function will return
+#GST_RTSP_ETIMEOUT after the timeout expired.
+This function can be cancelled with gst_rtsp_connection_flush().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="close"
+ c:identifier="gst_rtsp_connection_close"
+ doc="Close the connected @conn. After this call, the connection is in the same
+state as when it was first created.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_rtsp_connection_free"
+ doc="Close and free @conn.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ <method name="read"
+ c:identifier="gst_rtsp_connection_read"
+ doc="Attempt to read @size bytes into @data from the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="write"
+ c:identifier="gst_rtsp_connection_write"
+ doc="Attempt to write @size bytes of @data to the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send"
+ c:identifier="gst_rtsp_connection_send"
+ doc="Attempt to send @message to the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="receive"
+ c:identifier="gst_rtsp_connection_receive"
+ doc="Attempt to read into @message from the connected @conn, blocking up to
+the specified @timeout. @timeout can be #NULL, in which case this function
+might block forever.
+This function can be cancelled with gst_rtsp_connection_flush().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="poll"
+ c:identifier="gst_rtsp_connection_poll"
+ doc="Wait up to the specified @timeout for the connection to become available for
+at least one of the operations specified in @events. When the function returns
+with #GST_RTSP_OK, @revents will contain a bitmask of available operations on
+This function can be cancelled with gst_rtsp_connection_flush()."
+ version="0.10.15">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="events" transfer-ownership="none">
+ <type name="RTSPEvent" c:type="GstRTSPEvent"/>
+ </parameter>
+ <parameter name="revents" transfer-ownership="none">
+ <type name="RTSPEvent" c:type="GstRTSPEvent*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="next_timeout"
+ c:identifier="gst_rtsp_connection_next_timeout"
+ doc="Calculate the next timeout for @conn, storing the result in @timeout.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <type name="GLib.TimeVal" c:type="GTimeVal*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="reset_timeout"
+ c:identifier="gst_rtsp_connection_reset_timeout"
+ doc="Reset the timeout of @conn.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ <method name="flush"
+ c:identifier="gst_rtsp_connection_flush"
+ doc="Start or stop the flushing action on @conn. When flushing, all current
+and future actions on @conn will return #GST_RTSP_EINTR until the connection
+is set to non-flushing mode again.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="flush" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_proxy"
+ c:identifier="gst_rtsp_connection_set_proxy"
+ doc="Set the proxy host and port."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="host" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_auth"
+ c:identifier="gst_rtsp_connection_set_auth"
+ doc="Configure @conn for authentication mode @method with @user and @pass as the
+user and password respectively.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/>
+ </parameter>
+ <parameter name="user" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="pass" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_auth_param"
+ c:identifier="gst_rtsp_connection_set_auth_param"
+ doc="Setup @conn with authentication directives. This is not necesary for
+methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For
+#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge
+in the WWW-Authenticate response header and can include realm, domain,
+nonce, opaque, stale, algorithm, qop as per RFC2617."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="param" 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="clear_auth_params"
+ c:identifier="gst_rtsp_connection_clear_auth_params"
+ doc="Clear the list of authentication directives stored in @conn."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="set_qos_dscp"
+ c:identifier="gst_rtsp_connection_set_qos_dscp"
+ doc="Configure @conn to use the specified DSCP value."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="qos_dscp" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_url"
+ c:identifier="gst_rtsp_connection_get_url"
+ doc="Retrieve the URL of the other end of @conn.
+connection is freed."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+ </return-value>
+ </method>
+ <method name="get_ip"
+ c:identifier="gst_rtsp_connection_get_ip"
+ doc="Retrieve the IP address of the other end of @conn.
+connection is closed."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_ip"
+ c:identifier="gst_rtsp_connection_set_ip"
+ doc="Set the IP address of the server."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="ip" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_readfd"
+ c:identifier="gst_rtsp_connection_get_readfd"
+ doc="Get the file descriptor for reading.
+descriptor remains valid until the connection is closed."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="get_writefd"
+ c:identifier="gst_rtsp_connection_get_writefd"
+ doc="Get the file descriptor for writing.
+descriptor remains valid until the connection is closed."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </return-value>
+ </method>
+ <method name="set_http_mode"
+ c:identifier="gst_rtsp_connection_set_http_mode"
+ doc="By setting the HTTP mode to %TRUE the message parsing will support HTTP
+messages in addition to the RTSP messages. It will also disable the
+automatic handling of setting up an HTTP tunnel."
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="enable" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_tunneled"
+ c:identifier="gst_rtsp_connection_set_tunneled"
+ doc="Set the HTTP tunneling state of the connection. This must be configured before
+the @conn is connected."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="tunneled" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="is_tunneled"
+ c:identifier="gst_rtsp_connection_is_tunneled"
+ doc="Get the tunneling state of the connection."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ </method>
+ <method name="get_tunnelid"
+ c:identifier="gst_rtsp_connection_get_tunnelid"
+ doc="Get the tunnel session id the connection."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="do_tunnel"
+ c:identifier="gst_rtsp_connection_do_tunnel"
+ doc="If @conn received the first tunnel connection and @conn2 received
+the second tunnel connection, link the two connections together so that
+After this call, @conn2 cannot be used anymore and must be freed with
+gst_rtsp_connection_free().
+If @conn2 is %NULL then only the base64 decoding context will be setup for"
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="conn2" transfer-ownership="none">
+ <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <bitfield name="RTSPEvent"
+ doc="The possible events for the connection."
+ glib:type-name="GstRTSPEvent"
+ glib:get-type="gst_rtsp_event_get_type"
+ c:type="GstRTSPEvent">
+ <member name="read"
+ value="1"
+ c:identifier="GST_RTSP_EV_READ"
+ glib:nick="read"/>
+ <member name="write"
+ value="2"
+ c:identifier="GST_RTSP_EV_WRITE"
+ glib:nick="write"/>
+ </bitfield>
+ <interface name="RTSPExtension"
+ c:type="GstRTSPExtension"
+ glib:type-name="GstRTSPExtension"
+ glib:get-type="gst_rtsp_extension_get_type"
+ glib:type-struct="RTSPExtensionInterface">
+ <virtual-method name="detect_server" invoker="detect_server">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="before_send" invoker="before_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="after_send" invoker="after_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="parse_sdp" invoker="parse_sdp">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="sdp" transfer-ownership="none">
+ <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
+ </parameter>
+ <parameter name="s" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="setup_media" invoker="setup_media">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="media" transfer-ownership="none">
+ <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="configure_stream" invoker="configure_stream">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="get_transports" invoker="get_transports">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="protocols" transfer-ownership="none">
+ <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+ </parameter>
+ <parameter name="transport" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="stream_select" invoker="stream_select">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="url" transfer-ownership="none">
+ <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="receive_request" invoker="receive_request">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="detect_server"
+ c:identifier="gst_rtsp_extension_detect_server">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="before_send" c:identifier="gst_rtsp_extension_before_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="after_send" c:identifier="gst_rtsp_extension_after_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_sdp" c:identifier="gst_rtsp_extension_parse_sdp">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="sdp" transfer-ownership="none">
+ <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
+ </parameter>
+ <parameter name="s" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="setup_media" c:identifier="gst_rtsp_extension_setup_media">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="media" transfer-ownership="none">
+ <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="configure_stream"
+ c:identifier="gst_rtsp_extension_configure_stream">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_transports"
+ c:identifier="gst_rtsp_extension_get_transports">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="protocols" transfer-ownership="none">
+ <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+ </parameter>
+ <parameter name="transport" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="stream_select"
+ c:identifier="gst_rtsp_extension_stream_select">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="url" transfer-ownership="none">
+ <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="receive_request"
+ c:identifier="gst_rtsp_extension_receive_request">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send" c:identifier="gst_rtsp_extension_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <glib:signal name="send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="object" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ <parameter name="p0" transfer-ownership="none">
+ <type name="any" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </interface>
+ <record name="RTSPExtensionInterface"
+ c:type="GstRTSPExtensionInterface"
+ glib:is-gtype-struct-for="RTSPExtension">
+ <field name="parent">
+ <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
+ </field>
+ <field name="detect_server">
+ <callback name="detect_server" c:type="detect_server">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="before_send">
+ <callback name="before_send" c:type="before_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="after_send">
+ <callback name="after_send" c:type="after_send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="parse_sdp">
+ <callback name="parse_sdp" c:type="parse_sdp">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="sdp" transfer-ownership="none">
+ <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/>
+ </parameter>
+ <parameter name="s" transfer-ownership="none">
+ <type name="Gst.Structure" c:type="GstStructure*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="setup_media">
+ <callback name="setup_media" c:type="setup_media">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="media" transfer-ownership="none">
+ <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="configure_stream">
+ <callback name="configure_stream" c:type="configure_stream">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="get_transports">
+ <callback name="get_transports" c:type="get_transports">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="protocols" transfer-ownership="none">
+ <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+ </parameter>
+ <parameter name="transport" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="stream_select">
+ <callback name="stream_select" c:type="stream_select">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="url" transfer-ownership="none">
+ <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="send">
+ <callback name="send" c:type="send">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="resp" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="receive_request">
+ <callback name="receive_request" c:type="receive_request">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext" transfer-ownership="none">
+ <type name="RTSPExtension" c:type="GstRTSPExtension*"/>
+ </parameter>
+ <parameter name="req" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <enumeration name="RTSPFamily"
+ doc="The possible network families."
+ glib:type-name="GstRTSPFamily"
+ glib:get-type="gst_rtsp_family_get_type"
+ c:type="GstRTSPFamily">
+ <member name="none"
+ value="0"
+ c:identifier="GST_RTSP_FAM_NONE"
+ glib:nick="none"/>
+ <member name="inet"
+ value="1"
+ c:identifier="GST_RTSP_FAM_INET"
+ glib:nick="inet"/>
+ <member name="inet6"
+ value="2"
+ c:identifier="GST_RTSP_FAM_INET6"
+ glib:nick="inet6"/>
+ </enumeration>
+ <enumeration name="RTSPHeaderField"
+ glib:type-name="GstRTSPHeaderField"
+ glib:get-type="gst_rtsp_header_field_get_type"
+ c:type="GstRTSPHeaderField">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_RTSP_HDR_INVALID"
+ glib:nick="invalid"/>
+ <member name="accept"
+ value="1"
+ c:identifier="GST_RTSP_HDR_ACCEPT"
+ glib:nick="accept"/>
+ <member name="accept_encoding"
+ value="2"
+ c:identifier="GST_RTSP_HDR_ACCEPT_ENCODING"
+ glib:nick="accept-encoding"/>
+ <member name="accept_language"
+ value="3"
+ c:identifier="GST_RTSP_HDR_ACCEPT_LANGUAGE"
+ glib:nick="accept-language"/>
+ <member name="allow"
+ value="4"
+ c:identifier="GST_RTSP_HDR_ALLOW"
+ glib:nick="allow"/>
+ <member name="authorization"
+ value="5"
+ c:identifier="GST_RTSP_HDR_AUTHORIZATION"
+ glib:nick="authorization"/>
+ <member name="bandwidth"
+ value="6"
+ c:identifier="GST_RTSP_HDR_BANDWIDTH"
+ glib:nick="bandwidth"/>
+ <member name="blocksize"
+ value="7"
+ c:identifier="GST_RTSP_HDR_BLOCKSIZE"
+ glib:nick="blocksize"/>
+ <member name="cache_control"
+ value="8"
+ c:identifier="GST_RTSP_HDR_CACHE_CONTROL"
+ glib:nick="cache-control"/>
+ <member name="conference"
+ value="9"
+ c:identifier="GST_RTSP_HDR_CONFERENCE"
+ glib:nick="conference"/>
+ <member name="connection"
+ value="10"
+ c:identifier="GST_RTSP_HDR_CONNECTION"
+ glib:nick="connection"/>
+ <member name="content_base"
+ value="11"
+ c:identifier="GST_RTSP_HDR_CONTENT_BASE"
+ glib:nick="content-base"/>
+ <member name="content_encoding"
+ value="12"
+ c:identifier="GST_RTSP_HDR_CONTENT_ENCODING"
+ glib:nick="content-encoding"/>
+ <member name="content_language"
+ value="13"
+ c:identifier="GST_RTSP_HDR_CONTENT_LANGUAGE"
+ glib:nick="content-language"/>
+ <member name="content_length"
+ value="14"
+ c:identifier="GST_RTSP_HDR_CONTENT_LENGTH"
+ glib:nick="content-length"/>
+ <member name="content_location"
+ value="15"
+ c:identifier="GST_RTSP_HDR_CONTENT_LOCATION"
+ glib:nick="content-location"/>
+ <member name="content_type"
+ value="16"
+ c:identifier="GST_RTSP_HDR_CONTENT_TYPE"
+ glib:nick="content-type"/>
+ <member name="cseq"
+ value="17"
+ c:identifier="GST_RTSP_HDR_CSEQ"
+ glib:nick="cseq"/>
+ <member name="date"
+ value="18"
+ c:identifier="GST_RTSP_HDR_DATE"
+ glib:nick="date"/>
+ <member name="expires"
+ value="19"
+ c:identifier="GST_RTSP_HDR_EXPIRES"
+ glib:nick="expires"/>
+ <member name="from"
+ value="20"
+ c:identifier="GST_RTSP_HDR_FROM"
+ glib:nick="from"/>
+ <member name="if_modified_since"
+ value="21"
+ c:identifier="GST_RTSP_HDR_IF_MODIFIED_SINCE"
+ glib:nick="if-modified-since"/>
+ <member name="last_modified"
+ value="22"
+ c:identifier="GST_RTSP_HDR_LAST_MODIFIED"
+ glib:nick="last-modified"/>
+ <member name="proxy_authenticate"
+ value="23"
+ c:identifier="GST_RTSP_HDR_PROXY_AUTHENTICATE"
+ glib:nick="proxy-authenticate"/>
+ <member name="proxy_require"
+ value="24"
+ c:identifier="GST_RTSP_HDR_PROXY_REQUIRE"
+ glib:nick="proxy-require"/>
+ <member name="public"
+ value="25"
+ c:identifier="GST_RTSP_HDR_PUBLIC"
+ glib:nick="public"/>
+ <member name="range"
+ value="26"
+ c:identifier="GST_RTSP_HDR_RANGE"
+ glib:nick="range"/>
+ <member name="referer"
+ value="27"
+ c:identifier="GST_RTSP_HDR_REFERER"
+ glib:nick="referer"/>
+ <member name="require"
+ value="28"
+ c:identifier="GST_RTSP_HDR_REQUIRE"
+ glib:nick="require"/>
+ <member name="retry_after"
+ value="29"
+ c:identifier="GST_RTSP_HDR_RETRY_AFTER"
+ glib:nick="retry-after"/>
+ <member name="rtp_info"
+ value="30"
+ c:identifier="GST_RTSP_HDR_RTP_INFO"
+ glib:nick="rtp-info"/>
+ <member name="scale"
+ value="31"
+ c:identifier="GST_RTSP_HDR_SCALE"
+ glib:nick="scale"/>
+ <member name="session"
+ value="32"
+ c:identifier="GST_RTSP_HDR_SESSION"
+ glib:nick="session"/>
+ <member name="server"
+ value="33"
+ c:identifier="GST_RTSP_HDR_SERVER"
+ glib:nick="server"/>
+ <member name="speed"
+ value="34"
+ c:identifier="GST_RTSP_HDR_SPEED"
+ glib:nick="speed"/>
+ <member name="transport"
+ value="35"
+ c:identifier="GST_RTSP_HDR_TRANSPORT"
+ glib:nick="transport"/>
+ <member name="unsupported"
+ value="36"
+ c:identifier="GST_RTSP_HDR_UNSUPPORTED"
+ glib:nick="unsupported"/>
+ <member name="user_agent"
+ value="37"
+ c:identifier="GST_RTSP_HDR_USER_AGENT"
+ glib:nick="user-agent"/>
+ <member name="via"
+ value="38"
+ c:identifier="GST_RTSP_HDR_VIA"
+ glib:nick="via"/>
+ <member name="www_authenticate"
+ value="39"
+ c:identifier="GST_RTSP_HDR_WWW_AUTHENTICATE"
+ glib:nick="www-authenticate"/>
+ <member name="client_challenge"
+ value="40"
+ c:identifier="GST_RTSP_HDR_CLIENT_CHALLENGE"
+ glib:nick="client-challenge"/>
+ <member name="real_challenge1"
+ value="41"
+ c:identifier="GST_RTSP_HDR_REAL_CHALLENGE1"
+ glib:nick="real-challenge1"/>
+ <member name="real_challenge2"
+ value="42"
+ c:identifier="GST_RTSP_HDR_REAL_CHALLENGE2"
+ glib:nick="real-challenge2"/>
+ <member name="real_challenge3"
+ value="43"
+ c:identifier="GST_RTSP_HDR_REAL_CHALLENGE3"
+ glib:nick="real-challenge3"/>
+ <member name="subscribe"
+ value="44"
+ c:identifier="GST_RTSP_HDR_SUBSCRIBE"
+ glib:nick="subscribe"/>
+ <member name="alert"
+ value="45"
+ c:identifier="GST_RTSP_HDR_ALERT"
+ glib:nick="alert"/>
+ <member name="client_id"
+ value="46"
+ c:identifier="GST_RTSP_HDR_CLIENT_ID"
+ glib:nick="client-id"/>
+ <member name="company_id"
+ value="47"
+ c:identifier="GST_RTSP_HDR_COMPANY_ID"
+ glib:nick="company-id"/>
+ <member name="guid"
+ value="48"
+ c:identifier="GST_RTSP_HDR_GUID"
+ glib:nick="guid"/>
+ <member name="region_data"
+ value="49"
+ c:identifier="GST_RTSP_HDR_REGION_DATA"
+ glib:nick="region-data"/>
+ <member name="max_asm_width"
+ value="50"
+ c:identifier="GST_RTSP_HDR_MAX_ASM_WIDTH"
+ glib:nick="max-asm-width"/>
+ <member name="language"
+ value="51"
+ c:identifier="GST_RTSP_HDR_LANGUAGE"
+ glib:nick="language"/>
+ <member name="player_start_time"
+ value="52"
+ c:identifier="GST_RTSP_HDR_PLAYER_START_TIME"
+ glib:nick="player-start-time"/>
+ <member name="location"
+ value="53"
+ c:identifier="GST_RTSP_HDR_LOCATION"
+ glib:nick="location"/>
+ <member name="etag"
+ value="54"
+ c:identifier="GST_RTSP_HDR_ETAG"
+ glib:nick="etag"/>
+ <member name="if_match"
+ value="55"
+ c:identifier="GST_RTSP_HDR_IF_MATCH"
+ glib:nick="if-match"/>
+ <member name="accept_charset"
+ value="56"
+ c:identifier="GST_RTSP_HDR_ACCEPT_CHARSET"
+ glib:nick="accept-charset"/>
+ <member name="supported"
+ value="57"
+ c:identifier="GST_RTSP_HDR_SUPPORTED"
+ glib:nick="supported"/>
+ <member name="vary"
+ value="58"
+ c:identifier="GST_RTSP_HDR_VARY"
+ glib:nick="vary"/>
+ <member name="x_accelerate_streaming"
+ value="59"
+ c:identifier="GST_RTSP_HDR_X_ACCELERATE_STREAMING"
+ glib:nick="x-accelerate-streaming"/>
+ <member name="x_accept_authent"
+ value="60"
+ c:identifier="GST_RTSP_HDR_X_ACCEPT_AUTHENT"
+ glib:nick="x-accept-authent"/>
+ <member name="x_accept_proxy_authent"
+ value="61"
+ c:identifier="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT"
+ glib:nick="x-accept-proxy-authent"/>
+ <member name="x_broadcast_id"
+ value="62"
+ c:identifier="GST_RTSP_HDR_X_BROADCAST_ID"
+ glib:nick="x-broadcast-id"/>
+ <member name="x_burst_streaming"
+ value="63"
+ c:identifier="GST_RTSP_HDR_X_BURST_STREAMING"
+ glib:nick="x-burst-streaming"/>
+ <member name="x_notice"
+ value="64"
+ c:identifier="GST_RTSP_HDR_X_NOTICE"
+ glib:nick="x-notice"/>
+ <member name="x_player_lag_time"
+ value="65"
+ c:identifier="GST_RTSP_HDR_X_PLAYER_LAG_TIME"
+ glib:nick="x-player-lag-time"/>
+ <member name="x_playlist"
+ value="66"
+ c:identifier="GST_RTSP_HDR_X_PLAYLIST"
+ glib:nick="x-playlist"/>
+ <member name="x_playlist_change_notice"
+ value="67"
+ c:identifier="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE"
+ glib:nick="x-playlist-change-notice"/>
+ <member name="x_playlist_gen_id"
+ value="68"
+ c:identifier="GST_RTSP_HDR_X_PLAYLIST_GEN_ID"
+ glib:nick="x-playlist-gen-id"/>
+ <member name="x_playlist_seek_id"
+ value="69"
+ c:identifier="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID"
+ glib:nick="x-playlist-seek-id"/>
+ <member name="x_proxy_client_agent"
+ value="70"
+ c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT"
+ glib:nick="x-proxy-client-agent"/>
+ <member name="x_proxy_client_verb"
+ value="71"
+ c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_VERB"
+ glib:nick="x-proxy-client-verb"/>
+ <member name="x_receding_playlistchange"
+ value="72"
+ c:identifier="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE"
+ glib:nick="x-receding-playlistchange"/>
+ <member name="x_rtp_info"
+ value="73"
+ c:identifier="GST_RTSP_HDR_X_RTP_INFO"
+ glib:nick="x-rtp-info"/>
+ <member name="x_startupprofile"
+ value="74"
+ c:identifier="GST_RTSP_HDR_X_STARTUPPROFILE"
+ glib:nick="x-startupprofile"/>
+ <member name="timestamp"
+ value="75"
+ c:identifier="GST_RTSP_HDR_TIMESTAMP"
+ glib:nick="timestamp"/>
+ <member name="authentication_info"
+ value="76"
+ c:identifier="GST_RTSP_HDR_AUTHENTICATION_INFO"
+ glib:nick="authentication-info"/>
+ <member name="host"
+ value="77"
+ c:identifier="GST_RTSP_HDR_HOST"
+ glib:nick="host"/>
+ <member name="pragma"
+ value="78"
+ c:identifier="GST_RTSP_HDR_PRAGMA"
+ glib:nick="pragma"/>
+ <member name="x_server_ip_address"
+ value="79"
+ c:identifier="GST_RTSP_HDR_X_SERVER_IP_ADDRESS"
+ glib:nick="x-server-ip-address"/>
+ <member name="x_sessioncookie"
+ value="80"
+ c:identifier="GST_RTSP_HDR_X_SESSIONCOOKIE"
+ glib:nick="x-sessioncookie"/>
+ <member name="last"
+ value="81"
+ c:identifier="GST_RTSP_HDR_LAST"
+ glib:nick="last"/>
+ </enumeration>
+ <bitfield name="RTSPLowerTrans"
+ doc="The different transport methods."
+ glib:type-name="GstRTSPLowerTrans"
+ glib:get-type="gst_rtsp_lower_trans_get_type"
+ c:type="GstRTSPLowerTrans">
+ <member name="udp_unicast"
+ value="1"
+ c:identifier="UDP Unicast Mode"
+ glib:nick="udp-unicast"/>
+ <member name="udp_multicast"
+ value="2"
+ c:identifier="UDP Multicast Mode"
+ glib:nick="udp-multicast"/>
+ <member name="tcp"
+ value="4"
+ c:identifier="TCP interleaved mode"
+ glib:nick="tcp"/>
+ <member name="http"
+ value="16"
+ c:identifier="HTTP tunneled mode"
+ glib:nick="http"/>
+ </bitfield>
+ <record name="RTSPMessage"
+ c:type="GstRTSPMessage"
+ doc="An RTSP message containing request, response or data messages. Depending on
+the @type, the appropriate structure may be accessed.">
+ <field name="type" writable="1">
+ <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
+ </field>
+ <union name="type_data" c:type="type_data">
+ <record name="request" c:type="request">
+ <field name="method" writable="1">
+ <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+ </field>
+ <field name="uri" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="version" writable="1">
+ <type name="RTSPVersion" c:type="GstRTSPVersion"/>
+ </field>
+ </record>
+ <record name="response" c:type="response">
+ <field name="code" writable="1">
+ <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+ </field>
+ <field name="reason" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="version" writable="1">
+ <type name="RTSPVersion" c:type="GstRTSPVersion"/>
+ </field>
+ </record>
+ <record name="data" c:type="data">
+ <field name="channel" writable="1">
+ <type name="uint8" c:type="guint8"/>
+ </field>
+ </record>
+ </union>
+ <field name="hdr_fields" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="body" writable="1">
+ <type name="any" c:type="guint8*"/>
+ </field>
+ <field name="body_size" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_rtsp_message_new"
+ doc="Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPMessage" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_request"
+ c:identifier="gst_rtsp_message_new_request"
+ doc="Create a new #GstRTSPMessage with @method and @uri and store the result
+request message in @msg. Free with gst_rtsp_message_free().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPMessage" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+ </parameter>
+ <parameter name="method" transfer-ownership="none">
+ <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+ </parameter>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_response"
+ c:identifier="gst_rtsp_message_new_response"
+ doc="Create a new response #GstRTSPMessage with @code and @reason and store the
+result message in @msg. Free with gst_rtsp_message_free().
+When @reason is #NULL, the default reason for @code will be used.
+When @request is not #NULL, the relevant headers will be copied to the new
+response message.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPMessage" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+ </parameter>
+ <parameter name="code" transfer-ownership="none">
+ <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+ </parameter>
+ <parameter name="reason" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="request" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <constructor name="new_data"
+ c:identifier="gst_rtsp_message_new_data"
+ doc="Create a new data #GstRTSPMessage with @channel and store the
+result message in @msg. Free with gst_rtsp_message_free().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPMessage" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage**"/>
+ </parameter>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="init"
+ c:identifier="gst_rtsp_message_init"
+ doc="Initialize @msg. This function is mostly used when @msg is allocated on the
+stack. The reverse operation of this is gst_rtsp_message_unset().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ <method name="unset"
+ c:identifier="gst_rtsp_message_unset"
+ doc="Unset the contents of @msg so that it becomes an uninitialized
+#GstRTSPMessage again. This function is mostly used in combination with
+gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and
+gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_rtsp_message_free"
+ doc="Free the memory used by @msg.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ <method name="init_request"
+ c:identifier="gst_rtsp_message_init_request"
+ doc="Initialize @msg as a request message with @method and @uri. To clear @msg
+again, use gst_rtsp_message_unset().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+ </parameter>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_request"
+ c:identifier="gst_rtsp_message_parse_request"
+ doc="Parse the request message @msg and store the values @method, @uri and
+value.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="RTSPMethod" c:type="GstRTSPMethod*"/>
+ </parameter>
+ <parameter name="uri" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="version" transfer-ownership="none">
+ <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_response"
+ c:identifier="gst_rtsp_message_init_response"
+ doc="Initialize @msg with @code and @reason.
+When @reason is #NULL, the default reason for @code will be used.
+When @request is not #NULL, the relevant headers will be copied to the new
+response message.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="code" transfer-ownership="none">
+ <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+ </parameter>
+ <parameter name="reason" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="request" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_response"
+ c:identifier="gst_rtsp_message_parse_response"
+ doc="Parse the response message @msg and store the values @code, @reason and
+value.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="code" transfer-ownership="none">
+ <type name="RTSPStatusCode" c:type="GstRTSPStatusCode*"/>
+ </parameter>
+ <parameter name="reason" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="version" transfer-ownership="none">
+ <type name="RTSPVersion" c:type="GstRTSPVersion*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="init_data"
+ c:identifier="gst_rtsp_message_init_data"
+ doc="Initialize a new data #GstRTSPMessage for @channel.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <type name="uint8" c:type="guint8"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="parse_data"
+ c:identifier="gst_rtsp_message_parse_data"
+ doc="Parse the data message @msg and store the channel in @channel.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="channel" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_header"
+ c:identifier="gst_rtsp_message_add_header"
+ doc="Add a header with key @field and @value to @msg. This function takes a copy
+of @value.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="take_header"
+ c:identifier="gst_rtsp_message_take_header"
+ doc="Add a header with key @field and @value to @msg. This function takes
+ownership of @value."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="remove_header"
+ c:identifier="gst_rtsp_message_remove_header"
+ doc="Remove the @indx header with key @field from @msg. If @indx equals -1, all
+headers will be removed.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </parameter>
+ <parameter name="indx" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_header"
+ c:identifier="gst_rtsp_message_get_header"
+ doc="Get the @indx header value with key @field from @msg. The result in @value
+stays valid as long as it remains present in @msg.
+was not found.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="indx" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="append_headers"
+ c:identifier="gst_rtsp_message_append_headers"
+ doc="Append the currently configured headers in @msg to the #GString @str suitable
+for transmission.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="GLib.String" c:type="GString*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_body"
+ c:identifier="gst_rtsp_message_set_body"
+ doc="Set the body of @msg to a copy of @data.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="take_body"
+ c:identifier="gst_rtsp_message_take_body"
+ doc="Set the body of @msg to @data and @size. This method takes ownership of">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_body"
+ c:identifier="gst_rtsp_message_get_body"
+ doc="Get the body of @msg. @data remains valid for as long as @msg is valid and
+unchanged.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ <parameter name="size" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="steal_body"
+ c:identifier="gst_rtsp_message_steal_body"
+ doc="Take the body of @msg and store it in @data and @size. After this method,
+the body and size of @msg will be set to #NULL and 0 respectively.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" direction="out" transfer-ownership="full">
+ <type name="uint8" c:type="guint8**"/>
+ </parameter>
+ <parameter name="size" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dump"
+ c:identifier="gst_rtsp_message_dump"
+ doc="Dump the contents of @msg to stdout.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ </method>
+ </record>
+ <bitfield name="RTSPMethod"
+ doc="The different supported RTSP methods."
+ glib:type-name="GstRTSPMethod"
+ glib:get-type="gst_rtsp_method_get_type"
+ c:type="GstRTSPMethod">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_RTSP_INVALID"
+ glib:nick="invalid"/>
+ <member name="describe"
+ value="1"
+ c:identifier="GST_RTSP_DESCRIBE"
+ glib:nick="describe"/>
+ <member name="announce"
+ value="2"
+ c:identifier="GST_RTSP_ANNOUNCE"
+ glib:nick="announce"/>
+ <member name="get_parameter"
+ value="4"
+ c:identifier="GST_RTSP_GET_PARAMETER"
+ glib:nick="get-parameter"/>
+ <member name="options"
+ value="8"
+ c:identifier="GST_RTSP_OPTIONS"
+ glib:nick="options"/>
+ <member name="pause"
+ value="16"
+ c:identifier="GST_RTSP_PAUSE"
+ glib:nick="pause"/>
+ <member name="play"
+ value="32"
+ c:identifier="GST_RTSP_PLAY"
+ glib:nick="play"/>
+ <member name="record"
+ value="64"
+ c:identifier="GST_RTSP_RECORD"
+ glib:nick="record"/>
+ <member name="redirect"
+ value="128"
+ c:identifier="GST_RTSP_REDIRECT"
+ glib:nick="redirect"/>
+ <member name="setup"
+ value="256"
+ c:identifier="GST_RTSP_SETUP"
+ glib:nick="setup"/>
+ <member name="set_parameter"
+ value="512"
+ c:identifier="GST_RTSP_SET_PARAMETER"
+ glib:nick="set-parameter"/>
+ <member name="teardown"
+ value="1024"
+ c:identifier="GST_RTSP_TEARDOWN"
+ glib:nick="teardown"/>
+ <member name="get"
+ value="2048"
+ c:identifier="GST_RTSP_GET"
+ glib:nick="get"/>
+ <member name="post"
+ value="4096"
+ c:identifier="GST_RTSP_POST"
+ glib:nick="post"/>
+ </bitfield>
+ <enumeration name="RTSPMsgType"
+ doc="The type of a message."
+ c:type="GstRTSPMsgType">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_RTSP_MESSAGE_INVALID"/>
+ <member name="request"
+ value="1"
+ c:identifier="GST_RTSP_MESSAGE_REQUEST"/>
+ <member name="response"
+ value="2"
+ c:identifier="GST_RTSP_MESSAGE_RESPONSE"/>
+ <member name="http_request"
+ value="3"
+ c:identifier="GST_RTSP_MESSAGE_HTTP_REQUEST"/>
+ <member name="http_response"
+ value="4"
+ c:identifier="GST_RTSP_MESSAGE_HTTP_RESPONSE"/>
+ <member name="data" value="5" c:identifier="GST_RTSP_MESSAGE_DATA"/>
+ </enumeration>
+ <bitfield name="RTSPProfile"
+ doc="The transfer profile to use."
+ c:type="GstRTSPProfile">
+ <member name="unknown"
+ value="0"
+ c:identifier="GST_RTSP_PROFILE_UNKNOWN"/>
+ <member name="avp" value="1" c:identifier="GST_RTSP_PROFILE_AVP"/>
+ <member name="savp" value="2" c:identifier="GST_RTSP_PROFILE_SAVP"/>
+ </bitfield>
+ <record name="RTSPRange"
+ c:type="GstRTSPRange"
+ doc="A type to specify a range.">
+ <field name="min" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="max" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ </record>
+ <enumeration name="RTSPRangeUnit"
+ doc="Different possible time range units."
+ c:type="GstRTSPRangeUnit">
+ <member name="smpte" value="0" c:identifier="GST_RTSP_RANGE_SMPTE"/>
+ <member name="smpte_30_drop"
+ value="1"
+ c:identifier="GST_RTSP_RANGE_SMPTE_30_DROP"/>
+ <member name="smpte_25"
+ value="2"
+ c:identifier="GST_RTSP_RANGE_SMPTE_25"/>
+ <member name="npt" value="3" c:identifier="GST_RTSP_RANGE_NPT"/>
+ <member name="clock" value="4" c:identifier="GST_RTSP_RANGE_CLOCK"/>
+ </enumeration>
+ <enumeration name="RTSPResult"
+ doc="Result codes from the RTSP functions."
+ glib:type-name="GstRTSPResult"
+ glib:get-type="gst_rtsp_result_get_type"
+ c:type="GstRTSPResult">
+ <member name="ok" value="0" c:identifier="GST_RTSP_OK" glib:nick="ok"/>
+ <member name="error"
+ value="-1"
+ c:identifier="GST_RTSP_ERROR"
+ glib:nick="error"/>
+ <member name="einval"
+ value="-2"
+ c:identifier="GST_RTSP_EINVAL"
+ glib:nick="einval"/>
+ <member name="eintr"
+ value="-3"
+ c:identifier="GST_RTSP_EINTR"
+ glib:nick="eintr"/>
+ <member name="enomem"
+ value="-4"
+ c:identifier="GST_RTSP_ENOMEM"
+ glib:nick="enomem"/>
+ <member name="eresolv"
+ value="-5"
+ c:identifier="GST_RTSP_ERESOLV"
+ glib:nick="eresolv"/>
+ <member name="enotimpl"
+ value="-6"
+ c:identifier="GST_RTSP_ENOTIMPL"
+ glib:nick="enotimpl"/>
+ <member name="esys"
+ value="-7"
+ c:identifier="GST_RTSP_ESYS"
+ glib:nick="esys"/>
+ <member name="eparse"
+ value="-8"
+ c:identifier="GST_RTSP_EPARSE"
+ glib:nick="eparse"/>
+ <member name="ewsastart"
+ value="-9"
+ c:identifier="GST_RTSP_EWSASTART"
+ glib:nick="ewsastart"/>
+ <member name="ewsaversion"
+ value="-10"
+ c:identifier="GST_RTSP_EWSAVERSION"
+ glib:nick="ewsaversion"/>
+ <member name="eeof"
+ value="-11"
+ c:identifier="GST_RTSP_EEOF"
+ glib:nick="eeof"/>
+ <member name="enet"
+ value="-12"
+ c:identifier="GST_RTSP_ENET"
+ glib:nick="enet"/>
+ <member name="enotip"
+ value="-13"
+ c:identifier="GST_RTSP_ENOTIP"
+ glib:nick="enotip"/>
+ <member name="etimeout"
+ value="-14"
+ c:identifier="GST_RTSP_ETIMEOUT"
+ glib:nick="etimeout"/>
+ <member name="etget"
+ value="-15"
+ c:identifier="GST_RTSP_ETGET"
+ glib:nick="etget"/>
+ <member name="etpost"
+ value="-16"
+ c:identifier="GST_RTSP_ETPOST"
+ glib:nick="etpost"/>
+ <member name="elast"
+ value="-17"
+ c:identifier="GST_RTSP_ELAST"
+ glib:nick="elast"/>
+ </enumeration>
+ <enumeration name="RTSPState"
+ doc="The different RTSP states."
+ glib:type-name="GstRTSPState"
+ glib:get-type="gst_rtsp_state_get_type"
+ c:type="GstRTSPState">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_RTSP_STATE_INVALID"
+ glib:nick="invalid"/>
+ <member name="init"
+ value="1"
+ c:identifier="GST_RTSP_STATE_INIT"
+ glib:nick="init"/>
+ <member name="ready"
+ value="2"
+ c:identifier="GST_RTSP_STATE_READY"
+ glib:nick="ready"/>
+ <member name="seeking"
+ value="3"
+ c:identifier="GST_RTSP_STATE_SEEKING"
+ glib:nick="seeking"/>
+ <member name="playing"
+ value="4"
+ c:identifier="GST_RTSP_STATE_PLAYING"
+ glib:nick="playing"/>
+ <member name="recording"
+ value="5"
+ c:identifier="GST_RTSP_STATE_RECORDING"
+ glib:nick="recording"/>
+ </enumeration>
+ <enumeration name="RTSPStatusCode"
+ glib:type-name="GstRTSPStatusCode"
+ glib:get-type="gst_rtsp_status_code_get_type"
+ c:type="GstRTSPStatusCode">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_RTSP_STS_INVALID"
+ glib:nick="invalid"/>
+ <member name="continue"
+ value="100"
+ c:identifier="GST_RTSP_STS_CONTINUE"
+ glib:nick="continue"/>
+ <member name="ok"
+ value="200"
+ c:identifier="GST_RTSP_STS_OK"
+ glib:nick="ok"/>
+ <member name="created"
+ value="201"
+ c:identifier="GST_RTSP_STS_CREATED"
+ glib:nick="created"/>
+ <member name="low_on_storage"
+ value="250"
+ c:identifier="GST_RTSP_STS_LOW_ON_STORAGE"
+ glib:nick="low-on-storage"/>
+ <member name="multiple_choices"
+ value="300"
+ c:identifier="GST_RTSP_STS_MULTIPLE_CHOICES"
+ glib:nick="multiple-choices"/>
+ <member name="moved_permanently"
+ value="301"
+ c:identifier="GST_RTSP_STS_MOVED_PERMANENTLY"
+ glib:nick="moved-permanently"/>
+ <member name="move_temporarily"
+ value="302"
+ c:identifier="GST_RTSP_STS_MOVE_TEMPORARILY"
+ glib:nick="move-temporarily"/>
+ <member name="see_other"
+ value="303"
+ c:identifier="GST_RTSP_STS_SEE_OTHER"
+ glib:nick="see-other"/>
+ <member name="not_modified"
+ value="304"
+ c:identifier="GST_RTSP_STS_NOT_MODIFIED"
+ glib:nick="not-modified"/>
+ <member name="use_proxy"
+ value="305"
+ c:identifier="GST_RTSP_STS_USE_PROXY"
+ glib:nick="use-proxy"/>
+ <member name="bad_request"
+ value="400"
+ c:identifier="GST_RTSP_STS_BAD_REQUEST"
+ glib:nick="bad-request"/>
+ <member name="unauthorized"
+ value="401"
+ c:identifier="GST_RTSP_STS_UNAUTHORIZED"
+ glib:nick="unauthorized"/>
+ <member name="payment_required"
+ value="402"
+ c:identifier="GST_RTSP_STS_PAYMENT_REQUIRED"
+ glib:nick="payment-required"/>
+ <member name="forbidden"
+ value="403"
+ c:identifier="GST_RTSP_STS_FORBIDDEN"
+ glib:nick="forbidden"/>
+ <member name="not_found"
+ value="404"
+ c:identifier="GST_RTSP_STS_NOT_FOUND"
+ glib:nick="not-found"/>
+ <member name="method_not_allowed"
+ value="405"
+ c:identifier="GST_RTSP_STS_METHOD_NOT_ALLOWED"
+ glib:nick="method-not-allowed"/>
+ <member name="not_acceptable"
+ value="406"
+ c:identifier="GST_RTSP_STS_NOT_ACCEPTABLE"
+ glib:nick="not-acceptable"/>
+ <member name="proxy_auth_required"
+ value="407"
+ c:identifier="GST_RTSP_STS_PROXY_AUTH_REQUIRED"
+ glib:nick="proxy-auth-required"/>
+ <member name="request_timeout"
+ value="408"
+ c:identifier="GST_RTSP_STS_REQUEST_TIMEOUT"
+ glib:nick="request-timeout"/>
+ <member name="gone"
+ value="410"
+ c:identifier="GST_RTSP_STS_GONE"
+ glib:nick="gone"/>
+ <member name="length_required"
+ value="411"
+ c:identifier="GST_RTSP_STS_LENGTH_REQUIRED"
+ glib:nick="length-required"/>
+ <member name="precondition_failed"
+ value="412"
+ c:identifier="GST_RTSP_STS_PRECONDITION_FAILED"
+ glib:nick="precondition-failed"/>
+ <member name="request_entity_too_large"
+ value="413"
+ c:identifier="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE"
+ glib:nick="request-entity-too-large"/>
+ <member name="request_uri_too_large"
+ value="414"
+ c:identifier="GST_RTSP_STS_REQUEST_URI_TOO_LARGE"
+ glib:nick="request-uri-too-large"/>
+ <member name="unsupported_media_type"
+ value="415"
+ c:identifier="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE"
+ glib:nick="unsupported-media-type"/>
+ <member name="parameter_not_understood"
+ value="451"
+ c:identifier="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD"
+ glib:nick="parameter-not-understood"/>
+ <member name="conference_not_found"
+ value="452"
+ c:identifier="GST_RTSP_STS_CONFERENCE_NOT_FOUND"
+ glib:nick="conference-not-found"/>
+ <member name="not_enough_bandwidth"
+ value="453"
+ c:identifier="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH"
+ glib:nick="not-enough-bandwidth"/>
+ <member name="session_not_found"
+ value="454"
+ c:identifier="GST_RTSP_STS_SESSION_NOT_FOUND"
+ glib:nick="session-not-found"/>
+ <member name="method_not_valid_in_this_state"
+ value="455"
+ c:identifier="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE"
+ glib:nick="method-not-valid-in-this-state"/>
+ <member name="header_field_not_valid_for_resource"
+ value="456"
+ c:identifier="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE"
+ glib:nick="header-field-not-valid-for-resource"/>
+ <member name="invalid_range"
+ value="457"
+ c:identifier="GST_RTSP_STS_INVALID_RANGE"
+ glib:nick="invalid-range"/>
+ <member name="parameter_is_readonly"
+ value="458"
+ c:identifier="GST_RTSP_STS_PARAMETER_IS_READONLY"
+ glib:nick="parameter-is-readonly"/>
+ <member name="aggregate_operation_not_allowed"
+ value="459"
+ c:identifier="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED"
+ glib:nick="aggregate-operation-not-allowed"/>
+ <member name="only_aggregate_operation_allowed"
+ value="460"
+ c:identifier="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED"
+ glib:nick="only-aggregate-operation-allowed"/>
+ <member name="unsupported_transport"
+ value="461"
+ c:identifier="GST_RTSP_STS_UNSUPPORTED_TRANSPORT"
+ glib:nick="unsupported-transport"/>
+ <member name="destination_unreachable"
+ value="462"
+ c:identifier="GST_RTSP_STS_DESTINATION_UNREACHABLE"
+ glib:nick="destination-unreachable"/>
+ <member name="internal_server_error"
+ value="500"
+ c:identifier="GST_RTSP_STS_INTERNAL_SERVER_ERROR"
+ glib:nick="internal-server-error"/>
+ <member name="not_implemented"
+ value="501"
+ c:identifier="GST_RTSP_STS_NOT_IMPLEMENTED"
+ glib:nick="not-implemented"/>
+ <member name="bad_gateway"
+ value="502"
+ c:identifier="GST_RTSP_STS_BAD_GATEWAY"
+ glib:nick="bad-gateway"/>
+ <member name="service_unavailable"
+ value="503"
+ c:identifier="GST_RTSP_STS_SERVICE_UNAVAILABLE"
+ glib:nick="service-unavailable"/>
+ <member name="gateway_timeout"
+ value="504"
+ c:identifier="GST_RTSP_STS_GATEWAY_TIMEOUT"
+ glib:nick="gateway-timeout"/>
+ <member name="rtsp_version_not_supported"
+ value="505"
+ c:identifier="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED"
+ glib:nick="rtsp-version-not-supported"/>
+ <member name="option_not_supported"
+ value="551"
+ c:identifier="GST_RTSP_STS_OPTION_NOT_SUPPORTED"
+ glib:nick="option-not-supported"/>
+ </enumeration>
+ <record name="RTSPTime" c:type="GstRTSPTime" doc="A time indication.">
+ <field name="type" writable="1">
+ <type name="RTSPTimeType" c:type="GstRTSPTimeType"/>
+ </field>
+ <field name="seconds" writable="1">
+ <type name="double" c:type="gdouble"/>
+ </field>
+ </record>
+ <record name="RTSPTimeRange" c:type="GstRTSPTimeRange" doc="A time range.">
+ <field name="unit" writable="1">
+ <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/>
+ </field>
+ <field name="min" writable="1">
+ <type name="RTSPTime" c:type="GstRTSPTime"/>
+ </field>
+ <field name="max" writable="1">
+ <type name="RTSPTime" c:type="GstRTSPTime"/>
+ </field>
+ </record>
+ <enumeration name="RTSPTimeType"
+ doc="Possible time types."
+ c:type="GstRTSPTimeType">
+ <member name="seconds" value="0" c:identifier="GST_RTSP_TIME_SECONDS"/>
+ <member name="now" value="1" c:identifier="GST_RTSP_TIME_NOW"/>
+ <member name="end" value="2" c:identifier="GST_RTSP_TIME_END"/>
+ </enumeration>
+ <bitfield name="RTSPTransMode"
+ doc="The transfer mode to use."
+ c:type="GstRTSPTransMode">
+ <member name="unknown" value="0" c:identifier="GST_RTSP_TRANS_UNKNOWN"/>
+ <member name="rtp" value="1" c:identifier="GST_RTSP_TRANS_RTP"/>
+ <member name="rdt" value="2" c:identifier="GST_RTSP_TRANS_RDT"/>
+ </bitfield>
+ <record name="RTSPTransport" c:type="_GstRTSPTransport">
+ <field name="trans" writable="1">
+ <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
+ </field>
+ <field name="profile" writable="1">
+ <type name="RTSPProfile" c:type="GstRTSPProfile"/>
+ </field>
+ <field name="lower_transport" writable="1">
+ <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+ </field>
+ <field name="destination" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="source" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="layers" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="mode_play" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="mode_record" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="append" writable="1">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ <field name="interleaved" writable="1">
+ <type name="RTSPRange" c:type="GstRTSPRange"/>
+ </field>
+ <field name="ttl" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="port" writable="1">
+ <type name="RTSPRange" c:type="GstRTSPRange"/>
+ </field>
+ <field name="client_port" writable="1">
+ <type name="RTSPRange" c:type="GstRTSPRange"/>
+ </field>
+ <field name="server_port" writable="1">
+ <type name="RTSPRange" c:type="GstRTSPRange"/>
+ </field>
+ <field name="ssrc" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ </record>
+ <record name="RTSPUrl"
+ c:type="GstRTSPUrl"
+ doc="This structure contains the result of a parsed RTSP URL"
+ glib:type-name="GstRTSPUrl"
+ glib:get-type="gst_rtsp_url_get_type">
+ <field name="transports" writable="1">
+ <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/>
+ </field>
+ <field name="family" writable="1">
+ <type name="RTSPFamily" c:type="GstRTSPFamily"/>
+ </field>
+ <field name="user" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="passwd" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="host" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="port" writable="1">
+ <type name="uint16" c:type="guint16"/>
+ </field>
+ <field name="abspath" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="query" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <method name="copy"
+ c:identifier="gst_rtsp_url_copy"
+ doc="Make a copy of @url."
+ version="0.10.22">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_rtsp_url_free"
+ doc="Free the memory used by @url.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="get_request_uri"
+ c:identifier="gst_rtsp_url_get_request_uri"
+ doc="Get a newly allocated string describing the request URI for @url.">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_port"
+ c:identifier="gst_rtsp_url_set_port"
+ doc="Set the port number in @url to @port.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_port"
+ c:identifier="gst_rtsp_url_get_port"
+ doc="Get the port number of @url.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="port" direction="out" transfer-ownership="full">
+ <type name="uint16" c:type="guint16*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <enumeration name="RTSPVersion"
+ doc="The supported RTSP versions."
+ glib:type-name="GstRTSPVersion"
+ glib:get-type="gst_rtsp_version_get_type"
+ c:type="GstRTSPVersion">
+ <member name="invalid"
+ value="0"
+ c:identifier="GST_RTSP_VERSION_INVALID"
+ glib:nick="invalid"/>
+ <member name="1_0"
+ value="16"
+ c:identifier="GST_RTSP_VERSION_1_0"
+ glib:nick="1-0"/>
+ <member name="1_1"
+ value="17"
+ c:identifier="GST_RTSP_VERSION_1_1"
+ glib:nick="1-1"/>
+ </enumeration>
+ <record name="RTSPWatch"
+ c:type="GstRTSPWatch"
+ doc="Opaque RTSP watch object that can be used for asynchronous RTSP
+operations.">
+ <constructor name="new"
+ c:identifier="gst_rtsp_watch_new"
+ doc="Create a watch object for @conn. The functions provided in @funcs will be
+called with @user_data when activity happened on the watch.
+The new watch is usually created so that it can be attached to a
+maincontext with gst_rtsp_watch_attach().
+communication. Free with gst_rtsp_watch_unref () after usage."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTSPWatch" c:type="GstRTSPWatch*"/>
+ </return-value>
+ <parameters>
+ <parameter name="conn" transfer-ownership="none">
+ <type name="RTSPConnection" c:type="GstRTSPConnection*"/>
+ </parameter>
+ <parameter name="funcs" transfer-ownership="none">
+ <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/>
+ </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>
+ </constructor>
+ <method name="reset"
+ c:identifier="gst_rtsp_watch_reset"
+ doc="Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel()
+when the file descriptors of the connection might have changed."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="unref"
+ c:identifier="gst_rtsp_watch_unref"
+ doc="Decreases the reference count of @watch by one. If the resulting reference
+count is zero the watch and associated memory will be destroyed."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </method>
+ <method name="attach"
+ c:identifier="gst_rtsp_watch_attach"
+ doc="Adds a #GstRTSPWatch to a context so that it will be executed within that context."
+ version="0.10.23">
+ <return-value transfer-ownership="none"
+ doc="for the watch within the GMainContext.">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="context" transfer-ownership="none">
+ <type name="GLib.MainContext" c:type="GMainContext*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="write_data"
+ c:identifier="gst_rtsp_watch_write_data"
+ doc="Write @data using the connection of the @watch. If it cannot be sent
+immediately, it will be queued for transmission in @watch. The contents of
+callback.
+This function will take ownership of @data and g_free() it after use."
+ version="0.10.25">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="id" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="send_message"
+ c:identifier="gst_rtsp_watch_send_message"
+ doc="Send a @message using the connection of the @watch. If it cannot be sent
+immediately, it will be queued for transmission in @watch. The contents of
+callback."
+ version="0.10.25">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ <parameter name="id" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="queue_data"
+ c:identifier="gst_rtsp_watch_queue_data"
+ doc="Queue @data for transmission in @watch. It will be transmitted when the
+connection of the @watch becomes writable.
+This function will take ownership of @data and g_free() it after use.
+The return value of this function will be used as the id argument in the
+message_sent callback."
+ version="0.10.24"
+ deprecated="Use gst_rtsp_watch_write_data()">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="queue_message"
+ c:identifier="gst_rtsp_watch_queue_message"
+ doc="Queue a @message for transmission in @watch. The contents of this
+message will be serialized and transmitted when the connection of the
+The return value of this function will be used as the id argument in the
+message_sent callback."
+ version="0.10.23"
+ deprecated="Use gst_rtsp_watch_send_message()">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <parameter name="message" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </method>
+ </record>
+ <record name="RTSPWatchFuncs"
+ c:type="GstRTSPWatchFuncs"
+ doc="connection must be saved.
+you usually pair the tunnelid of this connection with the saved one using
+gst_rtsp_connection_do_tunnel().
+the @error callback. Since 0.10.25
+Since 0.10.29
+Callback functions from a #GstRTSPWatch."
+ version="0.10.23">
+ <field name="message_received">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="message_sent">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="closed">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="error">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="tunnel_start">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="tunnel_complete">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="error_full">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="tunnel_lost">
+ <type name="any" c:type="pointer"/>
+ </field>
+ <field name="_gst_reserved" writable="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <function name="base64_decode_ip"
+ c:identifier="gst_rtsp_base64_decode_ip"
+ doc="Decode the base64 string pointed to by @data in-place. When @len is not #NULL
+it will contain the length of the decoded data.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="len" direction="out" transfer-ownership="full">
+ <type name="size_t" c:type="gsize*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="base64_encode"
+ c:identifier="gst_rtsp_base64_encode"
+ doc="Encode a sequence of binary data into its Base-64 stringified representation.
+representing @data."
+ deprecated="Use g_base64_encode()">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="len" transfer-ownership="none">
+ <type name="size_t" c:type="gsize"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="connection_accept"
+ c:identifier="gst_rtsp_connection_accept"
+ doc="Accept a new connection on @sock and create a new #GstRTSPConnection for
+handling communication on new socket."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="sock" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="conn" transfer-ownership="none">
+ <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="connection_create"
+ c:identifier="gst_rtsp_connection_create"
+ doc="Create a newly allocated #GstRTSPConnection from @url and store it in @conn.
+The connection will not yet attempt to connect to @url, use
+gst_rtsp_connection_connect().
+A copy of @url will be made.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="url" transfer-ownership="none">
+ <type name="RTSPUrl" c:type="GstRTSPUrl*"/>
+ </parameter>
+ <parameter name="conn" transfer-ownership="none">
+ <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="connection_create_from_fd"
+ c:identifier="gst_rtsp_connection_create_from_fd"
+ doc="Create a new #GstRTSPConnection for handling communication on the existing
+file descriptor @fd. The @initial_buffer contains any data already read from"
+ version="0.10.25">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="fd" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="ip" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint16" c:type="guint16"/>
+ </parameter>
+ <parameter name="initial_buffer" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="conn" transfer-ownership="none">
+ <type name="RTSPConnection" c:type="GstRTSPConnection**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="find_header_field"
+ c:identifier="gst_rtsp_find_header_field"
+ doc="Convert @header to a #GstRTSPHeaderField.
+header field is unknown.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </return-value>
+ <parameters>
+ <parameter name="header" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="find_method"
+ c:identifier="gst_rtsp_find_method"
+ doc="Convert @method to a #GstRTSPMethod.
+method is unknown.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="header_allow_multiple"
+ c:identifier="gst_rtsp_header_allow_multiple"
+ doc="Check whether @field may appear multiple times in a message."
+ version="0.10.25">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="header_as_text"
+ c:identifier="gst_rtsp_header_as_text"
+ doc="Convert @field to a string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="field" transfer-ownership="none">
+ <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="message_get_type"
+ c:identifier="gst_rtsp_message_get_type"
+ doc="Get the message type of @msg.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPMsgType" c:type="GstRTSPMsgType"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="RTSPMessage" c:type="GstRTSPMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="method_as_text"
+ c:identifier="gst_rtsp_method_as_text"
+ doc="Convert @method to a string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="method" transfer-ownership="none">
+ <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="options_as_text"
+ c:identifier="gst_rtsp_options_as_text"
+ doc="Convert @options to a string."
+ version="0.10.23">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="options" transfer-ownership="none">
+ <type name="RTSPMethod" c:type="GstRTSPMethod"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="range_free"
+ c:identifier="gst_rtsp_range_free"
+ doc="Free the memory alocated by @range.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="range" transfer-ownership="none">
+ <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="range_parse"
+ c:identifier="gst_rtsp_range_parse"
+ doc="Parse @rangestr to a #GstRTSPTimeRange.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="rangestr" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="range" transfer-ownership="none">
+ <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="range_to_string"
+ c:identifier="gst_rtsp_range_to_string"
+ doc="Convert @range into a string representation."
+ version="0.10.23">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="range" transfer-ownership="none">
+ <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="status_as_text"
+ c:identifier="gst_rtsp_status_as_text"
+ doc="Convert @code to a string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="code" transfer-ownership="none">
+ <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="strresult"
+ c:identifier="gst_rtsp_strresult"
+ doc="Convert @result in a human readable string.">
+ <return-value transfer-ownership="full" doc="after usage.">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="result" transfer-ownership="none">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_as_text"
+ c:identifier="gst_rtsp_transport_as_text"
+ doc="Convert @transport into a string that can be used to signal the transport in
+an RTSP SETUP response.
+is invalid.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="transport" transfer-ownership="none">
+ <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_free"
+ c:identifier="gst_rtsp_transport_free"
+ doc="Free the memory used by @transport.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="transport" transfer-ownership="none">
+ <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_get_manager"
+ c:identifier="gst_rtsp_transport_get_manager"
+ doc="Get the #GStreamer element that can handle the buffers transported over
+It is possible that there are several managers available, use @option to
+selected one.
+needed/available for @trans.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
+ </parameter>
+ <parameter name="manager" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="option" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_get_mime"
+ c:identifier="gst_rtsp_transport_get_mime"
+ doc="Get the mime type of the transport mode @trans. This mime type is typically
+used to generate #GstCaps on buffers.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="trans" transfer-ownership="none">
+ <type name="RTSPTransMode" c:type="GstRTSPTransMode"/>
+ </parameter>
+ <parameter name="mime" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_init"
+ c:identifier="gst_rtsp_transport_init"
+ doc="Initialize @transport so that it can be used.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="transport" transfer-ownership="none">
+ <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_new"
+ c:identifier="gst_rtsp_transport_new"
+ doc="Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free()
+after usage.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="transport" transfer-ownership="none">
+ <type name="RTSPTransport" c:type="GstRTSPTransport**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="transport_parse"
+ c:identifier="gst_rtsp_transport_parse"
+ doc="Parse the RTSP transport string @str into @transport.">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="str" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="transport" transfer-ownership="none">
+ <type name="RTSPTransport" c:type="GstRTSPTransport*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="url_parse"
+ c:identifier="gst_rtsp_url_parse"
+ doc="Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage
+with gst_rtsp_url_free().">
+ <return-value transfer-ownership="full">
+ <type name="RTSPResult" c:type="GstRTSPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="urlstr" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="url" transfer-ownership="none">
+ <type name="RTSPUrl" c:type="GstRTSPUrl**"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="version_as_text"
+ c:identifier="gst_rtsp_version_as_text"
+ doc="Convert @version to a string.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="version" transfer-ownership="none">
+ <type name="RTSPVersion" c:type="GstRTSPVersion"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /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 gstreamer.ffi gstreamer.sdp.ffi ;
+IN: gstreamer.rtsp.ffi
+
+<<
+"gstreamer.rtsp" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstrtsp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+! git error (there is _GstRTSPTransport only in .gir)
+C-TYPE: GstRTSPTransport
+
+GIR: vocab:gstreamer/rtsp/GstRtsp-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.rtsp.ffi ;
+IN: gstreamer.rtsp
+
--- /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="Gst" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <c:include name="gst/audio/gstsdp.h"/>
+ <c:include name="gst/audio/gstsdpmessage.h"/>
+ <namespace name="GstSdp"
+ version="0.10"
+ shared-library="libgstsdp-0.10.so.0"
+ c:prefix="Gst">
+ <constant name="BWTYPE_AS" value="AS">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BWTYPE_CT" value="CT">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BWTYPE_EXT_PREFIX" value="X-">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BWTYPE_RS" value="RS">
+ <type name="utf8"/>
+ </constant>
+ <record name="SDPAttribute"
+ c:type="GstSDPAttribute"
+ doc="The contents of the SDP "a=" field which contains a key/value pair.">
+ <field name="key" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="value" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ </record>
+ <record name="SDPBandwidth"
+ c:type="GstSDPBandwidth"
+ doc="The contents of the SDP "b=" field which specifies the proposed bandwidth to
+be used by the session or media.">
+ <field name="bwtype" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="bandwidth" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ </record>
+ <record name="SDPConnection"
+ c:type="GstSDPConnection"
+ doc=""Internet".
+The contents of the SDP "c=" field which contains connection data.">
+ <field name="nettype" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="addrtype" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="address" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="ttl" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="addr_number" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ </record>
+ <record name="SDPKey"
+ c:type="GstSDPKey"
+ doc="The contents of the SDP "k=" field which is used to convey encryption
+keys.">
+ <field name="type" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="data" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ </record>
+ <record name="SDPMedia"
+ c:type="GstSDPMedia"
+ doc="The contents of the SDP "m=" field with all related fields.">
+ <field name="media" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="port" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="num_ports" writable="1">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="proto" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="fmts" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="information" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="connections" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="bandwidths" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="key" writable="1">
+ <type name="SDPKey" c:type="GstSDPKey"/>
+ </field>
+ <field name="attributes" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_sdp_media_new"
+ doc="Allocate a new GstSDPMedia and store the result in @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPMedia" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="media" transfer-ownership="none">
+ <type name="SDPMedia" c:type="GstSDPMedia**"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="init"
+ c:identifier="gst_sdp_media_init"
+ doc="Initialize @media so that its contents are as if it was freshly allocated
+with gst_sdp_media_new(). This function is mostly used to initialize a media
+allocated on the stack. gst_sdp_media_uninit() undoes this operation.
+When this function is invoked on newly allocated data (with malloc or on the
+stack), its contents should be set to 0 before calling this function.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ <method name="uninit"
+ c:identifier="gst_sdp_media_uninit"
+ doc="Free all resources allocated in @media. @media should not be used anymore after
+this function. This function should be used when @media was allocated on the
+stack and initialized with gst_sdp_media_init().">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_sdp_media_free"
+ doc="Free all resources allocated by @media. @media should not be used anymore after
+this function. This function should be used when @media was dynamically
+allocated with gst_sdp_media_new().">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ <method name="as_text"
+ c:identifier="gst_sdp_media_as_text"
+ doc="Convert the contents of @media to a text string.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_media"
+ c:identifier="gst_sdp_media_get_media"
+ doc="Get the media description of @media.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_media"
+ c:identifier="gst_sdp_media_set_media"
+ doc="Set the media description of @media to @med.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="med" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_port"
+ c:identifier="gst_sdp_media_get_port"
+ doc="Get the port number for @media.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_num_ports"
+ c:identifier="gst_sdp_media_get_num_ports"
+ doc="Get the number of ports for @media.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="set_port_info"
+ c:identifier="gst_sdp_media_set_port_info"
+ doc="Set the port information in @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="port" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="num_ports" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_proto"
+ c:identifier="gst_sdp_media_get_proto"
+ doc="Get the transport protocol of @media">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_proto"
+ c:identifier="gst_sdp_media_set_proto"
+ doc="Set the media transport protocol of @media to @proto.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="proto" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="formats_len"
+ c:identifier="gst_sdp_media_formats_len"
+ doc="Get the number of formats in @media.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_format"
+ c:identifier="gst_sdp_media_get_format"
+ doc="Get the format information at position @idx in @media.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_format"
+ c:identifier="gst_sdp_media_add_format"
+ doc="Add the format information to @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_information"
+ c:identifier="gst_sdp_media_get_information"
+ doc="Get the information of @media">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_information"
+ c:identifier="gst_sdp_media_set_information"
+ doc="Set the media information of @media to @information.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="information" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="connections_len"
+ c:identifier="gst_sdp_media_connections_len"
+ doc="Get the number of connection fields in @media.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_connection"
+ c:identifier="gst_sdp_media_get_connection"
+ doc="Get the connection at position @idx in @media.">
+ <return-value transfer-ownership="none">
+ <type name="SDPConnection" c:type="GstSDPConnection*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_connection"
+ c:identifier="gst_sdp_media_add_connection"
+ doc=""Internet".
+Add the given connection parameters to @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="nettype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="addrtype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="ttl" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="addr_number" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bandwidths_len"
+ c:identifier="gst_sdp_media_bandwidths_len"
+ doc="Get the number of bandwidth fields in @media.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_bandwidth"
+ c:identifier="gst_sdp_media_get_bandwidth"
+ doc="Get the bandwidth at position @idx in @media.">
+ <return-value transfer-ownership="none">
+ <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_bandwidth"
+ c:identifier="gst_sdp_media_add_bandwidth"
+ doc="Add the bandwidth information with @bwtype and @bandwidth to @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="bwtype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="bandwidth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_key"
+ c:identifier="gst_sdp_media_get_key"
+ doc="Get the encryption information from @media.">
+ <return-value transfer-ownership="none">
+ <type name="SDPKey" c:type="GstSDPKey*"/>
+ </return-value>
+ </method>
+ <method name="set_key"
+ c:identifier="gst_sdp_media_set_key"
+ doc="Adds the encryption information to @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="attributes_len"
+ c:identifier="gst_sdp_media_attributes_len"
+ doc="Get the number of attribute fields in @media.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_attribute"
+ c:identifier="gst_sdp_media_get_attribute"
+ doc="Get the attribute at position @idx in @media.">
+ <return-value transfer-ownership="none">
+ <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_attribute_val"
+ c:identifier="gst_sdp_media_get_attribute_val"
+ doc="Get the first attribute value for @key in @media.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_attribute_val_n"
+ c:identifier="gst_sdp_media_get_attribute_val_n"
+ doc="Get the @nth attribute value for @key in @media.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="nth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_attribute"
+ c:identifier="gst_sdp_media_add_attribute"
+ doc="Add the attribute with @key and @value to @media.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" 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>
+ </record>
+ <record name="SDPMessage"
+ c:type="GstSDPMessage"
+ doc="The contents of the SDP message.">
+ <field name="version" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="origin" writable="1">
+ <type name="SDPOrigin" c:type="GstSDPOrigin"/>
+ </field>
+ <field name="session_name" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="information" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="uri" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="emails" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="phones" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="connection" writable="1">
+ <type name="SDPConnection" c:type="GstSDPConnection"/>
+ </field>
+ <field name="bandwidths" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="times" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="zones" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="key" writable="1">
+ <type name="SDPKey" c:type="GstSDPKey"/>
+ </field>
+ <field name="attributes" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <field name="medias" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ <constructor name="new"
+ c:identifier="gst_sdp_message_new"
+ doc="Allocate a new GstSDPMessage and store the result in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPMessage" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="SDPMessage" c:type="GstSDPMessage**"/>
+ </parameter>
+ </parameters>
+ </constructor>
+ <method name="init"
+ c:identifier="gst_sdp_message_init"
+ doc="Initialize @msg so that its contents are as if it was freshly allocated
+with gst_sdp_message_new(). This function is mostly used to initialize a message
+allocated on the stack. gst_sdp_message_uninit() undoes this operation.
+When this function is invoked on newly allocated data (with malloc or on the
+stack), its contents should be set to 0 before calling this function.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ <method name="uninit"
+ c:identifier="gst_sdp_message_uninit"
+ doc="Free all resources allocated in @msg. @msg should not be used anymore after
+this function. This function should be used when @msg was allocated on the
+stack and initialized with gst_sdp_message_init().">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ <method name="free"
+ c:identifier="gst_sdp_message_free"
+ doc="Free all resources allocated by @msg. @msg should not be used anymore after
+this function. This function should be used when @msg was dynamically
+allocated with gst_sdp_message_new().">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ <method name="as_text"
+ c:identifier="gst_sdp_message_as_text"
+ doc="Convert the contents of @msg to a text string.">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="get_version"
+ c:identifier="gst_sdp_message_get_version"
+ doc="Get the version in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_version"
+ c:identifier="gst_sdp_message_set_version"
+ doc="Set the version in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="version" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_origin"
+ c:identifier="gst_sdp_message_get_origin"
+ doc="Get the origin of @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPOrigin" c:type="GstSDPOrigin*"/>
+ </return-value>
+ </method>
+ <method name="set_origin"
+ c:identifier="gst_sdp_message_set_origin"
+ doc="Configure the SDP origin in @msg with the given parameters.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="username" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="sess_id" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="sess_version" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="nettype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="addrtype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="addr" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_session_name"
+ c:identifier="gst_sdp_message_get_session_name"
+ doc="Get the session name in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_session_name"
+ c:identifier="gst_sdp_message_set_session_name"
+ doc="Set the session name in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="session_name" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_information"
+ c:identifier="gst_sdp_message_get_information"
+ doc="Get the information in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_information"
+ c:identifier="gst_sdp_message_set_information"
+ doc="Set the information in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="information" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_uri"
+ c:identifier="gst_sdp_message_get_uri"
+ doc="Get the URI in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ </method>
+ <method name="set_uri"
+ c:identifier="gst_sdp_message_set_uri"
+ doc="Set the URI in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="uri" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="emails_len"
+ c:identifier="gst_sdp_message_emails_len"
+ doc="Get the number of emails in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_email"
+ c:identifier="gst_sdp_message_get_email"
+ doc="Get the email with number @idx from @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_email"
+ c:identifier="gst_sdp_message_add_email"
+ doc="Add @email to the list of emails in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="email" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="phones_len"
+ c:identifier="gst_sdp_message_phones_len"
+ doc="Get the number of phones in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_phone"
+ c:identifier="gst_sdp_message_get_phone"
+ doc="Get the phone with number @idx from @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_phone"
+ c:identifier="gst_sdp_message_add_phone"
+ doc="Add @phone to the list of phones in @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="phone" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_connection"
+ c:identifier="gst_sdp_message_get_connection"
+ doc="Get the connection of @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPConnection" c:type="GstSDPConnection*"/>
+ </return-value>
+ </method>
+ <method name="set_connection"
+ c:identifier="gst_sdp_message_set_connection"
+ doc=""Internet".
+Configure the SDP connection in @msg with the given parameters.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="nettype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="addrtype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="address" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="ttl" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="addr_number" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="bandwidths_len"
+ c:identifier="gst_sdp_message_bandwidths_len"
+ doc="Get the number of bandwidth information in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_bandwidth"
+ c:identifier="gst_sdp_message_get_bandwidth"
+ doc="Get the bandwidth at index @idx from @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_bandwidth"
+ c:identifier="gst_sdp_message_add_bandwidth"
+ doc="Add the specified bandwidth information to @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="bwtype" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="bandwidth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="times_len"
+ c:identifier="gst_sdp_message_times_len"
+ doc="Get the number of time information entries in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_time"
+ c:identifier="gst_sdp_message_get_time"
+ doc="Get time information with index @idx from @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPTime" c:type="GstSDPTime*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_time"
+ c:identifier="gst_sdp_message_add_time"
+ doc="Add time information @start and @stop to @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="start" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="stop" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="repeat" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="zones_len"
+ c:identifier="gst_sdp_message_zones_len"
+ doc="Get the number of time zone information entries in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_zone"
+ c:identifier="gst_sdp_message_get_zone"
+ doc="Get time zone information with index @idx from @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPZone" c:type="GstSDPZone*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_zone"
+ c:identifier="gst_sdp_message_add_zone"
+ doc="Add time zone information to @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="adj_time" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="typed_time" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_key"
+ c:identifier="gst_sdp_message_get_key"
+ doc="Get the encryption information from @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPKey" c:type="GstSDPKey*"/>
+ </return-value>
+ </method>
+ <method name="set_key"
+ c:identifier="gst_sdp_message_set_key"
+ doc="Adds the encryption information to @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="data" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="attributes_len"
+ c:identifier="gst_sdp_message_attributes_len"
+ doc="Get the number of attributes in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_attribute"
+ c:identifier="gst_sdp_message_get_attribute"
+ doc="Get the attribute at position @idx in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPAttribute" c:type="GstSDPAttribute*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_attribute_val"
+ c:identifier="gst_sdp_message_get_attribute_val"
+ doc="Get the first attribute with key @key in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_attribute_val_n"
+ c:identifier="gst_sdp_message_get_attribute_val_n"
+ doc="Get the @nth attribute with key @key in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="nth" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_attribute"
+ c:identifier="gst_sdp_message_add_attribute"
+ doc="Add the attribute with @key and @value to @msg.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="key" 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="medias_len"
+ c:identifier="gst_sdp_message_medias_len"
+ doc="Get the number of media descriptions in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </method>
+ <method name="get_media"
+ c:identifier="gst_sdp_message_get_media"
+ doc="Get the media description at index @idx in @msg.">
+ <return-value transfer-ownership="none">
+ <type name="SDPMedia" c:type="GstSDPMedia*"/>
+ </return-value>
+ <parameters>
+ <parameter name="idx" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="add_media"
+ c:identifier="gst_sdp_message_add_media"
+ doc="Adds @media to the array of medias in @msg. This function takes ownership of
+the contents of @media so that @media will have to be reinitialized with
+gst_media_init() before it can be used again.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="media" transfer-ownership="none">
+ <type name="SDPMedia" c:type="GstSDPMedia*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="dump"
+ c:identifier="gst_sdp_message_dump"
+ doc="Dump the parsed contents of @msg to stdout.">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ </method>
+ </record>
+ <record name="SDPOrigin"
+ c:type="GstSDPOrigin"
+ doc="if the originating host does not support the concept of user ids.
+session.
+"Internet".
+created.
+The contents of the SDP "o=" field which gives the originator of the session
+(their username and the address of the user's host) plus a session id and
+session version number.">
+ <field name="username" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="sess_id" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="sess_version" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="nettype" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="addrtype" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="addr" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ </record>
+ <enumeration name="SDPResult"
+ doc="Return values for the SDP functions."
+ c:type="GstSDPResult">
+ <member name="ok" value="0" c:identifier="GST_SDP_OK"/>
+ <member name="einval" value="-1" c:identifier="GST_SDP_EINVAL"/>
+ </enumeration>
+ <record name="SDPTime"
+ c:type="GstSDPTime"
+ doc="representation of Network Time Protocol (NTP) time values in seconds
+representation of Network Time Protocol (NTP) time values in seconds
+The contents of the SDP "t=" field which specify the start and stop times for
+a conference session.">
+ <field name="start" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="stop" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="repeat" writable="1">
+ <type name="GLib.Array" c:type="GArray*"/>
+ </field>
+ </record>
+ <record name="SDPZone"
+ c:type="GstSDPZone"
+ doc="The contents of the SDP "z=" field which allows the sender to
+specify a list of time zone adjustments and offsets from the base
+time.">
+ <field name="time" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ <field name="typed_time" writable="1">
+ <type name="utf8" c:type="gchar*"/>
+ </field>
+ </record>
+ <function name="message_parse_buffer"
+ c:identifier="gst_sdp_message_parse_buffer"
+ doc="Parse the contents of @size bytes pointed to by @data and store the result in">
+ <return-value transfer-ownership="full">
+ <type name="SDPResult" c:type="GstSDPResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="msg" transfer-ownership="none">
+ <type name="SDPMessage" c:type="GstSDPMessage*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi ;
+IN: gstreamer.sdp.ffi
+
+<<
+"gstreamer.sdp" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstsdp-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/sdp/GstSdp-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.sdp.ffi ;
+IN: gstreamer.sdp
+
--- /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="Gst" version="0.10"/>
+ <include name="GstBase" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-base-0.10"/>
+ <namespace name="GstTag"
+ version="0.10"
+ shared-library="libgsttag-0.10.so.0"
+ c:prefix="Gst">
+ <constant name="CDDA_CDDB_DISCID" value="discid">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CDDA_CDDB_DISCID_FULL" value="discid-full">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CDDA_MUSICBRAINZ_DISCID" value="musicbrainz-discid">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CDDA_MUSICBRAINZ_DISCID_FULL"
+ value="musicbrainz-discid-full">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CMML_CLIP" value="cmml-clip">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CMML_HEAD" value="cmml-head">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CMML_STREAM" value="cmml-stream">
+ <type name="utf8"/>
+ </constant>
+ <constant name="MUSICBRAINZ_ALBUMARTISTID"
+ value="musicbrainz-albumartistid">
+ <type name="utf8"/>
+ </constant>
+ <constant name="MUSICBRAINZ_ALBUMID" value="musicbrainz-albumid">
+ <type name="utf8"/>
+ </constant>
+ <constant name="MUSICBRAINZ_ARTISTID" value="musicbrainz-artistid">
+ <type name="utf8"/>
+ </constant>
+ <constant name="MUSICBRAINZ_TRACKID" value="musicbrainz-trackid">
+ <type name="utf8"/>
+ </constant>
+ <constant name="MUSICBRAINZ_TRMID" value="musicbrainz-trmid">
+ <type name="utf8"/>
+ </constant>
+ <class name="TagDemux"
+ c:type="GstTagDemux"
+ doc="Opaque #GstTagDemux structure."
+ version="0.10.15"
+ parent="Gst.Element"
+ abstract="1"
+ glib:type-name="GstTagDemux"
+ glib:get-type="gst_tag_demux_get_type"
+ glib:type-struct="TagDemuxClass">
+ <virtual-method name="identify_tag">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start_tag" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="tag_size" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="parse_tag">
+ <return-value transfer-ownership="full">
+ <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start_tag" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="tag_size" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="tags" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList**"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="merge_tags">
+ <return-value transfer-ownership="full">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="start_tags" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="end_tags" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <field name="element">
+ <type name="Gst.Element" c:type="GstElement"/>
+ </field>
+ <field name="priv">
+ <type name="TagDemuxPrivate" c:type="GstTagDemuxPrivate*"/>
+ </field>
+ <field name="reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="TagDemuxClass"
+ c:type="GstTagDemuxClass"
+ glib:is-gtype-struct-for="TagDemux"
+ doc="determine its total size. Set to 0 if not interested in start tags.
+Subclasses should set this in their class_init function.
+determine its total size. Set to 0 if not interested in end tags.
+Subclasses should set this in their class_init function.
+tag. Buffer may be larger than the specified minimum size.
+Subclassed MUST override this vfunc in their class_init function.
+the identify_tag vfunc before. The parse_tag vfunc may change the size
+stored in *tag_size and return GST_TAG_DEMUX_RESULT_AGAIN to request a
+larger or smaller buffer. It is also permitted to adjust the tag_size to a
+smaller value and then return GST_TAG_DEMUX_RESULT_OK in one go.
+Subclassed MUST override the parse_tag vfunc in their class_init function.
+vfunc to allow prioritising of start or end tag according to user
+preference. Note that both start_tags and end_tags may be NULL. By default
+start tags are prefered over end tags.
+The #GstTagDemuxClass structure. See documentation at beginning of section
+for details about what subclasses need to override and do."
+ version="0.10.15">
+ <field name="parent_class">
+ <type name="Gst.ElementClass" c:type="GstElementClass"/>
+ </field>
+ <field name="min_start_size">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="min_end_size">
+ <type name="uint" c:type="guint"/>
+ </field>
+ <field name="identify_tag">
+ <callback name="identify_tag" c:type="identify_tag">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="demux" transfer-ownership="none">
+ <type name="TagDemux" c:type="GstTagDemux*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start_tag" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="tag_size"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="parse_tag">
+ <callback name="parse_tag" c:type="parse_tag">
+ <return-value transfer-ownership="full">
+ <type name="TagDemuxResult" c:type="GstTagDemuxResult"/>
+ </return-value>
+ <parameters>
+ <parameter name="demux" transfer-ownership="none">
+ <type name="TagDemux" c:type="GstTagDemux*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="start_tag" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ <parameter name="tag_size"
+ direction="out"
+ transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="tags" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList**"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="merge_tags">
+ <callback name="merge_tags" c:type="merge_tags">
+ <return-value transfer-ownership="full">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="demux" transfer-ownership="none">
+ <type name="TagDemux" c:type="GstTagDemux*"/>
+ </parameter>
+ <parameter name="start_tags" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="end_tags" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="any"/>
+ </array>
+ </field>
+ </record>
+ <record name="TagDemuxPrivate" c:type="GstTagDemuxPrivate">
+ </record>
+ <enumeration name="TagDemuxResult"
+ doc="Result values from the parse_tag virtual function."
+ version="0.10.15"
+ glib:type-name="GstTagDemuxResult"
+ glib:get-type="gst_tag_demux_result_get_type"
+ c:type="GstTagDemuxResult">
+ <member name="broken_tag"
+ value="0"
+ c:identifier="GST_TAG_DEMUX_RESULT_BROKEN_TAG"
+ glib:nick="broken-tag"/>
+ <member name="again"
+ value="1"
+ c:identifier="GST_TAG_DEMUX_RESULT_AGAIN"
+ glib:nick="again"/>
+ <member name="ok"
+ value="2"
+ c:identifier="GST_TAG_DEMUX_RESULT_OK"
+ glib:nick="ok"/>
+ </enumeration>
+ <enumeration name="TagImageType"
+ doc="tell functions such as gst_tag_image_data_to_image_buffer() that no
+Type of image contained in an image tag (specified as field in
+the image buffer's caps structure)"
+ version="0.10.9"
+ glib:type-name="GstTagImageType"
+ glib:get-type="gst_tag_image_type_get_type"
+ c:type="GstTagImageType">
+ <member name="none"
+ value="-1"
+ c:identifier="GST_TAG_IMAGE_TYPE_NONE"
+ glib:nick="none"/>
+ <member name="undefined"
+ value="0"
+ c:identifier="GST_TAG_IMAGE_TYPE_UNDEFINED"
+ glib:nick="undefined"/>
+ <member name="front_cover"
+ value="1"
+ c:identifier="GST_TAG_IMAGE_TYPE_FRONT_COVER"
+ glib:nick="front-cover"/>
+ <member name="back_cover"
+ value="2"
+ c:identifier="GST_TAG_IMAGE_TYPE_BACK_COVER"
+ glib:nick="back-cover"/>
+ <member name="leaflet_page"
+ value="3"
+ c:identifier="GST_TAG_IMAGE_TYPE_LEAFLET_PAGE"
+ glib:nick="leaflet-page"/>
+ <member name="medium"
+ value="4"
+ c:identifier="GST_TAG_IMAGE_TYPE_MEDIUM"
+ glib:nick="medium"/>
+ <member name="lead_artist"
+ value="5"
+ c:identifier="GST_TAG_IMAGE_TYPE_LEAD_ARTIST"
+ glib:nick="lead-artist"/>
+ <member name="artist"
+ value="6"
+ c:identifier="GST_TAG_IMAGE_TYPE_ARTIST"
+ glib:nick="artist"/>
+ <member name="conductor"
+ value="7"
+ c:identifier="GST_TAG_IMAGE_TYPE_CONDUCTOR"
+ glib:nick="conductor"/>
+ <member name="band_orchestra"
+ value="8"
+ c:identifier="GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA"
+ glib:nick="band-orchestra"/>
+ <member name="composer"
+ value="9"
+ c:identifier="GST_TAG_IMAGE_TYPE_COMPOSER"
+ glib:nick="composer"/>
+ <member name="lyricist"
+ value="10"
+ c:identifier="GST_TAG_IMAGE_TYPE_LYRICIST"
+ glib:nick="lyricist"/>
+ <member name="recording_location"
+ value="11"
+ c:identifier="GST_TAG_IMAGE_TYPE_RECORDING_LOCATION"
+ glib:nick="recording-location"/>
+ <member name="during_recording"
+ value="12"
+ c:identifier="GST_TAG_IMAGE_TYPE_DURING_RECORDING"
+ glib:nick="during-recording"/>
+ <member name="during_performance"
+ value="13"
+ c:identifier="GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE"
+ glib:nick="during-performance"/>
+ <member name="video_capture"
+ value="14"
+ c:identifier="GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE"
+ glib:nick="video-capture"/>
+ <member name="fish"
+ value="15"
+ c:identifier="GST_TAG_IMAGE_TYPE_FISH"
+ glib:nick="fish"/>
+ <member name="illustration"
+ value="16"
+ c:identifier="GST_TAG_IMAGE_TYPE_ILLUSTRATION"
+ glib:nick="illustration"/>
+ <member name="artist_logo"
+ value="17"
+ c:identifier="GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO"
+ glib:nick="artist-logo"/>
+ <member name="publisher_studio_logo"
+ value="18"
+ c:identifier="GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO"
+ glib:nick="publisher-studio-logo"/>
+ </enumeration>
+ <function name="freeform_string_to_utf8"
+ c:identifier="gst_tag_freeform_string_to_utf8"
+ doc="or NULL
+Convenience function to read a string with unknown character encoding. If
+the string is already in UTF-8 encoding, it will be returned right away.
+If not it tries to detect byte-order-mark for UTF-16/32 cases and use that.
+Otherwise, the environment will be searched for a number of environment
+variables (whose names are specified in the NULL-terminated string array
+are specified, the current locale will be tried. If that also doesn't work,
+ISO-8859-1 is assumed (which will almost always succeed)."
+ version="0.10.13">
+ <return-value transfer-ownership="full">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="size" transfer-ownership="none">
+ <type name="int" c:type="gint"/>
+ </parameter>
+ <parameter name="env_vars" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="from_id3_tag"
+ c:identifier="gst_tag_from_id3_tag"
+ doc="Looks up the GStreamer tag for a ID3v2 tag.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id3_tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="from_id3_user_tag"
+ c:identifier="gst_tag_from_id3_user_tag"
+ doc="Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in
+TXXX frame or owner in UFID frame).">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="type" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="id3_user_tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="from_vorbis_tag"
+ c:identifier="gst_tag_from_vorbis_tag"
+ doc="Looks up the GStreamer tag for a vorbiscomment tag.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="vorbis_tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_language_code_iso_639_1"
+ c:identifier="gst_tag_get_language_code_iso_639_1"
+ doc="Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2
+language code or two-letter ISO-639-1 language code (both are accepted for
+convenience).
+Language codes are case-sensitive and expected to be lower case.
+or NULL if no mapping is known. The returned string must not be
+modified or freed."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="lang_code" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_language_code_iso_639_2B"
+ c:identifier="gst_tag_get_language_code_iso_639_2B"
+ doc="Returns three-letter ISO-639-2 "bibliographic" language code given a
+two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
+code (both are accepted for convenience).
+The "bibliographic" code is derived from the English name of the language
+(e.g. "ger" for German instead of "de" or "deu"). In most scenarios, the
+"terminological" codes are prefered.
+Language codes are case-sensitive and expected to be lower case.
+or NULL if no mapping is known. The returned string must not be
+modified or freed."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="lang_code" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_language_code_iso_639_2T"
+ c:identifier="gst_tag_get_language_code_iso_639_2T"
+ doc="Returns three-letter ISO-639-2 "terminological" language code given a
+two-letter ISO-639-1 language code or a three-letter ISO-639-2 language
+code (both are accepted for convenience).
+The "terminological" code is derived from the local name of the language
+(e.g. "deu" for German instead of "ger"). In most scenarios, the
+"terminological" codes are prefered over the "bibliographic" ones.
+Language codes are case-sensitive and expected to be lower case.
+or NULL if no mapping is known. The returned string must not be
+modified or freed."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="lang_code" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_language_codes"
+ c:identifier="gst_tag_get_language_codes"
+ doc="Returns a list of known language codes (in form of two-letter ISO-639-1
+codes). This is useful for UIs to build a list of available languages for
+tagging purposes (e.g. to tag an audio track appropriately in a video or
+audio editor).
+with g_strfreev() when no longer needed."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </return-value>
+ </function>
+ <function name="get_language_name"
+ c:identifier="gst_tag_get_language_name"
+ doc="Returns the name of the language given an ISO-639 language code, such
+as often found in a GST_TAG_LANGUAGE tag. The name will be translated
+according to the current locale (if the library was built against the
+iso-codes package, otherwise the English name will be returned).
+Language codes are case-sensitive and expected to be lower case.
+not be mapped to a language name. The returned string must not be
+modified and does not need to freed; it will stay valid until the
+application is terminated."
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="language_code" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="id3_genre_count"
+ c:identifier="gst_tag_id3_genre_count"
+ doc="Gets the number of ID3v1 genres that can be identified. Winamp genres are
+included.">
+ <return-value transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </return-value>
+ </function>
+ <function name="id3_genre_get"
+ c:identifier="gst_tag_id3_genre_get"
+ doc="Gets the ID3v1 genre name for a given ID.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="id" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="image_data_to_image_buffer"
+ c:identifier="gst_tag_image_data_to_image_buffer"
+ doc="#GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g.
+for preview images)
+Helper function for tag-reading plugins to create a #GstBuffer suitable to
+add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or
+#GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image
+type.
+blob of binary image data, often accompanied by a MIME type or some other
+content type string (e.g. 'png', 'jpeg', 'jpg'). Sometimes there is also an
+'image type' to indicate what kind of image this is (e.g. front cover,
+back cover, artist, etc.). The image data may also be an URI to the image
+rather than the image itself.
+In GStreamer, image tags are #GstBuffer<!-- -->s containing the raw image
+data, with the buffer caps describing the content type of the image
+(e.g. image/jpeg, image/png, text/uri-list). The buffer caps may contain
+an additional 'image-type' field of #GST_TYPE_TAG_IMAGE_TYPE to describe
+the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE
+tags should not carry an image type, their type is already indicated via
+the special tag name.
+This function will do various checks and typefind the encoded image
+data (we can't trust the declared mime type)."
+ version="0.10.20">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="image_data" transfer-ownership="none" doc="image">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="image_data_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="image_type" transfer-ownership="none">
+ <type name="TagImageType" c:type="GstTagImageType"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_add_id3_image"
+ c:identifier="gst_tag_list_add_id3_image"
+ doc="the APIC frame (0 = unknown/other)
+Adds an image from an ID3 APIC frame (or similar, such as used in FLAC)
+to the given tag list. Also see gst_tag_image_data_to_image_buffer() for
+more information on image tags in GStreamer."
+ version="0.10.20">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="tag_list" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="image_data" transfer-ownership="none" doc="image">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="image_data_len" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="id3_picture_type"
+ transfer-ownership="none"
+ doc="specification for">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_from_vorbiscomment_buffer"
+ c:identifier="gst_tag_list_from_vorbiscomment_buffer"
+ doc="of this vorbis comment or NULL if you don't need it.
+Creates a new tag list that contains the information parsed out of a
+vorbiscomment packet.
+given vorbiscomment buffer or NULL on error.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ <parameter name="id_data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="id_data_length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="vendor_string" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_from_xmp_buffer"
+ c:identifier="gst_tag_list_from_xmp_buffer"
+ doc="Parse a xmp packet into a taglist."
+ version="0.10.29">
+ <return-value transfer-ownership="full">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_new_from_id3v1"
+ c:identifier="gst_tag_list_new_from_id3v1"
+ doc="Parses the data containing an ID3v1 tag and returns a #GstTagList from the
+parsed data.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_to_vorbiscomment_buffer"
+ c:identifier="gst_tag_list_to_vorbiscomment_buffer"
+ doc="Creates a new vorbiscomment buffer from a tag list.
+that could be converted from the given tag list.">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="id_data" transfer-ownership="none">
+ <array c:type="guint8*">
+ <type name="uint8"/>
+ </array>
+ </parameter>
+ <parameter name="id_data_length" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="vendor_string" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="list_to_xmp_buffer"
+ c:identifier="gst_tag_list_to_xmp_buffer"
+ doc="Formats a taglist as a xmp packet."
+ version="0.10.29">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="read_only" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_extended_comment"
+ c:identifier="gst_tag_parse_extended_comment"
+ doc="Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and
+separate it into its components.
+If successful, @key, @lang and/or @value will be set to newly allocated
+strings that you need to free with g_free() when done. @key and @lang
+may also be set to NULL by this function if there is no key or no language
+code in the extended comment string."
+ version="0.10.10">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="ext_comment" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="key" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="lang" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="value" transfer-ownership="none">
+ <array c:type="gchar**">
+ <type name="utf8"/>
+ </array>
+ </parameter>
+ <parameter name="fail_if_no_key" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="register_musicbrainz_tags"
+ c:identifier="gst_tag_register_musicbrainz_tags">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </function>
+ <function name="to_id3_tag"
+ c:identifier="gst_tag_to_id3_tag"
+ doc="Looks up the ID3v2 tag for a GStreamer tag.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="gst_tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="to_vorbis_comments"
+ c:identifier="gst_tag_to_vorbis_comments"
+ doc="Creates a new tag list that contains the information parsed out of a
+vorbiscomment packet.
+g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)">
+ <return-value transfer-ownership="full">
+ <type name="GLib.List" c:type="GList*"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="to_vorbis_tag"
+ c:identifier="gst_tag_to_vorbis_tag"
+ doc="Looks up the vorbiscomment tag for a GStreamer tag.">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </return-value>
+ <parameters>
+ <parameter name="gst_tag" transfer-ownership="none">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="vorbis_tag_add"
+ c:identifier="gst_vorbis_tag_add"
+ doc="Convenience function using gst_tag_from_vorbis_tag(), parsing
+a vorbis comment string into the right type and adding it to the
+given taglist @list.
+Unknown vorbiscomment tags will be added to the tag list in form
+of a #GST_TAG_EXTENDED_COMMENT (since 0.10.10 at least).">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="list" transfer-ownership="none">
+ <type name="Gst.TagList" c:type="GstTagList*"/>
+ </parameter>
+ <parameter name="tag"
+ transfer-ownership="none"
+ doc="must be valid UTF-8">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ <parameter name="value"
+ transfer-ownership="none"
+ doc="must be valid UTF-8">
+ <type name="utf8" c:type="gchar*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.libraries combinators kernel system
+gobject-introspection glib.ffi gstreamer.ffi ;
+IN: gstreamer.tag.ffi
+
+<<
+"gstreamer.tag" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgsttag-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+GIR: vocab:gstreamer/tag/GstTag-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.tag.ffi ;
+IN: gstreamer.tag
+
--- /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="Gst" version="0.10"/>
+ <include name="GstBase" version="0.10"/>
+ <include name="libxml2" version="2.0"/>
+ <package name="gstreamer-0.10"/>
+ <package name="gstreamer-base-0.10"/>
+ <c:include name="gst/video/gstvideofilter.h"/>
+ <c:include name="gst/video/gstvideosink.h"/>
+ <c:include name="gst/video/video-enumtypes.h"/>
+ <c:include name="gst/video/video.h"/>
+ <namespace name="GstVideo"
+ version="0.10"
+ shared-library="libgstvideo-0.10.so.0"
+ c:prefix="Gst">
+ <constant name="BLUE_MASK_15" value="0x001f">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BLUE_MASK_15_INT" value="31">
+ <type name="int"/>
+ </constant>
+ <constant name="BLUE_MASK_16" value="0x001f">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BLUE_MASK_16_INT" value="31">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE1_MASK_24" value="0x00FF0000">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE1_MASK_24_INT" value="16711680">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE1_MASK_32" value="0xFF000000">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE1_MASK_32_INT" value="-16777216">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE2_MASK_24" value="0x0000FF00">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE2_MASK_24_INT" value="65280">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE2_MASK_32" value="0x00FF0000">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE2_MASK_32_INT" value="16711680">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE3_MASK_24" value="0x000000FF">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE3_MASK_24_INT" value="255">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE3_MASK_32" value="0x0000FF00">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE3_MASK_32_INT" value="65280">
+ <type name="int"/>
+ </constant>
+ <constant name="BYTE4_MASK_32" value="0x000000FF">
+ <type name="utf8"/>
+ </constant>
+ <constant name="BYTE4_MASK_32_INT" value="255">
+ <type name="int"/>
+ </constant>
+ <constant name="CAPS_GRAY8"
+ value="video/x-raw-gray, bpp = (int) 8, depth = (int) 8, width = ">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CAPS_RGB_15"
+ value="video/x-raw-rgb, bpp = (int) 16, depth = (int) 15, endianness = (int) BYTE_ORDER, red_mask = (int) ">
+ <type name="utf8"/>
+ </constant>
+ <constant name="CAPS_RGB_16"
+ value="video/x-raw-rgb, bpp = (int) 16, depth = (int) 16, endianness = (int) BYTE_ORDER, red_mask = (int) ">
+ <type name="utf8"/>
+ </constant>
+ <constant name="FPS_RANGE" value="(fraction) [ 0, max ]">
+ <type name="utf8"/>
+ </constant>
+ <constant name="GREEN_MASK_15" value="0x03e0">
+ <type name="utf8"/>
+ </constant>
+ <constant name="GREEN_MASK_15_INT" value="992">
+ <type name="int"/>
+ </constant>
+ <constant name="GREEN_MASK_16" value="0x07e0">
+ <type name="utf8"/>
+ </constant>
+ <constant name="GREEN_MASK_16_INT" value="2016">
+ <type name="int"/>
+ </constant>
+ <constant name="RED_MASK_15" value="0x7c00">
+ <type name="utf8"/>
+ </constant>
+ <constant name="RED_MASK_15_INT" value="31744">
+ <type name="int"/>
+ </constant>
+ <constant name="RED_MASK_16" value="0xf800">
+ <type name="utf8"/>
+ </constant>
+ <constant name="RED_MASK_16_INT" value="63488">
+ <type name="int"/>
+ </constant>
+ <constant name="SIZE_RANGE" value="(int) [ 1, max ]">
+ <type name="utf8"/>
+ </constant>
+ <class name="VideoFilter"
+ c:type="GstVideoFilter"
+ parent="GstBase.BaseTransform"
+ abstract="1"
+ glib:type-name="GstVideoFilter"
+ glib:get-type="gst_video_filter_get_type"
+ glib:type-struct="VideoFilterClass">
+ <field name="element">
+ <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
+ </field>
+ <field name="inited">
+ <type name="boolean" c:type="gboolean"/>
+ </field>
+ </class>
+ <record name="VideoFilterClass"
+ c:type="GstVideoFilterClass"
+ glib:is-gtype-struct-for="VideoFilter">
+ <field name="parent_class">
+ <type name="GstBase.BaseTransformClass"
+ c:type="GstBaseTransformClass"/>
+ </field>
+ </record>
+ <enumeration name="VideoFormat"
+ doc="Enum value describing the most common video formats."
+ glib:type-name="GstVideoFormat"
+ glib:get-type="gst_video_format_get_type"
+ c:type="GstVideoFormat">
+ <member name="unknown"
+ value="0"
+ c:identifier="GST_VIDEO_FORMAT_UNKNOWN"
+ glib:nick="unknown"/>
+ <member name="i420"
+ value="1"
+ c:identifier="GST_VIDEO_FORMAT_I420"
+ glib:nick="i420"/>
+ <member name="yv12"
+ value="2"
+ c:identifier="GST_VIDEO_FORMAT_YV12"
+ glib:nick="yv12"/>
+ <member name="yuy2"
+ value="3"
+ c:identifier="GST_VIDEO_FORMAT_YUY2"
+ glib:nick="yuy2"/>
+ <member name="uyvy"
+ value="4"
+ c:identifier="GST_VIDEO_FORMAT_UYVY"
+ glib:nick="uyvy"/>
+ <member name="ayuv"
+ value="5"
+ c:identifier="GST_VIDEO_FORMAT_AYUV"
+ glib:nick="ayuv"/>
+ <member name="rgbx"
+ value="6"
+ c:identifier="GST_VIDEO_FORMAT_RGBx"
+ glib:nick="rgbx"/>
+ <member name="bgrx"
+ value="7"
+ c:identifier="GST_VIDEO_FORMAT_BGRx"
+ glib:nick="bgrx"/>
+ <member name="xrgb"
+ value="8"
+ c:identifier="GST_VIDEO_FORMAT_xRGB"
+ glib:nick="xrgb"/>
+ <member name="xbgr"
+ value="9"
+ c:identifier="GST_VIDEO_FORMAT_xBGR"
+ glib:nick="xbgr"/>
+ <member name="rgba"
+ value="10"
+ c:identifier="GST_VIDEO_FORMAT_RGBA"
+ glib:nick="rgba"/>
+ <member name="bgra"
+ value="11"
+ c:identifier="GST_VIDEO_FORMAT_BGRA"
+ glib:nick="bgra"/>
+ <member name="argb"
+ value="12"
+ c:identifier="GST_VIDEO_FORMAT_ARGB"
+ glib:nick="argb"/>
+ <member name="abgr"
+ value="13"
+ c:identifier="GST_VIDEO_FORMAT_ABGR"
+ glib:nick="abgr"/>
+ <member name="rgb"
+ value="14"
+ c:identifier="GST_VIDEO_FORMAT_RGB"
+ glib:nick="rgb"/>
+ <member name="bgr"
+ value="15"
+ c:identifier="GST_VIDEO_FORMAT_BGR"
+ glib:nick="bgr"/>
+ <member name="y41b"
+ value="16"
+ c:identifier="GST_VIDEO_FORMAT_Y41B"
+ glib:nick="y41b"/>
+ <member name="y42b"
+ value="17"
+ c:identifier="GST_VIDEO_FORMAT_Y42B"
+ glib:nick="y42b"/>
+ <member name="yvyu"
+ value="18"
+ c:identifier="GST_VIDEO_FORMAT_YVYU"
+ glib:nick="yvyu"/>
+ <member name="y444"
+ value="19"
+ c:identifier="GST_VIDEO_FORMAT_Y444"
+ glib:nick="y444"/>
+ <member name="v210"
+ value="20"
+ c:identifier="GST_VIDEO_FORMAT_v210"
+ glib:nick="v210"/>
+ <member name="v216"
+ value="21"
+ c:identifier="GST_VIDEO_FORMAT_v216"
+ glib:nick="v216"/>
+ <member name="nv12"
+ value="22"
+ c:identifier="GST_VIDEO_FORMAT_NV12"
+ glib:nick="nv12"/>
+ <member name="nv21"
+ value="23"
+ c:identifier="GST_VIDEO_FORMAT_NV21"
+ glib:nick="nv21"/>
+ <member name="gray8"
+ value="24"
+ c:identifier="GST_VIDEO_FORMAT_GRAY8"
+ glib:nick="gray8"/>
+ <member name="gray16_be"
+ value="25"
+ c:identifier="GST_VIDEO_FORMAT_GRAY16_BE"
+ glib:nick="gray16-be"/>
+ <member name="gray16_le"
+ value="26"
+ c:identifier="GST_VIDEO_FORMAT_GRAY16_LE"
+ glib:nick="gray16-le"/>
+ </enumeration>
+ <record name="VideoRectangle"
+ c:type="GstVideoRectangle"
+ doc="Helper structure representing a rectangular area.">
+ <field name="x" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="y" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="w" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="h" writable="1">
+ <type name="int" c:type="gint"/>
+ </field>
+ </record>
+ <class name="VideoSink"
+ c:type="GstVideoSink"
+ doc="The video sink instance structure. Derived video sinks should set the"
+ parent="GstBase.BaseSink"
+ glib:type-name="GstVideoSink"
+ glib:get-type="gst_video_sink_get_type"
+ glib:type-struct="VideoSinkClass">
+ <function name="center_rect"
+ c:identifier="gst_video_sink_center_rect"
+ doc="Takes @src rectangle and position it at the center of @dst rectangle with or
+without @scaling. It handles clipping if the @src rectangle is bigger than
+the @dst one and @scaling is set to FALSE.">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="src" transfer-ownership="none">
+ <type name="VideoRectangle" c:type="GstVideoRectangle"/>
+ </parameter>
+ <parameter name="dst" transfer-ownership="none">
+ <type name="VideoRectangle" c:type="GstVideoRectangle"/>
+ </parameter>
+ <parameter name="result" transfer-ownership="none">
+ <type name="VideoRectangle" c:type="GstVideoRectangle*"/>
+ </parameter>
+ <parameter name="scaling" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <virtual-method name="show_frame">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <property name="show-preroll-frame" writable="1" construct="1">
+ <type name="boolean" c:type="gboolean"/>
+ </property>
+ <field name="element">
+ <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+ </field>
+ <field name="width">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="height">
+ <type name="int" c:type="gint"/>
+ </field>
+ <field name="priv">
+ <type name="VideoSinkPrivate" c:type="GstVideoSinkPrivate*"/>
+ </field>
+ <field name="_gst_reserved">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="3">
+ <type name="any"/>
+ </array>
+ </field>
+ </class>
+ <record name="VideoSinkClass"
+ c:type="GstVideoSinkClass"
+ glib:is-gtype-struct-for="VideoSink"
+ doc="#GstBaseSink::preroll vfuncs. Rendering during preroll will be
+suppressed if the 'show-preroll-frame' property is set to #FALSE.
+The video sink class structure. Derived classes should override the"
+ version="0.10.25">
+ <field name="parent_class">
+ <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
+ </field>
+ <field name="show_frame">
+ <callback name="show_frame" c:type="show_frame">
+ <return-value transfer-ownership="full">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="video_sink" transfer-ownership="none">
+ <type name="VideoSink" c:type="GstVideoSink*"/>
+ </parameter>
+ <parameter name="buf" transfer-ownership="none">
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </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="VideoSinkPrivate" c:type="GstVideoSinkPrivate">
+ </record>
+ <function name="calculate_display_ratio"
+ c:identifier="gst_video_calculate_display_ratio"
+ doc="Given the Pixel Aspect Ratio and size of an input video frame, and the
+pixel aspect ratio of the intended display device, calculates the actual
+display ratio the video will be rendered with.
+dar_n and dar_d parameters.
+The return value is FALSE in the case of integer overflow or other error."
+ version="0.10.7">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="dar_n" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="dar_d" direction="out" transfer-ownership="full">
+ <type name="uint" c:type="guint*"/>
+ </parameter>
+ <parameter name="video_width" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="video_height" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="video_par_n" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="video_par_d" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="display_par_n" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ <parameter name="display_par_d" transfer-ownership="none">
+ <type name="uint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="event_new_still_frame"
+ c:identifier="gst_video_event_new_still_frame"
+ doc="Creates a new Still Frame event. If @in_still is %TRUE, then the event
+represents the start of a still frame sequence. If it is %FALSE, then
+the event ends a still frame sequence.
+To parse an event created by gst_video_event_new_still_frame() use
+gst_video_event_parse_still_frame()."
+ version="0.10.26">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </return-value>
+ <parameters>
+ <parameter name="in_still" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="event_parse_still_frame"
+ c:identifier="gst_video_event_parse_still_frame"
+ doc="Parse a #GstEvent, identify if it is a Still Frame event, and
+return the still-frame state from the event if it is.
+If the event represents the start of a still frame, the in_still
+variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
+in_still variable order to just check whether the event is a valid still-frame
+event.
+Create a still frame event using gst_video_event_new_still_frame()"
+ version="0.10.26">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="event" transfer-ownership="none">
+ <type name="Gst.Event" c:type="GstEvent*"/>
+ </parameter>
+ <parameter name="in_still" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_convert"
+ c:identifier="gst_video_format_convert"
+ doc="Converts among various #GstFormat types. This function handles
+GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For
+raw video, GST_FORMAT_DEFAULT corresponds to video frames. This
+function can be to handle pad queries of the type GST_QUERY_CONVERT."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="fps_n" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="fps_d" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="src_format" transfer-ownership="none">
+ <type name="Gst.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="Gst.Format" c:type="GstFormat"/>
+ </parameter>
+ <parameter name="dest_value" direction="out" transfer-ownership="full">
+ <type name="int64" c:type="gint64*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_from_fourcc"
+ c:identifier="gst_video_format_from_fourcc"
+ doc="Converts a FOURCC value into the corresponding #GstVideoFormat.
+If the FOURCC cannot be represented by #GstVideoFormat,
+#GST_VIDEO_FORMAT_UNKNOWN is returned."
+ version="0.10.16">
+ <return-value transfer-ownership="full">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </return-value>
+ <parameters>
+ <parameter name="fourcc" transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_component_height"
+ c:identifier="gst_video_format_get_component_height"
+ doc="Calculates the height of the component. See
+of the component index."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="component" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_component_offset"
+ c:identifier="gst_video_format_get_component_offset"
+ doc="Calculates the offset (in bytes) of the first pixel of the component
+with index @component. For packed formats, this will typically be a
+small integer (0, 1, 2, 3). For planar formats, this will be a
+(relatively) large offset to the beginning of the second or third
+component planes. See @gst_video_format_get_row_stride for a description
+of the component index."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="component" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_component_width"
+ c:identifier="gst_video_format_get_component_width"
+ doc="Calculates the width of the component. See
+of the component index."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="component" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_pixel_stride"
+ c:identifier="gst_video_format_get_pixel_stride"
+ doc="Calculates the pixel stride (number of bytes from one pixel to the
+pixel to its immediate left) for the video component with an index
+of @component. See @gst_video_format_get_row_stride for a description
+of the component index."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="component" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_row_stride"
+ c:identifier="gst_video_format_get_row_stride"
+ doc="Calculates the row stride (number of bytes from one row of pixels to
+the next) for the video component with an index of @component. For
+YUV video, Y, U, and V have component indices of 0, 1, and 2,
+respectively. For RGB video, R, G, and B have component indicies of
+0, 1, and 2, respectively. Alpha channels, if present, have a component
+index of 3. The @width parameter always represents the width of the
+video, not the component."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="component" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_get_size"
+ c:identifier="gst_video_format_get_size"
+ doc="Calculates the total number of bytes in the raw video format. This
+number should be used when allocating a buffer for raw video."
+ version="0.10.16">
+ <return-value transfer-ownership="none" doc="of raw video format">
+ <type name="int" c:type="int"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_has_alpha"
+ c:identifier="gst_video_format_has_alpha"
+ doc="Returns TRUE or FALSE depending on if the video format provides an
+alpha channel."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_is_gray"
+ c:identifier="gst_video_format_is_gray"
+ doc="Determine whether the video format is a grayscale format."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_is_rgb"
+ c:identifier="gst_video_format_is_rgb"
+ doc="Determine whether the video format is an RGB format."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_is_yuv"
+ c:identifier="gst_video_format_is_yuv"
+ doc="Determine whether the video format is a YUV format."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_new_caps"
+ c:identifier="gst_video_format_new_caps"
+ doc="Creates a new #GstCaps object based on the parameters provided."
+ version="0.10.16">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="framerate_n" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="framerate_d" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="par_n" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="par_d" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_new_caps_interlaced"
+ c:identifier="gst_video_format_new_caps_interlaced"
+ doc="Creates a new #GstCaps object based on the parameters provided."
+ version="0.10.23">
+ <return-value transfer-ownership="full">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ <parameter name="width" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="height" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="framerate_n" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="framerate_d" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="par_n" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="par_d" transfer-ownership="none">
+ <type name="int" c:type="int"/>
+ </parameter>
+ <parameter name="interlaced" transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_parse_caps"
+ c:identifier="gst_video_format_parse_caps"
+ doc="Determines the #GstVideoFormat of @caps and places it in the location
+pointed to by @format. Extracts the size of the video and places it
+in the location pointed to by @width and @height. If @caps does not
+represent one of the raw video formats listed in #GstVideoFormat, the
+function will fail and return FALSE."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat*"/>
+ </parameter>
+ <parameter name="width" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="height" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_parse_caps_interlaced"
+ c:identifier="gst_video_format_parse_caps_interlaced"
+ doc="Extracts whether the caps represents interlaced content or not and places it
+in @interlaced."
+ version="0.10.23">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="interlaced" direction="out" transfer-ownership="full">
+ <type name="boolean" c:type="gboolean*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="format_to_fourcc"
+ c:identifier="gst_video_format_to_fourcc"
+ doc="Converts a #GstVideoFormat value into the corresponding FOURCC. Only
+a few YUV formats have corresponding FOURCC values. If @format has
+no corresponding FOURCC value, 0 is returned."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="uint32" c:type="guint32"/>
+ </return-value>
+ <parameters>
+ <parameter name="format" transfer-ownership="none">
+ <type name="VideoFormat" c:type="GstVideoFormat"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="frame_rate"
+ c:identifier="gst_video_frame_rate"
+ doc="A convenience function to retrieve a GValue holding the framerate
+from the caps on a pad.
+The pad needs to have negotiated caps containing a framerate property.
+do not contain a framerate.">
+ <return-value transfer-ownership="none">
+ <type name="GObject.Value" c:type="GValue*"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="get_size"
+ c:identifier="gst_video_get_size"
+ doc="Inspect the caps of the provided pad and retrieve the width and height of
+the video frames it is configured for.
+The pad needs to have negotiated caps containing width and height properties.">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="pad" transfer-ownership="none">
+ <type name="Gst.Pad" c:type="GstPad*"/>
+ </parameter>
+ <parameter name="width" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ <parameter name="height" direction="out" transfer-ownership="full">
+ <type name="int" c:type="gint*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_caps_chroma_site"
+ c:identifier="gst_video_parse_caps_chroma_site"
+ doc="Extracts the chroma site used by the caps. Possible values are
+"mpeg2" for MPEG-2 style chroma siting (co-sited horizontally,
+halfway-sited vertically), "jpeg" for JPEG and Theora style
+chroma siting (halfway-sited both horizontally and vertically).
+Other chroma site values are possible, but uncommon.
+When no chroma site is specified in the caps, it should be assumed
+to be "mpeg2".
+determined."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_caps_color_matrix"
+ c:identifier="gst_video_parse_caps_color_matrix"
+ doc="Extracts the color matrix used by the caps. Possible values are
+"sdtv" for the standard definition color matrix (as specified in
+Rec. ITU-R BT.470-6) or "hdtv" for the high definition color
+matrix (as specified in Rec. ITU-R BT.709)
+determined."
+ version="0.10.29">
+ <return-value transfer-ownership="none">
+ <type name="utf8" c:type="char*"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_caps_framerate"
+ c:identifier="gst_video_parse_caps_framerate"
+ doc="Extracts the frame rate from @caps and places the values in the locations
+pointed to by @fps_n and @fps_d. Returns TRUE if the values could be
+parsed correctly, FALSE if not.
+This function can be used with #GstCaps that have any media type; it
+is not limited to formats handled by #GstVideoFormat."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="fps_n" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="fps_d" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </function>
+ <function name="parse_caps_pixel_aspect_ratio"
+ c:identifier="gst_video_parse_caps_pixel_aspect_ratio"
+ doc="Extracts the pixel aspect ratio from @caps and places the values in
+the locations pointed to by @par_n and @par_d. Returns TRUE if the
+values could be parsed correctly, FALSE if not.
+This function can be used with #GstCaps that have any media type; it
+is not limited to formats handled by #GstVideoFormat."
+ version="0.10.16">
+ <return-value transfer-ownership="none">
+ <type name="boolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="caps" transfer-ownership="none">
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </parameter>
+ <parameter name="par_n" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ <parameter name="par_d" direction="out" transfer-ownership="full">
+ <type name="int" c:type="int*"/>
+ </parameter>
+ </parameters>
+ </function>
+ </namespace>
+</repository>
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: alien alien.c-types alien.libraries combinators kernel
+system
+gobject-introspection glib.ffi gobject.ffi gstreamer.ffi ;
+IN: gstreamer.video.ffi
+
+<<
+"gstreamer.video" {
+ { [ os winnt? ] [ drop ] }
+ { [ os macosx? ] [ drop ] }
+ { [ os unix? ] [ "libgstvideo-0.10.so" cdecl add-library ] }
+} cond
+>>
+
+IMPLEMENT-STRUCTS: GstVideoRectangle ;
+
+GIR: vocab:gstreamer/video/GstVideo-0.10.gir
+
--- /dev/null
+! Copyright (C) 2010 Anton Gorenko.
+! See http://factorcode.org/license.txt for BSD license.
+USING: gstreamer.video.ffi ;
+IN: gstreamer.video
+