gstreamer: add gstreamer.* vocabs

db4
Anton Gorenko 2010-07-23 23:17:07 +06:00
parent e70e2ca073
commit a8fb2494ee
49 changed files with 25203 additions and 0 deletions

View File

@ -0,0 +1,951 @@
<?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 &quot;new-preroll&quot; and &quot;new-buffer&quot; 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 &quot;new-preroll&quot; and &quot;new-buffer&quot; 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
&quot;emit-signals&quot; property is %TRUE.
The new buffer can be retrieved with the &quot;pull-buffer&quot; 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 &quot;emit-signals&quot; 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
&quot;emit-signals&quot; property is %TRUE.
The new buffer can be retrieved with the &quot;pull-buffer-list&quot; 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 &quot;emit-signals&quot; 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
&quot;emit-signals&quot; property is %TRUE.
The new preroll buffer can be retrieved with the &quot;pull-preroll&quot; 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 &quot;emit-signals&quot; 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&apos;s possible to control the behaviour of the queue with
the &quot;drop&quot; and &quot;max-buffers&quot; 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&apos;s possible to control the behaviour of the queue with
the &quot;drop&quot; and &quot;max-buffers&quot; 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 &quot;pull-buffer&quot; 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 &quot;seek&quot; 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
&quot;enough-data&quot; 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 &quot;new-preroll&quot; and &quot;new-buffer&quot; 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 &quot;new-preroll&quot; and &quot;new-buffer&quot; 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>

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.app.ffi ;
IN: gstreamer.app

View File

@ -0,0 +1,17 @@
! 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.audio.ffi ;
IN: gstreamer.audio

View File

@ -0,0 +1,18 @@
! 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.base.ffi ;
IN: gstreamer.base

View File

@ -0,0 +1,16 @@
! 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

View File

@ -0,0 +1,808 @@
<?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&apos;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&apos;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>

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.check.ffi ;
IN: gstreamer.check

View File

@ -0,0 +1,20 @@
! 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

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.controller.ffi ;
IN: gstreamer.controller

View File

@ -0,0 +1,17 @@
! 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

View File

@ -0,0 +1,462 @@
<?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>

View File

@ -0,0 +1,17 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.fft.ffi ;
IN: gstreamer.fft

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,17 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.interfaces.ffi ;
IN: gstreamer.interfaces

View File

@ -0,0 +1,279 @@
<?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>

View File

@ -0,0 +1,17 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.net.ffi ;
IN: gstreamer.net

View File

@ -0,0 +1,267 @@
<?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>

View File

@ -0,0 +1,16 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.netbuffer.ffi ;
IN: gstreamer.netbuffer

View File

@ -0,0 +1,665 @@
<?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:
&lt;programlisting&gt;
##include &amp;lt;gtk/gtk.h&amp;gt;
##ifdef GDK_WINDOWING_X11
##include &amp;lt;gdk/gdkx.h&amp;gt;
##endif
...
##ifdef GDK_WINDOWING_X11
xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&amp;gt;window);
##endif
...
&lt;/programlisting&gt;"
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&apos;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. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
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. &quot;videoscale&quot; or &quot;cdparanoiasrc&quot;
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. &quot;http&quot; or &quot;mms&quot;
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. &quot;http&quot; or &quot;smb&quot;
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. &quot;http&quot; or &quot;mms&quot;
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. &quot;http&quot; or &quot;mms&quot;
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>

View File

@ -0,0 +1,16 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.pbutils.ffi ;
IN: gstreamer.pbutils

View File

@ -0,0 +1,983 @@
<?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 &quot;complex&quot;) 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 &apos;JUNK&apos; 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>

View File

@ -0,0 +1,27 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.ffi ;
IN: gstreamer

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.rtp.ffi ;
IN: gstreamer.rtp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,20 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.rtsp.ffi ;
IN: gstreamer.rtsp

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,16 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.sdp.ffi ;
IN: gstreamer.sdp

View File

@ -0,0 +1,797 @@
<?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&apos;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&apos;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 &quot;bibliographic&quot; 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 &quot;bibliographic&quot; code is derived from the English name of the language
(e.g. &quot;ger&quot; for German instead of &quot;de&quot; or &quot;deu&quot;). In most scenarios, the
&quot;terminological&quot; 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 &quot;terminological&quot; 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 &quot;terminological&quot; code is derived from the local name of the language
(e.g. &quot;deu&quot; for German instead of &quot;ger&quot;). In most scenarios, the
&quot;terminological&quot; codes are prefered over the &quot;bibliographic&quot; 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. &apos;png&apos;, &apos;jpeg&apos;, &apos;jpg&apos;). Sometimes there is also an
&apos;image type&apos; 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&lt;!-- --&gt;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 &apos;image-type&apos; 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&apos;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&apos;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>

View File

@ -0,0 +1,16 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.tag.ffi ;
IN: gstreamer.tag

View File

@ -1 +1,3 @@
bindings
audio
video

View File

@ -0,0 +1,925 @@
<?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 &apos;show-preroll-frame&apos; 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
&quot;mpeg2&quot; for MPEG-2 style chroma siting (co-sited horizontally,
halfway-sited vertically), &quot;jpeg&quot; 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 &quot;mpeg2&quot;.
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
&quot;sdtv&quot; for the standard definition color matrix (as specified in
Rec. ITU-R BT.470-6) or &quot;hdtv&quot; 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>

View File

@ -0,0 +1,19 @@
! 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

View File

@ -0,0 +1,5 @@
! Copyright (C) 2010 Anton Gorenko.
! See http://factorcode.org/license.txt for BSD license.
USING: gstreamer.video.ffi ;
IN: gstreamer.video