diff --git a/basis/gstreamer/app/GstApp-0.10.gir b/basis/gstreamer/app/GstApp-0.10.gir new file mode 100644 index 0000000000..40ccd7ed0e --- /dev/null +++ b/basis/gstreamer/app/GstApp-0.10.gir @@ -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 "new-preroll" and "new-buffer" signals. This option is +by default disabled because signal emission is expensive and unneeded when +the application prefers to operate in pull mode." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="emit" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_emit_signals" + c:identifier="gst_app_sink_get_emit_signals" + doc="Check if appsink will emit the "new-preroll" and "new-buffer" signals. +signals." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_max_buffers" + c:identifier="gst_app_sink_set_max_buffers" + doc="Set the maximum amount of buffers that can be queued in @appsink. After this +amount of buffers are queued in appsink, any more buffers will block upstream +elements until a buffer is pulled from @appsink." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="max" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_max_buffers" + c:identifier="gst_app_sink_get_max_buffers" + doc="Get the maximum amount of buffers that can be queued in @appsink." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="set_drop" + c:identifier="gst_app_sink_set_drop" + doc="Instruct @appsink to drop old buffers when the maximum amount of queued +buffers is reached." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="drop" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_drop" + c:identifier="gst_app_sink_get_drop" + doc="Check if @appsink will drop old buffers when the maximum amount of queued +buffers is reached. +filled." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="pull_preroll" + c:identifier="gst_app_sink_pull_preroll" + doc="Get the last preroll buffer in @appsink. This was the buffer that caused the +appsink to preroll in the PAUSED state. This buffer can be pulled many times +and remains available to the application even after EOS. +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the buffer right +after the seek position. +Note that the preroll buffer will also be returned as the first buffer +when calling gst_app_sink_pull_buffer(). +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition. +This function blocks until a preroll buffer or EOS is received or the appsink +element is set to the READY/NULL state." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + </method> + <method name="pull_buffer" + c:identifier="gst_app_sink_pull_buffer" + doc="This function blocks until a buffer or EOS becomes available or the appsink +element is set to the READY/NULL state. +This function will only return buffers when the appsink is in the PLAYING +state. All rendered buffers will be put in a queue so that the application +can pull buffers at its own rate. Note that when the application does not +pull buffers fast enough, the queued buffers could consume a lot of memory, +especially when dealing with raw video frames. +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + </method> + <method name="pull_buffer_list" + c:identifier="gst_app_sink_pull_buffer_list" + doc="This function blocks until a buffer list or EOS becomes available or the +appsink element is set to the READY/NULL state. +This function will only return buffer lists when the appsink is in the +PLAYING state. All rendered buffer lists will be put in a queue so that +the application can pull buffer lists at its own rate. Note that when +the application does not pull buffer lists fast enough, the queued buffer +lists could consume a lot of memory, especially when dealing with raw +video frames. +If an EOS event was received before any buffer lists, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition."> + <return-value transfer-ownership="full"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </return-value> + </method> + <method name="set_callbacks" + c:identifier="gst_app_sink_set_callbacks" + doc="Set callbacks which will be executed for each new preroll, new buffer and eos. +This is an alternative to using the signals, it has lower overhead and is thus +less expensive, but also less flexible. +If callbacks are installed, no signals will be emited for performance +reasons." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="callbacks" transfer-ownership="none"> + <type name="AppSinkCallbacks" c:type="GstAppSinkCallbacks*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="call"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <property name="caps" writable="1"> + <type name="Gst.Caps" c:type="GstCaps"/> + </property> + <property name="drop" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="emit-signals" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="eos"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="max-buffers" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <field name="basesink"> + <type name="GstBase.BaseSink" c:type="GstBaseSink"/> + </field> + <field name="priv"> + <type name="AppSinkPrivate" c:type="GstAppSinkPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + <glib:signal name="eos" + doc="Signal that the end-of-stream has been reached. This signal is emited from +the steaming thread."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="new-buffer" + doc="Signal that a new buffer is available. +This signal is emited from the steaming thread and only when the +"emit-signals" property is %TRUE. +The new buffer can be retrieved with the "pull-buffer" action +signal or gst_app_sink_pull_buffer() either from this signal callback +or from any other thread. +Note that this signal is only emited when the "emit-signals" property is +set to %TRUE, which it is not by default for performance reasons."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="new-buffer-list" + doc="Signal that a new bufferlist is available. +This signal is emited from the steaming thread and only when the +"emit-signals" property is %TRUE. +The new buffer can be retrieved with the "pull-buffer-list" action +signal or gst_app_sink_pull_buffe_listr() either from this signal callback +or from any other thread. +Note that this signal is only emited when the "emit-signals" property is +set to %TRUE, which it is not by default for performance reasons."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="new-preroll" + doc="Signal that a new preroll buffer is available. +This signal is emited from the steaming thread and only when the +"emit-signals" property is %TRUE. +The new preroll buffer can be retrieved with the "pull-preroll" action +signal or gst_app_sink_pull_preroll() either from this signal callback +or from any other thread. +Note that this signal is only emited when the "emit-signals" property is +set to %TRUE, which it is not by default for performance reasons."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="pull-buffer" + doc="This function blocks until a buffer or EOS becomes available or the appsink +element is set to the READY/NULL state. +This function will only return buffers when the appsink is in the PLAYING +state. All rendered buffers will be put in a queue so that the application +can pull buffers at its own rate. +Note that when the application does not pull buffers fast enough, the +queued buffers could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer"/> + </return-value> + </glib:signal> + <glib:signal name="pull-buffer-list" + doc="This function blocks until a buffer list or EOS becomes available or the appsink +element is set to the READY/NULL state. +This function will only return bufferlists when the appsink is in the PLAYING +state. All rendered bufferlists will be put in a queue so that the application +can pull bufferlists at its own rate. +Note that when the application does not pull bufferlists fast enough, the +queued bufferlists could consume a lot of memory, especially when dealing with +raw video frames. It's possible to control the behaviour of the queue with +the "drop" and "max-buffers" properties. +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition."> + <return-value transfer-ownership="full"> + <type name="Gst.BufferList" c:type="GstBufferList"/> + </return-value> + </glib:signal> + <glib:signal name="pull-preroll" + doc="Get the last preroll buffer in @appsink. This was the buffer that caused the +appsink to preroll in the PAUSED state. This buffer can be pulled many times +and remains available to the application even after EOS. +This function is typically used when dealing with a pipeline in the PAUSED +state. Calling this function after doing a seek will give the buffer right +after the seek position. +Note that the preroll buffer will also be returned as the first buffer +when calling gst_app_sink_pull_buffer() or the "pull-buffer" action signal. +If an EOS event was received before any buffers, this function returns +%NULL. Use gst_app_sink_is_eos () to check for the EOS condition. +This function blocks until a preroll buffer or EOS is received or the appsink +element is set to the READY/NULL state."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer"/> + </return-value> + </glib:signal> + </class> + <record name="AppSinkCallbacks" + c:type="GstAppSinkCallbacks" + doc="is called from the steaming thread. +This callback is called from the steaming thread. +The new preroll buffer can be retrieved with +gst_app_sink_pull_preroll() either from this callback +or from any other thread. +This callback is called from the steaming thread. +The new buffer can be retrieved with +gst_app_sink_pull_buffer() either from this callback +or from any other thread. +This callback is called from the steaming thread. +The new bufferlist can be retrieved with +gst_app_sink_pull_buffer_list() either from this callback +or from any other thread. +A set of callbacks that can be installed on the appsink with +gst_app_sink_set_callbacks()." + version="0.10.23"> + <field name="eos"> + <type name="any" c:type="pointer"/> + </field> + <field name="new_preroll"> + <type name="any" c:type="pointer"/> + </field> + <field name="new_buffer"> + <type name="any" c:type="pointer"/> + </field> + <field name="new_buffer_list"> + <type name="any" c:type="pointer"/> + </field> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </record> + <record name="AppSinkClass" + c:type="GstAppSinkClass" + glib:is-gtype-struct-for="AppSink"> + <field name="basesink_class"> + <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/> + </field> + <field name="eos"> + <callback name="eos" c:type="eos"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_preroll"> + <callback name="new_preroll" c:type="new_preroll"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_buffer"> + <callback name="new_buffer" c:type="new_buffer"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pull_preroll"> + <callback name="pull_preroll" c:type="pull_preroll"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pull_buffer"> + <callback name="pull_buffer" c:type="pull_buffer"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="new_buffer_list"> + <callback name="new_buffer_list" c:type="new_buffer_list"> + <return-value transfer-ownership="full"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pull_buffer_list"> + <callback name="pull_buffer_list" c:type="pull_buffer_list"> + <return-value transfer-ownership="full"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AppSink" c:type="GstAppSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> + <type name="any"/> + </array> + </field> + </record> + <record name="AppSinkPrivate" c:type="GstAppSinkPrivate"> + </record> + <class name="AppSrc" + c:type="GstAppSrc" + parent="GstBase.BaseSrc" + glib:type-name="GstAppSrc" + glib:get-type="gst_app_src_get_type" + glib:type-struct="AppSrcClass"> + <implements name="Gst.URIHandler"/> + <method name="set_caps" + c:identifier="gst_app_src_set_caps" + doc="Set the capabilities on the appsrc element. This function takes +a copy of the caps structure. After calling this method, the source will +only produce caps that match @caps. @caps must be fixed and the caps on the +buffers must match the caps or left NULL." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_caps" + c:identifier="gst_app_src_get_caps" + doc="Get the configured caps on @appsrc." + version="0.10.22"> + <return-value transfer-ownership="full" doc="after usage."> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + </method> + <method name="set_size" + c:identifier="gst_app_src_set_size" + doc="Set the size of the stream in bytes. A value of -1 means that the size is +not known." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="get_size" + c:identifier="gst_app_src_get_size" + doc="Get the size of the stream in bytes. A value of -1 means that the size is +not known." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </return-value> + </method> + <method name="set_stream_type" + c:identifier="gst_app_src_set_stream_type" + doc="Set the stream type on @appsrc. For seekable streams, the "seek" signal must +be connected to. +A stream_type stream" + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="AppStreamType" c:type="GstAppStreamType"/> + </parameter> + </parameters> + </method> + <method name="get_stream_type" + c:identifier="gst_app_src_get_stream_type" + doc="Get the stream type. Control the stream type of @appsrc +with gst_app_src_set_stream_type()." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="AppStreamType" c:type="GstAppStreamType"/> + </return-value> + </method> + <method name="set_max_bytes" + c:identifier="gst_app_src_set_max_bytes" + doc="Set the maximum amount of bytes that can be queued in @appsrc. +After the maximum amount of bytes are queued, @appsrc will emit the +"enough-data" signal." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="max" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_max_bytes" + c:identifier="gst_app_src_get_max_bytes" + doc="Get the maximum amount of bytes that can be queued in @appsrc." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </return-value> + </method> + <method name="set_latency" + c:identifier="gst_app_src_set_latency" + doc="Configure the @min and @max latency in @src. If @min is set to -1, the +default latency calculations for pseudo-live sources will be used." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="min" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="max" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="get_latency" + c:identifier="gst_app_src_get_latency" + doc="Retrieve the min and max latencies in @min and @max respectively." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="min" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="max" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="set_emit_signals" + c:identifier="gst_app_src_set_emit_signals" + doc="Make appsrc emit the "new-preroll" and "new-buffer" signals. This option is +by default disabled because signal emission is expensive and unneeded when +the application prefers to operate in pull mode." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="emit" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_emit_signals" + c:identifier="gst_app_src_get_emit_signals" + doc="Check if appsrc will emit the "new-preroll" and "new-buffer" signals. +signals." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="push_buffer" + c:identifier="gst_app_src_push_buffer" + doc="Adds a buffer to the queue of buffers that the appsrc element will +push to its source pad. This function takes ownership of the buffer. +When the block property is TRUE, this function can block until free +space becomes available in the queue. +#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING. +#GST_FLOW_UNEXPECTED when EOS occured." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="end_of_stream" + c:identifier="gst_app_src_end_of_stream" + doc="Indicates to the appsrc element that the last buffer queued in the +element is the last buffer of the stream. +#GST_FLOW_WRONG_STATE when @appsrc is not PAUSED or PLAYING." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + </method> + <method name="set_callbacks" + c:identifier="gst_app_src_set_callbacks" + doc="Set callbacks which will be executed when data is needed, enough data has +been collected or when a seek should be performed. +This is an alternative to using the signals, it has lower overhead and is thus +less expensive, but also less flexible. +If callbacks are installed, no signals will be emited for performance +reasons." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="callbacks" transfer-ownership="none"> + <type name="AppSrcCallbacks" c:type="GstAppSrcCallbacks*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="call"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </method> + <property name="block" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="caps" writable="1"> + <type name="Gst.Caps" c:type="GstCaps"/> + </property> + <property name="emit-signals" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="format" writable="1"> + <type name="Gst.Format" c:type="GstFormat"/> + </property> + <property name="is-live" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="max-bytes" writable="1"> + <type name="uint64" c:type="guint64"/> + </property> + <property name="max-latency" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="min-latency" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="min-percent" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="size" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="stream-type" writable="1"> + <type name="AppStreamType" c:type="GstAppStreamType"/> + </property> + <field name="basesrc"> + <type name="GstBase.BaseSrc" c:type="GstBaseSrc"/> + </field> + <field name="priv"> + <type name="AppSrcPrivate" c:type="GstAppSrcPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + <glib:signal name="end-of-stream" + doc="Notify @appsrc that no more buffer are available."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + </glib:signal> + <glib:signal name="enough-data" + doc="Signal that the source has enough data. It is recommended that the +application stops calling push-buffer until the need-data signal is +emited again to avoid excessive buffer queueing."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="need-data" + doc="Signal that the source needs more data. In the callback or from another +thread you should call push-buffer or end-of-stream. +pushed into @appsrc. +You can call push-buffer multiple times until the enough-data signal is +fired."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="push-buffer" + doc="Adds a buffer to the queue of buffers that the appsrc element will +push to its source pad. This function does not take ownership of the +buffer so the buffer needs to be unreffed after calling this function. +When the block property is TRUE, this function can block until free space +becomes available in the queue."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="seek-data" + doc="Seek to the given offset. The next push-buffer should produce buffers from +the new @offset. +This callback is only called for seekable stream types."> + <return-value transfer-ownership="full"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="AppSrcCallbacks" + c:type="GstAppSrcCallbacks" + doc="pushed to appsrc from this thread or another thread. @length is just a hint +and when it is set to -1, any number of bytes can be pushed into @appsrc. +application stops calling push-buffer until the need_data callback is +emited again to avoid excessive buffer queueing. +The next push-buffer should produce buffers from the new @offset. +This callback is only called for seekable stream types. +A set of callbacks that can be installed on the appsrc with +gst_app_src_set_callbacks()." + version="0.10.23"> + <field name="need_data"> + <type name="any" c:type="pointer"/> + </field> + <field name="enough_data"> + <type name="any" c:type="pointer"/> + </field> + <field name="seek_data"> + <type name="any" c:type="pointer"/> + </field> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="AppSrcClass" + c:type="GstAppSrcClass" + glib:is-gtype-struct-for="AppSrc"> + <field name="basesrc_class"> + <type name="GstBase.BaseSrcClass" c:type="GstBaseSrcClass"/> + </field> + <field name="need_data"> + <callback name="need_data" c:type="need_data"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="enough_data"> + <callback name="enough_data" c:type="enough_data"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="seek_data"> + <callback name="seek_data" c:type="seek_data"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </callback> + </field> + <field name="push_buffer"> + <callback name="push_buffer" c:type="push_buffer"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="end_of_stream"> + <callback name="end_of_stream" c:type="end_of_stream"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AppSrc" c:type="GstAppSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="AppSrcPrivate" c:type="GstAppSrcPrivate"> + </record> + <enumeration name="AppStreamType" + doc="live stream. +be very fast, such as data from a webserver. +such as in a local file. +The stream type." + c:type="GstAppStreamType"> + <member name="stream" + value="0" + c:identifier="GST_APP_STREAM_TYPE_STREAM"/> + <member name="seekable" + value="1" + c:identifier="GST_APP_STREAM_TYPE_SEEKABLE"/> + <member name="random_access" + value="2" + c:identifier="GST_APP_STREAM_TYPE_RANDOM_ACCESS"/> + </enumeration> + </namespace> +</repository> diff --git a/basis/gstreamer/app/app.factor b/basis/gstreamer/app/app.factor new file mode 100644 index 0000000000..ae80d54541 --- /dev/null +++ b/basis/gstreamer/app/app.factor @@ -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 + diff --git a/basis/gstreamer/app/ffi/ffi.factor b/basis/gstreamer/app/ffi/ffi.factor new file mode 100644 index 0000000000..b92d568fa2 --- /dev/null +++ b/basis/gstreamer/app/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/audio/GstAudio-0.10.gir b/basis/gstreamer/audio/GstAudio-0.10.gir new file mode 100644 index 0000000000..73d9983fe0 --- /dev/null +++ b/basis/gstreamer/audio/GstAudio-0.10.gir @@ -0,0 +1,2360 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="GstBase" version="0.10"/> + <include name="GstInterfaces" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <package name="gstreamer-base-0.10"/> + <package name="gstreamer-interfaces-0.10"/> + <c:include name="gst/audio/audio-enumtypes.h"/> + <c:include name="gst/audio/audio.h"/> + <c:include name="gst/audio/gstaudioclock.h"/> + <c:include name="gst/audio/gstaudiofilter.h"/> + <c:include name="gst/audio/gstaudiosink.h"/> + <c:include name="gst/audio/gstaudiosrc.h"/> + <c:include name="gst/audio/gstbaseaudiosink.h"/> + <c:include name="gst/audio/gstbaseaudiosrc.h"/> + <c:include name="gst/audio/gstringbuffer.h"/> + <c:include name="gst/audio/mixerutils.h"/> + <c:include name="gst/audio/multichannel.h"/> + <namespace name="GstAudio" + version="0.10" + shared-library="libgstaudio-0.10.so.0" + c:prefix="Gst"> + <enumeration name="AudioChannelPosition" + doc="from a sound card that records 1024 channels; mutually exclusive with +any other channel position" + glib:type-name="GstAudioChannelPosition" + glib:get-type="gst_audio_channel_position_get_type" + c:type="GstAudioChannelPosition"> + <member name="invalid" + value="-1" + c:identifier="GST_AUDIO_CHANNEL_POSITION_INVALID" + glib:nick="invalid"/> + <member name="front_mono" + value="0" + c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_MONO" + glib:nick="front-mono"/> + <member name="front_left" + value="1" + c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT" + glib:nick="front-left"/> + <member name="front_right" + value="2" + c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT" + glib:nick="front-right"/> + <member name="rear_center" + value="3" + c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_CENTER" + glib:nick="rear-center"/> + <member name="rear_left" + value="4" + c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_LEFT" + glib:nick="rear-left"/> + <member name="rear_right" + value="5" + c:identifier="GST_AUDIO_CHANNEL_POSITION_REAR_RIGHT" + glib:nick="rear-right"/> + <member name="lfe" + value="6" + c:identifier="GST_AUDIO_CHANNEL_POSITION_LFE" + glib:nick="lfe"/> + <member name="front_center" + value="7" + c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_CENTER" + glib:nick="front-center"/> + <member name="front_left_of_center" + value="8" + c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT_OF_CENTER" + glib:nick="front-left-of-center"/> + <member name="front_right_of_center" + value="9" + c:identifier="GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT_OF_CENTER" + glib:nick="front-right-of-center"/> + <member name="side_left" + value="10" + c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_LEFT" + glib:nick="side-left"/> + <member name="side_right" + value="11" + c:identifier="GST_AUDIO_CHANNEL_POSITION_SIDE_RIGHT" + glib:nick="side-right"/> + <member name="none" + value="12" + c:identifier="GST_AUDIO_CHANNEL_POSITION_NONE" + glib:nick="none"/> + <member name="num" + value="13" + c:identifier="GST_AUDIO_CHANNEL_POSITION_NUM" + glib:nick="num"/> + </enumeration> + <class name="AudioClock" + c:type="GstAudioClock" + doc="Opaque #GstAudioClock." + parent="Gst.SystemClock" + glib:type-name="GstAudioClock" + glib:get-type="gst_audio_clock_get_type" + glib:type-struct="AudioClockClass"> + <constructor name="new" + c:identifier="gst_audio_clock_new" + doc="Create a new #GstAudioClock instance. Whenever the clock time should be +calculated it will call @func with @user_data. When @func returns +#GST_CLOCK_TIME_NONE, the clock will return the last reported time."> + <return-value transfer-ownership="full"> + <type name="AudioClock" c:type="GstClock*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="func" + transfer-ownership="none" + scope="call" + closure="2"> + <type name="AudioClockGetTimeFunc" + c:type="GstAudioClockGetTimeFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </constructor> + <method name="reset" + c:identifier="gst_audio_clock_reset" + doc="Inform @clock that future calls to #GstAudioClockGetTimeFunc will return values +starting from @time. The clock will update an internal offset to make sure that +future calls to internal_time will return an increasing result as required by +the #GstClock object."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="time" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_time" + c:identifier="gst_audio_clock_get_time" + doc="Report the time as returned by the #GstAudioClockGetTimeFunc without applying +any offsets." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + </method> + <method name="adjust" + c:identifier="gst_audio_clock_adjust" + doc="Adjust @time with the internal offset of the audio clock." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="time" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <field name="clock"> + <type name="Gst.SystemClock" c:type="GstSystemClock"/> + </field> + <field name="func"> + <type name="AudioClockGetTimeFunc" c:type="GstAudioClockGetTimeFunc"/> + </field> + <field name="user_data"> + <type name="any" c:type="gpointer"/> + </field> + <field name="last_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <union name="abidata" c:type="abidata"> + <record name="ABI" c:type="ABI"> + <field name="time_offset" writable="1"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </union> + </class> + <record name="AudioClockClass" + c:type="GstAudioClockClass" + glib:is-gtype-struct-for="AudioClock"> + <field name="parent_class"> + <type name="Gst.SystemClockClass" c:type="GstSystemClockClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <callback name="AudioClockGetTimeFunc" + c:type="GstAudioClockGetTimeFunc" + doc="This function will be called whenever the current clock time needs to be +calculated. If this function returns #GST_CLOCK_TIME_NONE, the last reported +time will be returned by the clock. +be used."> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="clock" transfer-ownership="none"> + <type name="Gst.Clock" c:type="GstClock*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" closure="1"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <bitfield name="AudioFieldFlag" + doc="Do not use anymore." + deprecated="use gst_structure_set() directly" + c:type="GstAudioFieldFlag"> + <member name="rate" value="1" c:identifier="GST_AUDIO_FIELD_RATE"/> + <member name="channels" + value="2" + c:identifier="GST_AUDIO_FIELD_CHANNELS"/> + <member name="endianness" + value="4" + c:identifier="GST_AUDIO_FIELD_ENDIANNESS"/> + <member name="width" value="8" c:identifier="GST_AUDIO_FIELD_WIDTH"/> + <member name="depth" value="16" c:identifier="GST_AUDIO_FIELD_DEPTH"/> + <member name="signed" value="32" c:identifier="GST_AUDIO_FIELD_SIGNED"/> + </bitfield> + <class name="AudioFilter" + c:type="GstAudioFilter" + doc="Base class for audio filters with the same format for input and output." + version="0.10.12" + parent="GstBase.BaseTransform" + abstract="1" + glib:type-name="GstAudioFilter" + glib:get-type="gst_audio_filter_get_type" + glib:type-struct="AudioFilterClass"> + <virtual-method name="setup"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <field name="basetransform"> + <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/> + </field> + <field name="format"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="AudioFilterClass" + c:type="GstAudioFilterClass" + glib:is-gtype-struct-for="AudioFilter" + doc="In addition to the @setup virtual function, you should also override the +GstBaseTransform::transform and/or GstBaseTransform::transform_ip virtual +function." + version="0.10.12"> + <field name="basetransformclass"> + <type name="GstBase.BaseTransformClass" + c:type="GstBaseTransformClass"/> + </field> + <field name="setup"> + <callback name="setup" c:type="setup"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="AudioFilter" c:type="GstAudioFilter*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + <method name="add_pad_templates" + c:identifier="gst_audio_filter_class_add_pad_templates" + doc="Convenience function to add pad templates to this element class, with +This function is usually used from within a GObject base_init function." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="allowed_caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + </record> + <callback name="AudioMixerFilterFunc" + c:type="GstAudioMixerFilterFunc" + doc="Function that will be called by gst_audio_default_registry_mixer_filter() +so the caller can decide which mixer elements should be kept and returned. +When the mixer element is passed to the callback function, it is opened +and in READY state. If you decide to keep the element, you need to set it +back to NULL state yourself (unless you want to keep it opened of course)."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="GstInterfaces.Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" closure="1"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <class name="AudioSink" + c:type="GstAudioSink" + doc="Opaque #GstAudioSink." + parent="BaseAudioSink" + glib:type-name="GstAudioSink" + glib:get-type="gst_audio_sink_get_type" + glib:type-struct="AudioSinkClass"> + <virtual-method name="open"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="prepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="unprepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="close"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="write"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="delay"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </virtual-method> + <virtual-method name="reset"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </virtual-method> + <field name="element"> + <type name="BaseAudioSink" c:type="GstBaseAudioSink"/> + </field> + <field name="thread"> + <type name="GLib.Thread" c:type="GThread*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="AudioSinkClass" + c:type="GstAudioSinkClass" + glib:is-gtype-struct-for="AudioSink" + doc="This function is also used to check if the device is available. +drive the synchronisation. +samples from the device. +#GstAudioSink class. Override the vmethods to implement functionality."> + <field name="parent_class"> + <type name="BaseAudioSinkClass" c:type="GstBaseAudioSinkClass"/> + </field> + <field name="open"> + <callback name="open" c:type="open"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare"> + <callback name="prepare" c:type="prepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unprepare"> + <callback name="unprepare" c:type="unprepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close" c:type="close"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="write"> + <callback name="write" c:type="write"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delay"> + <callback name="delay" c:type="delay"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="reset"> + <callback name="reset" c:type="reset"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="AudioSink" c:type="GstAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <class name="AudioSrc" + c:type="GstAudioSrc" + doc="Base class for simple audio sources." + parent="BaseAudioSrc" + glib:type-name="GstAudioSrc" + glib:get-type="gst_audio_src_get_type" + glib:type-struct="AudioSrcClass"> + <virtual-method name="open"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="prepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="unprepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="close"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="read"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="delay"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </virtual-method> + <virtual-method name="reset"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </virtual-method> + <field name="element"> + <type name="BaseAudioSrc" c:type="GstBaseAudioSrc"/> + </field> + <field name="thread"> + <type name="GLib.Thread" c:type="GThread*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="AudioSrcClass" + c:type="GstAudioSrcClass" + glib:is-gtype-struct-for="AudioSrc" + doc="#GstAudioSrc class. Override the vmethod to implement +functionality."> + <field name="parent_class"> + <type name="BaseAudioSrcClass" c:type="GstBaseAudioSrcClass"/> + </field> + <field name="open"> + <callback name="open" c:type="open"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare"> + <callback name="prepare" c:type="prepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unprepare"> + <callback name="unprepare" c:type="unprepare"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close"> + <callback name="close" c:type="close"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="read"> + <callback name="read" c:type="read"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delay"> + <callback name="delay" c:type="delay"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="reset"> + <callback name="reset" c:type="reset"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="AudioSrc" c:type="GstAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <class name="BaseAudioSink" + c:type="GstBaseAudioSink" + doc="Opaque #GstBaseAudioSink." + parent="GstBase.BaseSink" + glib:type-name="GstBaseAudioSink" + glib:get-type="gst_base_audio_sink_get_type" + glib:type-struct="BaseAudioSinkClass"> + <virtual-method name="create_ringbuffer" invoker="create_ringbuffer"> + <return-value transfer-ownership="full"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </return-value> + </virtual-method> + <method name="create_ringbuffer" + c:identifier="gst_base_audio_sink_create_ringbuffer" + doc="Create and return the #GstRingBuffer for @sink. This function will call the +::create_ringbuffer vmethod and will set @sink as the parent of the returned +buffer (see gst_object_set_parent())."> + <return-value transfer-ownership="full"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </return-value> + </method> + <method name="set_provide_clock" + c:identifier="gst_base_audio_sink_set_provide_clock" + doc="Controls whether @sink will provide a clock or not. If @provide is %TRUE, +gst_element_provide_clock() will return a clock that reflects the datarate +of @sink. If @provide is %FALSE, gst_element_provide_clock() will return NULL." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="provide" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_provide_clock" + c:identifier="gst_base_audio_sink_get_provide_clock" + doc="Queries whether @sink will provide a clock or not. See also +gst_base_audio_sink_set_provide_clock." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_slave_method" + c:identifier="gst_base_audio_sink_set_slave_method" + doc="Controls how clock slaving will be performed in @sink." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="BaseAudioSinkSlaveMethod" + c:type="GstBaseAudioSinkSlaveMethod"/> + </parameter> + </parameters> + </method> + <method name="get_slave_method" + c:identifier="gst_base_audio_sink_get_slave_method" + doc="Get the current slave method used by @sink." + version="0.10.16"> + <return-value transfer-ownership="full"> + <type name="BaseAudioSinkSlaveMethod" + c:type="GstBaseAudioSinkSlaveMethod"/> + </return-value> + </method> + <property name="buffer-time" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="can-activate-pull" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="drift-tolerance" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="latency-time" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="provide-clock" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="slave-method" writable="1"> + <type name="BaseAudioSinkSlaveMethod" + c:type="GstBaseAudioSinkSlaveMethod"/> + </property> + <field name="element"> + <type name="GstBase.BaseSink" c:type="GstBaseSink"/> + </field> + <field name="ringbuffer"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </field> + <field name="buffer_time"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="latency_time"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="next_sample"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="provide_clock"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="provided_clock"> + <type name="Gst.Clock" c:type="GstClock*"/> + </field> + <field name="priv"> + <type name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </class> + <record name="BaseAudioSinkClass" + c:type="GstBaseAudioSinkClass" + glib:is-gtype-struct-for="BaseAudioSink" + doc="#GstBaseAudioSink class. Override the vmethod to implement +functionality."> + <field name="parent_class"> + <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/> + </field> + <field name="create_ringbuffer"> + <callback name="create_ringbuffer" c:type="create_ringbuffer"> + <return-value transfer-ownership="full"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseAudioSink" c:type="GstBaseAudioSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseAudioSinkPrivate" c:type="GstBaseAudioSinkPrivate"> + </record> + <enumeration name="BaseAudioSinkSlaveMethod" + doc="drifts too much. +Different possible clock slaving algorithms used when the internal audio +clock is not selected as the pipeline master clock." + glib:type-name="GstBaseAudioSinkSlaveMethod" + glib:get-type="gst_base_audio_sink_slave_method_get_type" + c:type="GstBaseAudioSinkSlaveMethod"> + <member name="resample" + value="0" + c:identifier="GST_BASE_AUDIO_SINK_SLAVE_RESAMPLE" + glib:nick="resample"/> + <member name="skew" + value="1" + c:identifier="GST_BASE_AUDIO_SINK_SLAVE_SKEW" + glib:nick="skew"/> + <member name="none" + value="2" + c:identifier="GST_BASE_AUDIO_SINK_SLAVE_NONE" + glib:nick="none"/> + </enumeration> + <class name="BaseAudioSrc" + c:type="GstBaseAudioSrc" + doc="Opaque #GstBaseAudioSrc." + parent="GstBase.PushSrc" + glib:type-name="GstBaseAudioSrc" + glib:get-type="gst_base_audio_src_get_type" + glib:type-struct="BaseAudioSrcClass"> + <virtual-method name="create_ringbuffer" invoker="create_ringbuffer"> + <return-value transfer-ownership="full"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </return-value> + </virtual-method> + <method name="create_ringbuffer" + c:identifier="gst_base_audio_src_create_ringbuffer" + doc="Create and return the #GstRingBuffer for @src. This function will call the +::create_ringbuffer vmethod and will set @src as the parent of the returned +buffer (see gst_object_set_parent())."> + <return-value transfer-ownership="full"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </return-value> + </method> + <method name="set_provide_clock" + c:identifier="gst_base_audio_src_set_provide_clock" + doc="Controls whether @src will provide a clock or not. If @provide is %TRUE, +gst_element_provide_clock() will return a clock that reflects the datarate +of @src. If @provide is %FALSE, gst_element_provide_clock() will return NULL." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="provide" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_provide_clock" + c:identifier="gst_base_audio_src_get_provide_clock" + doc="Queries whether @src will provide a clock or not. See also +gst_base_audio_src_set_provide_clock." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_slave_method" + c:identifier="gst_base_audio_src_set_slave_method" + doc="Controls how clock slaving will be performed in @src." + version="0.10.20"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="BaseAudioSrcSlaveMethod" + c:type="GstBaseAudioSrcSlaveMethod"/> + </parameter> + </parameters> + </method> + <method name="get_slave_method" + c:identifier="gst_base_audio_src_get_slave_method" + doc="Get the current slave method used by @src." + version="0.10.20"> + <return-value transfer-ownership="full"> + <type name="BaseAudioSrcSlaveMethod" + c:type="GstBaseAudioSrcSlaveMethod"/> + </return-value> + </method> + <property name="actual-buffer-time" + version="0.10.20" + doc="Actual configured size of audio buffer in microseconds."> + <type name="int64" c:type="gint64"/> + </property> + <property name="actual-latency-time" + version="0.10.20" + doc="Actual configured audio latency in microseconds."> + <type name="int64" c:type="gint64"/> + </property> + <property name="buffer-time" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="latency-time" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="provide-clock" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="slave-method" writable="1"> + <type name="BaseAudioSrcSlaveMethod" + c:type="GstBaseAudioSrcSlaveMethod"/> + </property> + <field name="element"> + <type name="GstBase.PushSrc" c:type="GstPushSrc"/> + </field> + <field name="ringbuffer"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </field> + <field name="buffer_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="latency_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="next_sample"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="clock"> + <type name="Gst.Clock" c:type="GstClock*"/> + </field> + <field name="priv"> + <type name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </class> + <record name="BaseAudioSrcClass" + c:type="GstBaseAudioSrcClass" + glib:is-gtype-struct-for="BaseAudioSrc" + doc="#GstBaseAudioSrc class. Override the vmethod to implement +functionality."> + <field name="parent_class"> + <type name="GstBase.PushSrcClass" c:type="GstPushSrcClass"/> + </field> + <field name="create_ringbuffer"> + <callback name="create_ringbuffer" c:type="create_ringbuffer"> + <return-value transfer-ownership="full"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseAudioSrc" c:type="GstBaseAudioSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseAudioSrcPrivate" c:type="GstBaseAudioSrcPrivate"> + </record> + <enumeration name="BaseAudioSrcSlaveMethod" + doc="clock time. +drifts too much. +Different possible clock slaving algorithms when the internal audio clock was +not selected as the pipeline clock." + glib:type-name="GstBaseAudioSrcSlaveMethod" + glib:get-type="gst_base_audio_src_slave_method_get_type" + c:type="GstBaseAudioSrcSlaveMethod"> + <member name="resample" + value="0" + c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RESAMPLE" + glib:nick="resample"/> + <member name="re_timestamp" + value="1" + c:identifier="GST_BASE_AUDIO_SRC_SLAVE_RETIMESTAMP" + glib:nick="re-timestamp"/> + <member name="skew" value="2" c:identifier="GST_BASE_AUDIO_SRC_SLAVE_SKEW" glib:nick="skew"/> + <member name="none" + value="3" + c:identifier="GST_BASE_AUDIO_SRC_SLAVE_NONE" + glib:nick="none"/> + </enumeration> + <enumeration name="BufferFormat" + glib:type-name="GstBufferFormat" + glib:get-type="gst_buffer_format_get_type" + c:type="GstBufferFormat"> + <member name="unknown" + value="0" + c:identifier="GST_UNKNOWN" + glib:nick="unknown"/> + <member name="s8" value="1" c:identifier="GST_S8" glib:nick="s8"/> + <member name="u8" value="2" c:identifier="GST_U8" glib:nick="u8"/> + <member name="s16_le" + value="3" + c:identifier="GST_S16_LE" + glib:nick="s16-le"/> + <member name="s16_be" + value="4" + c:identifier="GST_S16_BE" + glib:nick="s16-be"/> + <member name="u16_le" + value="5" + c:identifier="GST_U16_LE" + glib:nick="u16-le"/> + <member name="u16_be" + value="6" + c:identifier="GST_U16_BE" + glib:nick="u16-be"/> + <member name="s24_le" + value="7" + c:identifier="GST_S24_LE" + glib:nick="s24-le"/> + <member name="s24_be" + value="8" + c:identifier="GST_S24_BE" + glib:nick="s24-be"/> + <member name="u24_le" + value="9" + c:identifier="GST_U24_LE" + glib:nick="u24-le"/> + <member name="u24_be" + value="10" + c:identifier="GST_U24_BE" + glib:nick="u24-be"/> + <member name="s32_le" + value="11" + c:identifier="GST_S32_LE" + glib:nick="s32-le"/> + <member name="s32_be" + value="12" + c:identifier="GST_S32_BE" + glib:nick="s32-be"/> + <member name="u32_le" + value="13" + c:identifier="GST_U32_LE" + glib:nick="u32-le"/> + <member name="u32_be" + value="14" + c:identifier="GST_U32_BE" + glib:nick="u32-be"/> + <member name="s24_3le" + value="15" + c:identifier="GST_S24_3LE" + glib:nick="s24-3le"/> + <member name="s24_3be" + value="16" + c:identifier="GST_S24_3BE" + glib:nick="s24-3be"/> + <member name="u24_3le" + value="17" + c:identifier="GST_U24_3LE" + glib:nick="u24-3le"/> + <member name="u24_3be" + value="18" + c:identifier="GST_U24_3BE" + glib:nick="u24-3be"/> + <member name="s20_3le" + value="19" + c:identifier="GST_S20_3LE" + glib:nick="s20-3le"/> + <member name="s20_3be" + value="20" + c:identifier="GST_S20_3BE" + glib:nick="s20-3be"/> + <member name="u20_3le" + value="21" + c:identifier="GST_U20_3LE" + glib:nick="u20-3le"/> + <member name="u20_3be" + value="22" + c:identifier="GST_U20_3BE" + glib:nick="u20-3be"/> + <member name="s18_3le" + value="23" + c:identifier="GST_S18_3LE" + glib:nick="s18-3le"/> + <member name="s18_3be" + value="24" + c:identifier="GST_S18_3BE" + glib:nick="s18-3be"/> + <member name="u18_3le" + value="25" + c:identifier="GST_U18_3LE" + glib:nick="u18-3le"/> + <member name="u18_3be" + value="26" + c:identifier="GST_U18_3BE" + glib:nick="u18-3be"/> + <member name="float32_le" + value="27" + c:identifier="GST_FLOAT32_LE" + glib:nick="float32-le"/> + <member name="float32_be" + value="28" + c:identifier="GST_FLOAT32_BE" + glib:nick="float32-be"/> + <member name="float64_le" + value="29" + c:identifier="GST_FLOAT64_LE" + glib:nick="float64-le"/> + <member name="float64_be" + value="30" + c:identifier="GST_FLOAT64_BE" + glib:nick="float64-be"/> + <member name="mu_law" + value="31" + c:identifier="GST_MU_LAW" + glib:nick="mu-law"/> + <member name="a_law" + value="32" + c:identifier="GST_A_LAW" + glib:nick="a-law"/> + <member name="ima_adpcm" + value="33" + c:identifier="GST_IMA_ADPCM" + glib:nick="ima-adpcm"/> + <member name="mpeg" value="34" c:identifier="GST_MPEG" glib:nick="mpeg"/> + <member name="gsm" value="35" c:identifier="GST_GSM" glib:nick="gsm"/> + <member name="iec958" + value="36" + c:identifier="GST_IEC958" + glib:nick="iec958"/> + <member name="ac3" value="37" c:identifier="GST_AC3" glib:nick="ac3"/> + <member name="eac3" value="38" c:identifier="GST_EAC3" glib:nick="eac3"/> + <member name="dts" value="39" c:identifier="GST_DTS" glib:nick="dts"/> + </enumeration> + <enumeration name="BufferFormatType" + doc="The format of the samples in the ringbuffer." + glib:type-name="GstBufferFormatType" + glib:get-type="gst_buffer_format_type_get_type" + c:type="GstBufferFormatType"> + <member name="linear" + value="0" + c:identifier="GST_BUFTYPE_LINEAR" + glib:nick="linear"/> + <member name="float" + value="1" + c:identifier="GST_BUFTYPE_FLOAT" + glib:nick="float"/> + <member name="mu_law" + value="2" + c:identifier="GST_BUFTYPE_MU_LAW" + glib:nick="mu-law"/> + <member name="a_law" + value="3" + c:identifier="GST_BUFTYPE_A_LAW" + glib:nick="a-law"/> + <member name="ima_adpcm" + value="4" + c:identifier="GST_BUFTYPE_IMA_ADPCM" + glib:nick="ima-adpcm"/> + <member name="mpeg" + value="5" + c:identifier="GST_BUFTYPE_MPEG" + glib:nick="mpeg"/> + <member name="gsm" + value="6" + c:identifier="GST_BUFTYPE_GSM" + glib:nick="gsm"/> + <member name="iec958" + value="7" + c:identifier="GST_BUFTYPE_IEC958" + glib:nick="iec958"/> + <member name="ac3" + value="8" + c:identifier="GST_BUFTYPE_AC3" + glib:nick="ac3"/> + <member name="eac3" + value="9" + c:identifier="GST_BUFTYPE_EAC3" + glib:nick="eac3"/> + <member name="dts" + value="10" + c:identifier="GST_BUFTYPE_DTS" + glib:nick="dts"/> + </enumeration> + <constant name="DEF_RATE" value="44100"> + <type name="int"/> + </constant> + <constant name="FLOAT_PAD_TEMPLATE_CAPS" + value="audio/x-raw-float, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN , BIG_ENDIAN }, width = (int) { 32, 64 }"> + <type name="utf8"/> + </constant> + <constant name="FLOAT_STANDARD_PAD_TEMPLATE_CAPS" + value="audio/x-raw-float, width = (int) 32, rate = (int) [ 1, MAX ], channels = (int) 1, endianness = (int) BYTE_ORDER"> + <type name="utf8"/> + </constant> + <constant name="INT_PAD_TEMPLATE_CAPS" + value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) [ 1, MAX ], endianness = (int) { LITTLE_ENDIAN, BIG_ENDIAN }, width = (int) { 8, 16, 24, 32 }, depth = (int) [ 1, 32 ], signed = (boolean) { true, false }"> + <type name="utf8"/> + </constant> + <constant name="INT_STANDARD_PAD_TEMPLATE_CAPS" + value="audio/x-raw-int, rate = (int) [ 1, MAX ], channels = (int) 2, endianness = (int) BYTE_ORDER, width = (int) 16, depth = (int) 16, signed = (boolean) true"> + <type name="utf8"/> + </constant> + <class name="RingBuffer" + c:type="GstRingBuffer" + doc="The ringbuffer base class structure." + parent="Gst.Object" + abstract="1" + glib:type-name="GstRingBuffer" + glib:get-type="gst_ring_buffer_get_type" + glib:type-struct="RingBufferClass"> + <function name="parse_caps" + c:identifier="gst_ring_buffer_parse_caps" + doc="Parse @caps into @spec."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="debug_spec_caps" + c:identifier="gst_ring_buffer_debug_spec_caps" + doc="Print debug info about the parsed caps in @spec to the debug log."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </function> + <function name="debug_spec_buff" + c:identifier="gst_ring_buffer_debug_spec_buff" + doc="Print debug info about the buffer sized in @spec to the debug log."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </function> + <virtual-method name="open_device" invoker="open_device"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="acquire" invoker="acquire"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="release" invoker="release"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="close_device" invoker="close_device"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="start" invoker="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="pause" invoker="pause"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="resume"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="stop" invoker="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="delay" invoker="delay"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </virtual-method> + <virtual-method name="activate" invoker="activate"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="active" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="commit"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sample" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guchar*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="in_samples" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="out_samples" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="accum" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="clear_all" invoker="clear_all"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </virtual-method> + <method name="set_callback" + c:identifier="gst_ring_buffer_set_callback" + doc="Sets the given callback function on the buffer. This function +will be called every time a segment has been written to a device. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="cb" + transfer-ownership="none" + scope="call" + closure="2"> + <type name="RingBufferCallback" c:type="GstRingBufferCallback"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="convert" + c:identifier="gst_ring_buffer_convert" + doc="Convert @src_val in @src_fmt to the equivalent value in @dest_fmt. The result +will be put in @dest_val." + version="0.10.22."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src_fmt" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_val" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + <parameter name="dest_fmt" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_val" direction="out" transfer-ownership="full"> + <type name="int64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="open_device" + c:identifier="gst_ring_buffer_open_device" + doc="Open the audio device associated with the ring buffer. Does not perform any +setup on the device. You must open the device before acquiring the ring +buffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="close_device" + c:identifier="gst_ring_buffer_close_device" + doc="Close the audio device associated with the ring buffer. The ring buffer +should already have been released via gst_ring_buffer_release(). +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="device_is_open" + c:identifier="gst_ring_buffer_device_is_open" + doc="Checks the status of the device associated with the ring buffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="acquire" + c:identifier="gst_ring_buffer_acquire" + doc="Allocate the resources for the ringbuffer. This function fills +in the data pointer of the ring buffer with a valid #GstBuffer +to which samples can be written. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </method> + <method name="release" + c:identifier="gst_ring_buffer_release" + doc="Free the resources of the ringbuffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="is_acquired" + c:identifier="gst_ring_buffer_is_acquired" + doc="Check if the ringbuffer is acquired and ready to use. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="activate" + c:identifier="gst_ring_buffer_activate" + doc="Activate @buf to start or stop pulling data. +MT safe. +FALSE on error." + version="0.10.22."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="active" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_active" + c:identifier="gst_ring_buffer_is_active" + doc="Check if @buf is activated. +MT safe." + version="0.10.22."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_flushing" + c:identifier="gst_ring_buffer_set_flushing" + doc="Set the ringbuffer to flushing mode or normal mode. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="flushing" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="start" + c:identifier="gst_ring_buffer_start" + doc="Start processing samples from the ringbuffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="pause" + c:identifier="gst_ring_buffer_pause" + doc="Pause processing samples from the ringbuffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="stop" + c:identifier="gst_ring_buffer_stop" + doc="Stop processing samples from the ringbuffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="delay" + c:identifier="gst_ring_buffer_delay" + doc="Get the number of samples queued in the audio device. This is +usually less than the segment size but can be bigger when the +implementation uses another internal buffer between the audio +device. +For playback ringbuffers this is the amount of samples transfered from the +ringbuffer to the device but still not played. +For capture ringbuffers this is the amount of samples in the device that are +not yet transfered to the ringbuffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="samples_done" + c:identifier="gst_ring_buffer_samples_done" + doc="Get the number of samples that were processed by the ringbuffer +since it was last started. This does not include the number of samples not +yet processed (see gst_ring_buffer_delay()). +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </return-value> + </method> + <method name="set_sample" + c:identifier="gst_ring_buffer_set_sample" + doc="Make sure that the next sample written to the device is +accounted for as being the @sample sample written to the +device. This value will be used in reporting the current +sample position of the ringbuffer. +This function will also clear the buffer with silence. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sample" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="clear_all" + c:identifier="gst_ring_buffer_clear_all" + doc="Fill the ringbuffer with silence. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="commit" + c:identifier="gst_ring_buffer_commit" + doc="Same as gst_ring_buffer_commit_full() but with a in_samples and out_samples +equal to @len, ignoring accum. +error. +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sample" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guchar*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="commit_full" + c:identifier="gst_ring_buffer_commit_full" + doc="Commit @in_samples samples pointed to by @data to the ringbuffer @buf. +samples in @data. For negative rates, @out_samples must be negative and +When @out_samples is positive, the first sample will be written at position @sample +in the ringbuffer. When @out_samples is negative, the last sample will be written to +although it is recommended for optimal performance. +set to 0 when this function is first called. In case the commit operation is +interrupted, one can resume the processing by passing the previously returned +MT safe. +number of samples written can be less than @out_samples when @buf was interrupted +with a flush or stop." + version="0.10.11."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sample" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guchar*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="in_samples" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="out_samples" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="accum" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="read" + c:identifier="gst_ring_buffer_read" + doc="Read @len samples from the ringbuffer into the memory pointed +to by @data. +The first sample should be read from position @sample in +the ringbuffer. +although it is recommended. +error. +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="sample" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guchar*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="prepare_read" + c:identifier="gst_ring_buffer_prepare_read" + doc="Returns a pointer to memory where the data from segment @segment +can be found. This function is mostly used by subclasses. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="segment" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + <parameter name="readptr" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + <parameter name="len" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="clear" + c:identifier="gst_ring_buffer_clear" + doc="Clear the given segment of the buffer with silence samples. +This function is used by subclasses. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="segment" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="advance" + c:identifier="gst_ring_buffer_advance" + doc="Subclasses should call this function to notify the fact that +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="advance" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="may_start" + c:identifier="gst_ring_buffer_may_start" + doc="Tell the ringbuffer that it is allowed to start playback when +the ringbuffer is filled with samples. +MT safe." + version="0.10.6"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="allowed" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="cond"> + <type name="GLib.Cond" c:type="GCond*"/> + </field> + <field name="open"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="acquired"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="data"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="spec"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec"/> + </field> + <field name="segstate"> + <type name="RingBufferSegState" c:type="GstRingBufferSegState*"/> + </field> + <field name="samples_per_seg"> + <type name="int" c:type="gint"/> + </field> + <field name="empty_seg"> + <type name="any" c:type="guint8*"/> + </field> + <field name="state"> + <type name="int" c:type="gint"/> + </field> + <field name="segdone"> + <type name="int" c:type="gint"/> + </field> + <field name="segbase"> + <type name="int" c:type="gint"/> + </field> + <field name="waiting"> + <type name="int" c:type="gint"/> + </field> + <field name="callback"> + <type name="RingBufferCallback" c:type="GstRingBufferCallback"/> + </field> + <field name="cb_data"> + <type name="any" c:type="gpointer"/> + </field> + <union name="abidata" c:type="abidata"> + <record name="ABI" c:type="ABI"> + <field name="flushing" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="may_start" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="active" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </union> + </class> + <callback name="RingBufferCallback" + c:type="GstRingBufferCallback" + doc="This function is set with gst_ring_buffer_set_callback() and is +called to fill the memory at @data with @len bytes of samples."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="rbuf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" closure="3"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="RingBufferClass" + c:type="GstRingBufferClass" + glib:is-gtype-struct-for="RingBuffer" + doc="consumed segments in the device. Since 0.10.22 +The vmethods that subclasses can override to implement the ringbuffer."> + <field name="parent_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="open_device"> + <callback name="open_device" c:type="open_device"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="acquire"> + <callback name="acquire" c:type="acquire"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + <parameter name="spec" transfer-ownership="none"> + <type name="RingBufferSpec" c:type="GstRingBufferSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="release"> + <callback name="release" c:type="release"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="close_device"> + <callback name="close_device" c:type="close_device"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start" c:type="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="pause"> + <callback name="pause" c:type="pause"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="resume"> + <callback name="resume" c:type="resume"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop" c:type="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="delay"> + <callback name="delay" c:type="delay"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="activate"> + <callback name="activate" c:type="activate"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="commit"> + <callback name="commit" c:type="commit"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + <parameter name="sample" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guchar*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="in_samples" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="out_samples" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="accum" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="clear_all"> + <callback name="clear_all" c:type="clear_all"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="RingBuffer" c:type="GstRingBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="1"> + <type name="any"/> + </array> + </field> + </record> + <enumeration name="RingBufferSegState" + doc="The state of a segment in the ringbuffer." + glib:type-name="GstRingBufferSegState" + glib:get-type="gst_ring_buffer_seg_state_get_type" + c:type="GstRingBufferSegState"> + <member name="invalid" + value="0" + c:identifier="GST_SEGSTATE_INVALID" + glib:nick="invalid"/> + <member name="empty" + value="1" + c:identifier="GST_SEGSTATE_EMPTY" + glib:nick="empty"/> + <member name="filled" + value="2" + c:identifier="GST_SEGSTATE_FILLED" + glib:nick="filled"/> + <member name="partial" + value="3" + c:identifier="GST_SEGSTATE_PARTIAL" + glib:nick="partial"/> + </enumeration> + <record name="RingBufferSpec" + c:type="GstRingBufferSpec" + doc="defaults to segtotal +The structure containing the format specification of the ringbuffer."> + <field name="caps" writable="1"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="type" writable="1"> + <type name="BufferFormatType" c:type="GstBufferFormatType"/> + </field> + <field name="format" writable="1"> + <type name="BufferFormat" c:type="GstBufferFormat"/> + </field> + <field name="sign" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="bigend" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="width" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="depth" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="rate" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="channels" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="latency_time" writable="1"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="buffer_time" writable="1"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="segsize" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="segtotal" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="bytes_per_sample" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="silence_sample" writable="1"> + <array zero-terminated="0" c:type="guint8" fixed-size="32"> + <type name="uint8"/> + </array> + </field> + <field name="seglatency" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="guint8" fixed-size="0"> + <type name="uint8"/> + </array> + </field> + </record> + <enumeration name="RingBufferState" + doc="The state of the ringbuffer." + glib:type-name="GstRingBufferState" + glib:get-type="gst_ring_buffer_state_get_type" + c:type="GstRingBufferState"> + <member name="stopped" + value="0" + c:identifier="GST_RING_BUFFER_STATE_STOPPED" + glib:nick="stopped"/> + <member name="paused" + value="1" + c:identifier="GST_RING_BUFFER_STATE_PAUSED" + glib:nick="paused"/> + <member name="started" + value="2" + c:identifier="GST_RING_BUFFER_STATE_STARTED" + glib:nick="started"/> + </enumeration> + <function name="buffer_clip" + c:identifier="gst_audio_buffer_clip" + doc="Clip the the buffer to the given %GstSegment. +After calling this function the caller does not own a reference to +otherwise the clipped buffer is returned. +If the buffer has no timestamp, it is assumed to be inside the segment and +is not clipped" + version="0.10.14"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + <parameter name="rate" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="frame_size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="check_channel_positions" + c:identifier="gst_audio_check_channel_positions" + doc="This functions checks if the given channel positions are valid. Channel +positions are valid if: +<itemizedlist> +<listitem><para>No channel positions appears twice or all positions are %GST_AUDIO_CHANNEL_POSITION_NONE. +</para></listitem> +<listitem><para>Either all or none of the channel positions are %GST_AUDIO_CHANNEL_POSITION_NONE. +</para></listitem> +<listitem><para>%GST_AUDIO_CHANNEL_POSITION_FRONT_MONO and %GST_AUDIO_CHANNEL_POSITION_FRONT_LEFT or %GST_AUDIO_CHANNEL_POSITION_FRONT_RIGHT don't appear together in the given positions. +</para></listitem> +</itemizedlist> +and %FALSE otherwise." + version="0.10.20"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pos" transfer-ownership="none"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + <parameter name="channels" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="default_registry_mixer_filter" + c:identifier="gst_audio_default_registry_mixer_filter" + doc="Utility function to find audio mixer elements. +Will traverse the default plugin registry in order of plugin rank and +find usable audio mixer elements. The caller may optionally fine-tune +the selection by specifying a filter function. +element in the list by setting it to NULL state and calling +gst_object_unref(). After that the list itself should be freed +using g_list_free()." + version="0.10.2"> + <return-value transfer-ownership="full"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="filter_func" transfer-ownership="none" scope="call"> + <type name="AudioMixerFilterFunc" c:type="GstAudioMixerFilterFunc"/> + </parameter> + <parameter name="first" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="duration_from_pad_buffer" + c:identifier="gst_audio_duration_from_pad_buffer" + doc="Calculate length in nanoseconds of audio buffer @buf based on capabilities of"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="fixate_channel_positions" + c:identifier="gst_audio_fixate_channel_positions" + doc=""channel-positions" field. +Custom fixate function. Elements that implement some sort of +channel conversion algorithm should use this function for +fixating on GstAudioChannelPosition properties. It will take +care of equal channel positioning (left/right). Caller g_free()s +the return value. The input properties may be (and are supposed +to be) unfixed. +Note that this function is mostly a hack because we currently +have no way to add default fixation functions for new GTypes. +set of #GstAudioChannelPosition values."> + <return-value transfer-ownership="full"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="frame_byte_size" + c:identifier="gst_audio_frame_byte_size" + doc="Calculate byte size of an audio frame."> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="frame_length" + c:identifier="gst_audio_frame_length" + doc="Calculate length of buffer in frames."> + <return-value transfer-ownership="none"> + <type name="long" c:type="long"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="get_channel_positions" + c:identifier="gst_audio_get_channel_positions" + doc="Retrieves a number of (fixed!) audio channel positions from +the provided #GstStructure and returns it as a newly allocated +array. The caller should g_free () this array. The caller +should also check that the members in this #GstStructure are +indeed "fixed" before calling this function. +positions as provided in the given #GstStructure. Returns +NULL on error."> + <return-value transfer-ownership="full"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </function> + <function name="is_buffer_framed" + c:identifier="gst_audio_is_buffer_framed" + doc="Check if the buffer size is a whole multiple of the frame size."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="set_caps_channel_positions_list" + c:identifier="gst_audio_set_caps_channel_positions_list" + doc="channel positions that we should add in each value +of the array in the given structure. +Sets a (possibly non-fixed) list of possible audio channel +positions (given in pos) on the given caps. Each of the +structures of the caps, after this function has been called, +will contain a "channel-positions" field with an array. +Each value in the array will contain each of the values given +in the pos array. Note that the size of the caps might be +increased by this, since each structure with a "channel- +positions" field needs to have a fixed "channels" field. +The input caps is not required to have this."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="pos" transfer-ownership="none"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + <parameter name="num_positions" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="set_channel_positions" + c:identifier="gst_audio_set_channel_positions" + doc="in this array should be equal to the (fixed!) number +of the "channels" field in the given #GstStructure. +Adds a "channel-positions" field to the given #GstStructure, +which will represent the channel positions as given in the +provided #GstAudioChannelPosition array."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="pos" transfer-ownership="none"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + </parameters> + </function> + <function name="set_structure_channel_positions_list" + c:identifier="gst_audio_set_structure_channel_positions_list" + doc="on. +channel positions that we should add in each value +of the array in the given structure. +Sets a (possibly non-fixed) list of possible audio channel +positions (given in pos) on the given structure. The +structure, after this function has been called, will contain +a "channel-positions" field with an array of the size of +the "channels" field value in the given structure (note +that this means that the channels field in the provided +structure should be fixed!). Each value in the array will +contain each of the values given in the pos array."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="pos" transfer-ownership="none"> + <type name="AudioChannelPosition" c:type="GstAudioChannelPosition*"/> + </parameter> + <parameter name="num_positions" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="structure_set_int" + c:identifier="gst_audio_structure_set_int" + doc="Do not use anymore." + deprecated="use gst_structure_set()"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="structure" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + <parameter name="flag" transfer-ownership="none"> + <type name="AudioFieldFlag" c:type="GstAudioFieldFlag"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/audio/audio.factor b/basis/gstreamer/audio/audio.factor new file mode 100644 index 0000000000..1495be4c9e --- /dev/null +++ b/basis/gstreamer/audio/audio.factor @@ -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 + diff --git a/basis/gstreamer/audio/ffi/ffi.factor b/basis/gstreamer/audio/ffi/ffi.factor new file mode 100644 index 0000000000..5b0be1db23 --- /dev/null +++ b/basis/gstreamer/audio/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/base/GstBase-0.10.gir b/basis/gstreamer/base/GstBase-0.10.gir new file mode 100644 index 0000000000..a4ebc0125b --- /dev/null +++ b/basis/gstreamer/base/GstBase-0.10.gir @@ -0,0 +1,5397 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <c:include name="gst/base/gstadapter.h"/> + <c:include name="gst/base/gstbasesink.h"/> + <c:include name="gst/base/gstbasesrc.h"/> + <c:include name="gst/base/gstbasetransform.h"/> + <c:include name="gst/base/gstbitreader.h"/> + <c:include name="gst/base/gstbytereader.h"/> + <c:include name="gst/base/gstbytewriter.h"/> + <c:include name="gst/base/gstcollectpads.h"/> + <c:include name="gst/base/gstdataqueue.h"/> + <c:include name="gst/base/gstpushsrc.h"/> + <c:include name="gst/base/gsttypefindhelper.h"/> + <namespace name="GstBase" + version="0.10" + shared-library="libgstbase-0.10.so.0" + c:prefix="Gst"> + <class name="Adapter" + c:type="GstAdapter" + doc="The opaque #GstAdapter data structure." + parent="GObject.Object" + glib:type-name="GstAdapter" + glib:get-type="gst_adapter_get_type" + glib:type-struct="AdapterClass"> + <constructor name="new" + c:identifier="gst_adapter_new" + doc="Creates a new #GstAdapter. Free with g_object_unref()."> + <return-value transfer-ownership="full"> + <type name="Adapter" c:type="GstAdapter*"/> + </return-value> + </constructor> + <method name="clear" + c:identifier="gst_adapter_clear" + doc="Removes all buffers from @adapter."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="push" + c:identifier="gst_adapter_push" + doc="Adds the data from @buf to the data stored inside @adapter and takes +ownership of the buffer. +Empty buffers will be automatically dereferenced and not stored in the"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="peek" + c:identifier="gst_adapter_peek" + doc="Gets the first @size bytes stored in the @adapter. The returned pointer is +valid until the next function is called on the adapter. +Note that setting the returned pointer as the data of a #GstBuffer is +incorrect for general-purpose plugins. The reason is that if a downstream +element stores the buffer so that it has access to it outside of the bounds +of its chain function, the buffer will have an invalid data pointer after +your element flushes the bytes. In that case you should use +gst_adapter_take(), which returns a freshly-allocated buffer that you can set +as #GstBuffer malloc_data or the potentially more performant +gst_adapter_take_buffer(). +Returns #NULL if @size bytes are not available."> + <return-value transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="copy" + c:identifier="gst_adapter_copy" + doc="Copies @size bytes of data starting at @offset out of the buffers +contained in @GstAdapter into an array @dest provided by the caller. +The array @dest should be large enough to contain @size bytes. +The user should check that the adapter has (@offset + @size) bytes +available before calling this function." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="dest" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="flush" + c:identifier="gst_adapter_flush" + doc="Flushes the first @flush bytes in the @adapter. The caller must ensure that +at least this many bytes are available."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="flush" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="take" + c:identifier="gst_adapter_take" + doc="Returns a freshly allocated buffer containing the first @nbytes bytes of the +Caller owns returned value. g_free after usage."> + <return-value transfer-ownership="full"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </return-value> + <parameters> + <parameter name="nbytes" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="take_buffer" + c:identifier="gst_adapter_take_buffer" + doc="Returns a #GstBuffer containing the first @nbytes bytes of the +This function is potentially more performant than gst_adapter_take() +since it can reuse the memory in pushed buffers by subbuffering +or merging. +Caller owns returned value. gst_buffer_unref() after usage. +or #NULL if @nbytes bytes are not available" + version="0.10.6"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="nbytes" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="available" + c:identifier="gst_adapter_available" + doc="Gets the maximum amount of bytes available, that is it returns the maximum +value that can be supplied to gst_adapter_peek() without that function +returning NULL."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="available_fast" + c:identifier="gst_adapter_available_fast" + doc="Gets the maximum number of bytes that are immediately available without +requiring any expensive operations (like copying the data into a +temporary buffer). +operations"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="prev_timestamp" + c:identifier="gst_adapter_prev_timestamp" + doc="Get the timestamp that was before the current byte in the adapter. When +position is returned. +The timestamp is reset to GST_CLOCK_TIME_NONE when the adapter is first +created or when it is cleared." + version="0.10.24"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="distance" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="masked_scan_uint32" + c:identifier="gst_adapter_masked_scan_uint32" + doc="the last scanned position. +Scan for pattern @pattern with applied mask @mask in the adapter data, +starting from offset @offset. +The bytes in @pattern and @mask are interpreted left-to-right, regardless +of endianness. All four bytes of the pattern must be present in the +adapter for it to match, even if the first or last bytes are masked out. +It is an error to call this function without making sure that there is +enough data (offset+size bytes) in the adapter. +Example: +<programlisting> +// Assume the adapter contains 0x00 0x01 0x02 ... 0xfe 0xff +gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 0, 256); +// -> returns 0 +gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x00010203, 1, 255); +// -> returns -1 +gst_adapter_masked_scan_uint32 (adapter, 0xffffffff, 0x01020304, 1, 255); +// -> returns 1 +gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0001, 0, 256); +// -> returns -1 +gst_adapter_masked_scan_uint32 (adapter, 0xffff, 0x0203, 0, 256); +// -> returns 0 +gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 256); +// -> returns 2 +gst_adapter_masked_scan_uint32 (adapter, 0xffff0000, 0x02030000, 0, 4); +// -> returns -1 +</programlisting>" + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="mask" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="pattern" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="buflist"> + <type name="GLib.SList" c:type="GSList*"/> + </field> + <field name="size"> + <type name="uint" c:type="guint"/> + </field> + <field name="skip"> + <type name="uint" c:type="guint"/> + </field> + <field name="assembled_data"> + <type name="any" c:type="guint8*"/> + </field> + <field name="assembled_size"> + <type name="uint" c:type="guint"/> + </field> + <field name="assembled_len"> + <type name="uint" c:type="guint"/> + </field> + <field name="buflist_end"> + <type name="GLib.SList" c:type="GSList*"/> + </field> + <field name="priv"> + <type name="AdapterPrivate" c:type="GstAdapterPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> + <type name="any"/> + </array> + </field> + </class> + <record name="AdapterClass" + c:type="GstAdapterClass" + glib:is-gtype-struct-for="Adapter"> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="AdapterPrivate" c:type="GstAdapterPrivate"> + </record> + <class name="BaseSink" + c:type="GstBaseSink" + doc="The opaque #GstBaseSink data structure." + parent="Gst.Element" + abstract="1" + glib:type-name="GstBaseSink" + glib:get-type="gst_base_sink_get_type" + glib:type-struct="BaseSinkClass"> + <virtual-method name="get_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + </virtual-method> + <virtual-method name="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="buffer_alloc"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_times"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="unlock"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="preroll"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="render"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="async_play"> + <return-value transfer-ownership="full"> + <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + </virtual-method> + <virtual-method name="activate_pull"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="active" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fixate"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="unlock_stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="render_list"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer_list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </virtual-method> + <method name="do_preroll" + c:identifier="gst_base_sink_do_preroll" + doc="If the @sink spawns its own thread for pulling buffers from upstream it +should call this method after it has pulled a buffer. If the element needed +to preroll, this function will perform the preroll and will then block +until the element state is changed. +This function should be called with the PREROLL_LOCK held. +Since 0.10.22 +continue. Any other return value should be returned from the render vmethod."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </parameter> + </parameters> + </method> + <method name="wait_preroll" + c:identifier="gst_base_sink_wait_preroll" + doc="If the #GstBaseSinkClass.render() method performs its own synchronisation +against the clock it must unblock when going from PLAYING to the PAUSED state +and call this method before continuing to render the remaining data. +This function will block until a state change to PLAYING happens (in which +case this function returns #GST_FLOW_OK) or the processing must be stopped due +to a state change to READY or a FLUSH event (in which case this function +returns #GST_FLOW_WRONG_STATE). +This function should only be called with the PREROLL_LOCK held, like in the +render function. +continue. Any other return value should be returned from the render vmethod." + version="0.10.11"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + </method> + <method name="set_sync" + c:identifier="gst_base_sink_set_sync" + doc="Configures @sink to synchronize on the clock or not. When +possible. If @sync is TRUE, the timestamps of the incomming +buffers will be used to schedule the exact render time of its +contents." + version="0.10.4"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sync" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_sync" + c:identifier="gst_base_sink_get_sync" + doc="Checks if @sink is currently configured to synchronize against the +clock." + version="0.10.4"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_max_lateness" + c:identifier="gst_base_sink_set_max_lateness" + doc="Sets the new max lateness value to @max_lateness. This value is +used to decide if a buffer should be dropped or not based on the +buffer timestamp and the current clock time. A value of -1 means +an unlimited time." + version="0.10.4"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="max_lateness" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="get_max_lateness" + c:identifier="gst_base_sink_get_max_lateness" + doc="Gets the max lateness value. See gst_base_sink_set_max_lateness for +more details. +before it is dropped and not rendered. A value of -1 means an +unlimited time." + version="0.10.4"> + <return-value transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </return-value> + </method> + <method name="set_qos_enabled" + c:identifier="gst_base_sink_set_qos_enabled" + doc="Configures @sink to send Quality-of-Service events upstream." + version="0.10.5"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enabled" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_qos_enabled" + c:identifier="gst_base_sink_is_qos_enabled" + doc="Checks if @sink is currently configured to send Quality-of-Service events +upstream." + version="0.10.5"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_async_enabled" + c:identifier="gst_base_sink_set_async_enabled" + doc="Configures @sink to perform all state changes asynchronusly. When async is +disabled, the sink will immediatly go to PAUSED instead of waiting for a +preroll buffer. This feature is usefull if the sink does not synchronize +against the clock or when it is dealing with sparse streams." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enabled" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_async_enabled" + c:identifier="gst_base_sink_is_async_enabled" + doc="Checks if @sink is currently configured to perform asynchronous state +changes to PAUSED. +changes." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_ts_offset" + c:identifier="gst_base_sink_set_ts_offset" + doc="Adjust the synchronisation of @sink with @offset. A negative value will +render buffers earlier than their timestamp. A positive value will delay +rendering. This function can be used to fix playback of badly timestamped +buffers." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="offset" transfer-ownership="none"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </parameter> + </parameters> + </method> + <method name="get_ts_offset" + c:identifier="gst_base_sink_get_ts_offset" + doc="Get the synchronisation offset of @sink." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </return-value> + </method> + <method name="get_last_buffer" + c:identifier="gst_base_sink_get_last_buffer" + doc="Get the last buffer that arrived in the sink and was used for preroll or for +rendering. This property can be used to generate thumbnails. +The #GstCaps on the buffer can be used to determine the type of the buffer. +NULL when no buffer has arrived in the sink yet or when the sink is not in +PAUSED or PLAYING." + version="0.10.15"> + <return-value transfer-ownership="full" + doc="after usage. This function returns"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + </method> + <method name="query_latency" + c:identifier="gst_base_sink_query_latency" + doc="Query the sink for the latency parameters. The latency will be queried from +the upstream elements. @live will be TRUE if @sink is configured to +synchronize against the clock. @upstream_live will be TRUE if an upstream +element is live. +If both @live and @upstream_live are TRUE, the sink will want to compensate +for the latency introduced by the upstream elements by setting the +This function is mostly used by subclasses." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="live" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + <parameter name="upstream_live" + direction="out" + transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + <parameter name="min_latency" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max_latency" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="get_latency" + c:identifier="gst_base_sink_get_latency" + doc="Get the currently configured latency." + version="0.10.12"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + </method> + <method name="set_render_delay" + c:identifier="gst_base_sink_set_render_delay" + doc="Set the render delay in @sink to @delay. The render delay is the time +between actual rendering of a buffer and its synchronisation time. Some +devices might delay media rendering which can be compensated for with this +function. +After calling this function, this sink will report additional latency and +other sinks will adjust their latency to delay the rendering of their media. +This function is usually called by subclasses." + version="0.10.21"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="delay" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_render_delay" + c:identifier="gst_base_sink_get_render_delay" + doc="Get the render delay of @sink. see gst_base_sink_set_render_delay() for more +information about the render delay." + version="0.10.21"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + </method> + <method name="set_blocksize" + c:identifier="gst_base_sink_set_blocksize" + doc="Set the number of bytes that the sink will pull when it is operating in pull +mode." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="blocksize" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_blocksize" + c:identifier="gst_base_sink_get_blocksize" + doc="Get the number of bytes that the sink will pull when it is operating in pull +mode." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="wait_clock" + c:identifier="gst_base_sink_wait_clock" + doc="This function will block until @time is reached. It is usually called by +subclasses that use their own internal synchronisation. +If @time is not valid, no sycnhronisation is done and #GST_CLOCK_BADTIME is +returned. Likewise, if synchronisation is disabled in the element or there +is no clock, no synchronisation is done and #GST_CLOCK_BADTIME is returned. +This function should only be called with the PREROLL_LOCK held, like when +receiving an EOS event in the #GstBaseSinkClass.event() vmethod or when +receiving a buffer in +the #GstBaseSinkClass.render() vmethod. +The @time argument should be the running_time of when this method should +return and is not adjusted with any latency or offset configured in the +sink. +Since 0.10.20"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockReturn" c:type="GstClockReturn"/> + </return-value> + <parameters> + <parameter name="time" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="jitter" transfer-ownership="none"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </method> + <method name="wait_eos" + c:identifier="gst_base_sink_wait_eos" + doc="This function will block until @time is reached. It is usually called by +subclasses that use their own internal synchronisation but want to let the +EOS be handled by the base class. +This function should only be called with the PREROLL_LOCK held, like when +receiving an EOS event in the ::event vmethod. +The @time argument should be the running_time of when the EOS should happen +and will be adjusted with any latency and offset configured in the sink. +Since 0.10.15"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="time" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="jitter" transfer-ownership="none"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff*"/> + </parameter> + </parameters> + </method> + <property name="async" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="blocksize" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="last-buffer"> + <type name="Gst.Buffer" c:type="GstBuffer"/> + </property> + <property name="max-lateness" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="preroll-queue-len" writable="1" construct="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="qos" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="render-delay" writable="1"> + <type name="uint64" c:type="guint64"/> + </property> + <property name="sync" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="ts-offset" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="pad_mode"> + <type name="Gst.ActivateMode" c:type="GstActivateMode"/> + </field> + <field name="offset"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="can_activate_pull"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="can_activate_push"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="preroll_queue"> + <type name="GLib.Queue" c:type="GQueue*"/> + </field> + <field name="preroll_queue_max_len"> + <type name="int" c:type="gint"/> + </field> + <field name="preroll_queued"> + <type name="int" c:type="gint"/> + </field> + <field name="buffers_queued"> + <type name="int" c:type="gint"/> + </field> + <field name="events_queued"> + <type name="int" c:type="gint"/> + </field> + <field name="eos"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="eos_queued"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="need_preroll"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="have_preroll"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="playing_async"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="have_newsegment"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="clock_id"> + <type name="Gst.ClockID" c:type="GstClockID"/> + </field> + <field name="end_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="sync"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="flushing"> + <type name="boolean" c:type="gboolean"/> + </field> + <union name="abidata" c:type="abidata"> + <record name="ABI" c:type="ABI"> + <field name="clip_segment" writable="1"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </field> + <field name="max_lateness" writable="1"> + <type name="int64" c:type="gint64"/> + </field> + <field name="running" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="19"> + <type name="any"/> + </array> + </field> + </union> + <field name="priv"> + <type name="BaseSinkPrivate" c:type="GstBaseSinkPrivate*"/> + </field> + </class> + <record name="BaseSinkClass" + c:type="GstBaseSinkClass" + glib:is-gtype-struct-for="BaseSink" + doc="the passed buffer to the clock +unblock any blocked function ASAP +any state they set during unlock(), such as clearing command queues. +correct moment if the #GstBaseSink has been set to sync to the clock. +special processing when changing to the PLAYING state asynchronously. +Called with the OBJECT_LOCK held. +alternate method of spawning a thread to drive the pipeline in pull mode. +Should start or stop the pulling thread, depending on the value of the +"active" argument. Called after actually activating the sink pad in pull +mode. The default implementation starts a task on the sink pad. +gst_pad_fixate_caps() being called on the sink pad. Implement if you have +ideas about what should be the default values for the caps you support. +Subclasses can override any of the available virtual methods or not, as +needed. At the minimum, the @render method should be overridden to +output/present buffers."> + <field name="parent_class"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="get_caps"> + <callback name="get_caps" c:type="get_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps" c:type="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="buffer_alloc"> + <callback name="buffer_alloc" c:type="buffer_alloc"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_times"> + <callback name="get_times" c:type="get_times"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start" c:type="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop" c:type="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock"> + <callback name="unlock" c:type="unlock"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="event"> + <callback name="event" c:type="event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="preroll"> + <callback name="preroll" c:type="preroll"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="render"> + <callback name="render" c:type="render"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="async_play"> + <callback name="async_play" c:type="async_play"> + <return-value transfer-ownership="full"> + <type name="Gst.StateChangeReturn" c:type="GstStateChangeReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="activate_pull"> + <callback name="activate_pull" c:type="activate_pull"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fixate"> + <callback name="fixate" c:type="fixate"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock_stop"> + <callback name="unlock_stop" c:type="unlock_stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="render_list"> + <callback name="render_list" c:type="render_list"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="sink" transfer-ownership="none"> + <type name="BaseSink" c:type="GstBaseSink*"/> + </parameter> + <parameter name="buffer_list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="15"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseSinkPrivate" c:type="GstBaseSinkPrivate"> + </record> + <class name="BaseSrc" + c:type="GstBaseSrc" + doc="The opaque #GstBaseSrc data structure." + parent="Gst.Element" + abstract="1" + glib:type-name="GstBaseSrc" + glib:get-type="gst_base_src_get_type" + glib:type-struct="BaseSrcClass"> + <virtual-method name="get_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + </virtual-method> + <virtual-method name="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="negotiate"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="newsegment"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="get_times"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_size"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="size" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="is_seekable"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="unlock"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="create"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="do_seek"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="query"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="check_get_range"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="fixate"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="unlock_stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="prepare_seek_segment"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="seek" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </virtual-method> + <method name="wait_playing" + c:identifier="gst_base_src_wait_playing" + doc="If the #GstBaseSrcClass.create() method performs its own synchronisation +against the clock it must unblock when going from PLAYING to the PAUSED state +and call this method before continuing to produce the remaining data. +This function will block until a state change to PLAYING happens (in which +case this function returns #GST_FLOW_OK) or the processing must be stopped due +to a state change to READY or a FLUSH event (in which case this function +returns #GST_FLOW_WRONG_STATE). +continue. Any other return value should be returned from the create vmethod." + version="0.10.12"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + </method> + <method name="set_live" + c:identifier="gst_base_src_set_live" + doc="If the element listens to a live source, @live should +be set to %TRUE. +A live source will not produce data in the PAUSED state and +will therefore not be able to participate in the PREROLL phase +of a pipeline. To signal this fact to the application and the +pipeline, the state change return value of the live source will +be GST_STATE_CHANGE_NO_PREROLL."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="live" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_live" + c:identifier="gst_base_src_is_live" + doc="Check if an element is in live mode."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_format" + c:identifier="gst_base_src_set_format" + doc="Sets the default format of the source. This will be the format used +for sending NEW_SEGMENT events and for performing seeks. +If a format of GST_FORMAT_BYTES is set, the element will be able to +operate in pull mode if the #GstBaseSrc.is_seekable() returns TRUE. +This function must only be called in states < %GST_STATE_PAUSED." + version="0.10.1"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + </parameters> + </method> + <method name="query_latency" + c:identifier="gst_base_src_query_latency" + doc="Query the source for the latency parameters. @live will be TRUE when @src is +configured as a live source. @min_latency will be set to the difference +between the running time and the timestamp of the first buffer. +This function is mostly used by subclasses." + version="0.10.13"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="live" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + <parameter name="min_latency" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="max_latency" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </method> + <method name="set_blocksize" + c:identifier="gst_base_src_set_blocksize" + doc="Set the number of bytes that @src will push out with each buffer. When" + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="blocksize" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="get_blocksize" + c:identifier="gst_base_src_get_blocksize" + doc="Get the number of bytes that @src will push out with each buffer." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </return-value> + </method> + <method name="set_do_timestamp" + c:identifier="gst_base_src_set_do_timestamp" + doc="Configure @src to automatically timestamp outgoing buffers based on the +current running_time of the pipeline. This property is mostly useful for live +sources." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_do_timestamp" + c:identifier="gst_base_src_get_do_timestamp" + doc="Query if @src timestamps outgoing buffers based on the current running_time." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="new_seamless_segment" + c:identifier="gst_base_src_new_seamless_segment" + doc="Prepare a new seamless segment for emission downstream. This function must +only be called by derived sub-classes, and only from the create() function, +as the stream-lock needs to be held. +The format for the new segment will be the current format of the source, as +configured with gst_base_src_set_format()" + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="start" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + <parameter name="position" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <property name="blocksize" writable="1"> + <type name="ulong" c:type="gulong"/> + </property> + <property name="do-timestamp" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="num-buffers" writable="1"> + <type name="int" c:type="gint"/> + </property> + <property name="typefind" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="live_lock"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="live_cond"> + <type name="GLib.Cond" c:type="GCond*"/> + </field> + <field name="is_live"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="live_running"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="blocksize"> + <type name="int" c:type="gint"/> + </field> + <field name="can_activate_push"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="pad_mode"> + <type name="Gst.ActivateMode" c:type="GstActivateMode"/> + </field> + <field name="seekable"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="random_access"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="clock_id"> + <type name="Gst.ClockID" c:type="GstClockID"/> + </field> + <field name="end_time"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="need_newsegment"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="offset"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="size"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="num_buffers"> + <type name="int" c:type="gint"/> + </field> + <field name="num_buffers_left"> + <type name="int" c:type="gint"/> + </field> + <union name="data" c:type="data"> + <record name="ABI" c:type="ABI"> + <field name="typefind" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="running" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="pending_seek" writable="1"> + <type name="Gst.Event" c:type="GstEvent*"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="19"> + <type name="any"/> + </array> + </field> + </union> + <field name="priv"> + <type name="BaseSrcPrivate" c:type="GstBaseSrcPrivate*"/> + </field> + </class> + <record name="BaseSrcClass" + c:type="GstBaseSrcClass" + glib:is-gtype-struct-for="BaseSrc" + doc="to produce data. +should be pushed out. The base class will sync on the clock using +these times. +unblock any blocked function ASAP +any state they set during unlock(), such as clearing command queues. +do_seek vmethod for executing a seek request. Sub-classes should override +this if they support seeking in formats other than the configured native +format. By default, it tries to convert the seek arguments to the +configured native format and prepare a segment in that format. +operation if it were to be opened now. This vfunc is optional, but +should be implemented if possible to avoid unnecessary start/stop +cycles. The default implementation will open and close the resource +to find out whether get_range is supported, and that is usually +undesirable. +setting a fixate function on the source pad. +Subclasses can override any of the available virtual methods or not, as +needed. At the minimum, the @create method should be overridden to produce +buffers." + version="0.10.13"> + <field name="parent_class"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="get_caps"> + <callback name="get_caps" c:type="get_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps" c:type="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="negotiate"> + <callback name="negotiate" c:type="negotiate"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="newsegment"> + <callback name="newsegment" c:type="newsegment"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start" c:type="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop" c:type="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_times"> + <callback name="get_times" c:type="get_times"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="start" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + <parameter name="end" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_size"> + <callback name="get_size" c:type="get_size"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="size" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="is_seekable"> + <callback name="is_seekable" c:type="is_seekable"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock"> + <callback name="unlock" c:type="unlock"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="event"> + <callback name="event" c:type="event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="create"> + <callback name="create" c:type="create"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="do_seek"> + <callback name="do_seek" c:type="do_seek"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="query"> + <callback name="query" c:type="query"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="check_get_range"> + <callback name="check_get_range" c:type="check_get_range"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fixate"> + <callback name="fixate" c:type="fixate"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="unlock_stop"> + <callback name="unlock_stop" c:type="unlock_stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="prepare_seek_segment"> + <callback name="prepare_seek_segment" c:type="prepare_seek_segment"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="BaseSrc" c:type="GstBaseSrc*"/> + </parameter> + <parameter name="seek" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="segment" transfer-ownership="none"> + <type name="Gst.Segment" c:type="GstSegment*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="14"> + <type name="any"/> + </array> + </field> + </record> + <bitfield name="BaseSrcFlags" + doc="The #GstElement flags that a basesrc element may have." + c:type="GstBaseSrcFlags"> + <member name="started" + value="1048576" + c:identifier="GST_BASE_SRC_STARTED"/> + <member name="flag_last" + value="4194304" + c:identifier="GST_BASE_SRC_FLAG_LAST"/> + </bitfield> + <record name="BaseSrcPrivate" c:type="GstBaseSrcPrivate"> + </record> + <class name="BaseTransform" + c:type="GstBaseTransform" + doc="The opaque #GstBaseTransform data structure." + parent="Gst.Element" + abstract="1" + glib:type-name="GstBaseTransform" + glib:get-type="gst_base_transform_get_type" + glib:type-struct="BaseTransformClass"> + <virtual-method name="transform_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="fixate_caps"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othercaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_size"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="othercaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othersize" + direction="out" + transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_unit_size"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </virtual-method> + <virtual-method name="event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="transform_ip"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="prepare_output_buffer"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="src_event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="before_transform"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <method name="set_passthrough" + c:identifier="gst_base_transform_set_passthrough" + doc="Set passthrough mode for this filter by default. This is mostly +useful for filters that do not care about negotiation. +Always TRUE for filters which don't implement either a transform +or transform_ip method. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="passthrough" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_passthrough" + c:identifier="gst_base_transform_is_passthrough" + doc="See if @trans is configured as a passthrough transform. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_in_place" + c:identifier="gst_base_transform_set_in_place" + doc="on in_place buffers. +Determines whether a non-writable buffer will be copied before passing +to the transform_ip function. +<itemizedlist> +<listitem>Always TRUE if no transform function is implemented.</listitem> +<listitem>Always FALSE if ONLY transform function is implemented.</listitem> +</itemizedlist> +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="in_place" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_in_place" + c:identifier="gst_base_transform_is_in_place" + doc="See if @trans is configured as a in_place transform. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="update_qos" + c:identifier="gst_base_transform_update_qos" + doc="running_time. +Set the QoS parameters in the transform. This function is called internally +when a QOS event is received but subclasses can provide custom information +when needed. +MT safe." + version="0.10.5"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="proportion" transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </parameter> + <parameter name="diff" transfer-ownership="none"> + <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="set_qos_enabled" + c:identifier="gst_base_transform_set_qos_enabled" + doc="Enable or disable QoS handling in the transform. +MT safe." + version="0.10.5"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enabled" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_qos_enabled" + c:identifier="gst_base_transform_is_qos_enabled" + doc="Queries if the transform will handle QoS. +MT safe." + version="0.10.5"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="set_gap_aware" + c:identifier="gst_base_transform_set_gap_aware" + doc="If @gap_aware is %FALSE (the default), output buffers will have the +%GST_BUFFER_FLAG_GAP flag unset. +If set to %TRUE, the element must handle output buffers with this flag set +correctly, i.e. it can assume that the buffer contains neutral data but must +unset the flag if the output is no neutral data. +MT safe." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="gap_aware" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="suggest" + c:identifier="gst_base_transform_suggest" + doc="Instructs @trans to suggest new @caps upstream. A copy of @caps will be +taken." + version="0.10.21"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="reconfigure" + c:identifier="gst_base_transform_reconfigure" + doc="Instructs @trans to renegotiate a new downstream transform on the next +buffer. This function is typically called after properties on the transform +were set that influence the output format." + version="0.10.21"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <property name="qos" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="passthrough"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="always_in_place"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="cache_caps1"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="cache_caps1_size"> + <type name="uint" c:type="guint"/> + </field> + <field name="cache_caps2"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </field> + <field name="cache_caps2_size"> + <type name="uint" c:type="guint"/> + </field> + <field name="have_same_caps"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="delay_configure"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="pending_configure"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="negotiated"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="have_newsegment"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="transform_lock"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="priv"> + <type name="BaseTransformPrivate" c:type="GstBaseTransformPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="19"> + <type name="any"/> + </array> + </field> + </class> + <record name="BaseTransformClass" + c:type="GstBaseTransformClass" + glib:is-gtype-struct-for="BaseTransform" + doc="caps, what caps are allowed on the other pad in this +element ? +caps, fixate the caps on the other pad. +with the given caps, calculate the size in bytes of a buffer +on the other pad with the given other caps. +The default implementation uses get_unit_size and keeps +the number of units the same. +get the size in bytes of one unit for the given caps. +Called when the element starts processing. +Allows opening external resources. +Called when the element stops processing. +Allows closing external resources. +Transforms one incoming buffer to one outgoing buffer. +The function is allowed to change size/timestamp/duration +of the outgoing buffer. +Transform the incoming buffer in-place. +Event handler on the sink pad. This function should return +TRUE if the base class should forward the event. +Event handler on the source pad. +automatically enabled if the caps are the same. +Subclasses can override this to do their own +allocation of output buffers. Elements that only do +analysis can return a subbuffer or even just +increment the reference to the input buffer (if in +passthrough mode) +This method is called right before the base class will +start processing. Dynamic properties or other delayed +configuration could be performed in this method. +Subclasses can override any of the available virtual methods or not, as +needed. At minimum either @transform or @transform_ip need to be overridden. +If the element can overwrite the input data with the results (data is of the +same type and quantity) it should provide @transform_ip."> + <field name="parent_class"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="transform_caps"> + <callback name="transform_caps" c:type="transform_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="fixate_caps"> + <callback name="fixate_caps" c:type="fixate_caps"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othercaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_size"> + <callback name="transform_size" c:type="transform_size"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="direction" transfer-ownership="none"> + <type name="Gst.PadDirection" c:type="GstPadDirection"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="othercaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="othersize" + direction="out" + transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_unit_size"> + <callback name="get_unit_size" c:type="get_unit_size"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="size" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_caps"> + <callback name="set_caps" c:type="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="incaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="outcaps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="start"> + <callback name="start" c:type="start"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="stop"> + <callback name="stop" c:type="stop"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="event"> + <callback name="event" c:type="event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform"> + <callback name="transform" c:type="transform"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="inbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="outbuf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="transform_ip"> + <callback name="transform_ip" c:type="transform_ip"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="passthrough_on_same_caps"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="prepare_output_buffer"> + <callback name="prepare_output_buffer" c:type="prepare_output_buffer"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="input" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="src_event"> + <callback name="src_event" c:type="src_event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="before_transform"> + <callback name="before_transform" c:type="before_transform"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="BaseTransform" c:type="GstBaseTransform*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="18"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseTransformPrivate" c:type="GstBaseTransformPrivate"> + </record> + <record name="BitReader" + c:type="GstBitReader" + doc="A bit reader instance."> + <field name="data" writable="1"> + <type name="any" c:type="guint8*"/> + </field> + <field name="size" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="byte" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="bit" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <constructor name="new" + c:identifier="gst_bit_reader_new" + doc="Create a new #GstBitReader instance, which will read from @data." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="BitReader" c:type="GstBitReader*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_buffer" + c:identifier="gst_bit_reader_new_from_buffer" + doc="Create a new #GstBitReader instance, which will read from the +#GstBuffer @buffer." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="BitReader" c:type="GstBitReader*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </constructor> + <method name="free" + c:identifier="gst_bit_reader_free" + doc="Frees a #GstBitReader instance, which was previously allocated by +gst_bit_reader_new() or gst_bit_reader_new_from_buffer()." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="init" + c:identifier="gst_bit_reader_init" + doc="Initializes a #GstBitReader instance to read from @data. This function +can be called on already initialized instances." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="init_from_buffer" + c:identifier="gst_bit_reader_init_from_buffer" + doc="Initializes a #GstBitReader instance to read from @buffer. This function +can be called on already initialized instances." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="set_pos" + c:identifier="gst_bit_reader_set_pos" + doc="Sets the new position of a #GstBitReader instance to @pos in bits. +otherwise." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pos" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_pos" + c:identifier="gst_bit_reader_get_pos" + doc="Returns the current position of a #GstBitReader instance in bits." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_remaining" + c:identifier="gst_bit_reader_get_remaining" + doc="Returns the remaining number of bits of a #GstBitReader instance." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_size" + c:identifier="gst_bit_reader_get_size" + doc="Returns the total number of bits of a #GstBitReader instance." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="skip" + c:identifier="gst_bit_reader_skip" + doc="Skips @nbits bits of the #GstBitReader instance." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="skip_to_byte" + c:identifier="gst_bit_reader_skip_to_byte" + doc="Skips until the next byte." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="get_bits_uint8" + c:identifier="gst_bit_reader_get_bits_uint8" + doc="Read @nbits bits into @val and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_bits_uint16" + c:identifier="gst_bit_reader_get_bits_uint16" + doc="Read @nbits bits into @val and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_bits_uint32" + c:identifier="gst_bit_reader_get_bits_uint32" + doc="Read @nbits bits into @val and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_bits_uint64" + c:identifier="gst_bit_reader_get_bits_uint64" + doc="Read @nbits bits into @val and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint8" + c:identifier="gst_bit_reader_peek_bits_uint8" + doc="Read @nbits bits into @val but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint16" + c:identifier="gst_bit_reader_peek_bits_uint16" + doc="Read @nbits bits into @val but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint32" + c:identifier="gst_bit_reader_peek_bits_uint32" + doc="Read @nbits bits into @val but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="peek_bits_uint64" + c:identifier="gst_bit_reader_peek_bits_uint64" + doc="Read @nbits bits into @val but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="nbits" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + </record> + <record name="ByteReader" + c:type="GstByteReader" + doc="A byte reader instance."> + <field name="data" writable="1"> + <type name="any" c:type="guint8*"/> + </field> + <field name="size" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="byte" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <constructor name="new" + c:identifier="gst_byte_reader_new" + doc="Create a new #GstByteReader instance, which will read from @data." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="ByteReader" c:type="GstByteReader*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_from_buffer" + c:identifier="gst_byte_reader_new_from_buffer" + doc="Create a new #GstByteReader instance, which will read from the +#GstBuffer @buffer." + version="0.10.22"> + <return-value transfer-ownership="full"> + <type name="ByteReader" c:type="GstByteReader*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </constructor> + <method name="free" + c:identifier="gst_byte_reader_free" + doc="Frees a #GstByteReader instance, which was previously allocated by +gst_byte_reader_new() or gst_byte_reader_new_from_buffer()." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="init" + c:identifier="gst_byte_reader_init" + doc="Initializes a #GstByteReader instance to read from @data. This function +can be called on already initialized instances." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="init_from_buffer" + c:identifier="gst_byte_reader_init_from_buffer" + doc="Initializes a #GstByteReader instance to read from @buffer. This function +can be called on already initialized instances." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="set_pos" + c:identifier="gst_byte_reader_set_pos" + doc="Sets the new position of a #GstByteReader instance to @pos in bytes. +otherwise." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pos" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_pos" + c:identifier="gst_byte_reader_get_pos" + doc="Returns the current position of a #GstByteReader instance in bytes." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_remaining" + c:identifier="gst_byte_reader_get_remaining" + doc="Returns the remaining number of bytes of a #GstByteReader instance." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_size" + c:identifier="gst_byte_reader_get_size" + doc="Returns the total number of bytes of a #GstByteReader instance." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="skip" + c:identifier="gst_byte_reader_skip" + doc="Skips @nbytes bytes of the #GstByteReader instance." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="nbytes" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_uint8" + c:identifier="gst_byte_reader_get_uint8" + doc="Read an unsigned 8 bit integer into @val and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + </parameters> + </method> + <method name="get_int8" + c:identifier="gst_byte_reader_get_int8" + doc="Read a signed 8 bit integer into @val and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int8" c:type="gint8*"/> + </parameter> + </parameters> + </method> + <method name="get_uint16_le" + c:identifier="gst_byte_reader_get_uint16_le" + doc="Read an unsigned 16 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="get_int16_le" + c:identifier="gst_byte_reader_get_int16_le" + doc="Read a signed 16 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="get_uint16_be" + c:identifier="gst_byte_reader_get_uint16_be" + doc="Read an unsigned 16 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="get_int16_be" + c:identifier="gst_byte_reader_get_int16_be" + doc="Read a signed 16 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="get_uint24_le" + c:identifier="gst_byte_reader_get_uint24_le" + doc="Read an unsigned 24 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int24_le" + c:identifier="gst_byte_reader_get_int24_le" + doc="Read a signed 24 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint24_be" + c:identifier="gst_byte_reader_get_uint24_be" + doc="Read an unsigned 24 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int24_be" + c:identifier="gst_byte_reader_get_int24_be" + doc="Read a signed 24 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint32_le" + c:identifier="gst_byte_reader_get_uint32_le" + doc="Read an unsigned 32 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int32_le" + c:identifier="gst_byte_reader_get_int32_le" + doc="Read a signed 32 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint32_be" + c:identifier="gst_byte_reader_get_uint32_be" + doc="Read an unsigned 32 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="get_int32_be" + c:identifier="gst_byte_reader_get_int32_be" + doc="Read a signed 32 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64_le" + c:identifier="gst_byte_reader_get_uint64_le" + doc="Read an unsigned 64 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_int64_le" + c:identifier="gst_byte_reader_get_int64_le" + doc="Read a signed 64 bit little endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_uint64_be" + c:identifier="gst_byte_reader_get_uint64_be" + doc="Read an unsigned 64 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="get_int64_be" + c:identifier="gst_byte_reader_get_int64_be" + doc="Read a signed 64 bit big endian integer into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint8" + c:identifier="gst_byte_reader_peek_uint8" + doc="Read a signed 8 bit integer into @val but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + </parameters> + </method> + <method name="peek_int8" + c:identifier="gst_byte_reader_peek_int8" + doc="Read a signed 8 bit integer into @val but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int8" c:type="gint8*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint16_le" + c:identifier="gst_byte_reader_peek_uint16_le" + doc="Read a signed 16 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_int16_le" + c:identifier="gst_byte_reader_peek_int16_le" + doc="Read a signed 16 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint16_be" + c:identifier="gst_byte_reader_peek_uint16_be" + doc="Read a signed 16 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_int16_be" + c:identifier="gst_byte_reader_peek_int16_be" + doc="Read a signed 16 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int16" c:type="gint16*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint24_le" + c:identifier="gst_byte_reader_peek_uint24_le" + doc="Read a signed 24 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int24_le" + c:identifier="gst_byte_reader_peek_int24_le" + doc="Read a signed 24 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint24_be" + c:identifier="gst_byte_reader_peek_uint24_be" + doc="Read a signed 24 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int24_be" + c:identifier="gst_byte_reader_peek_int24_be" + doc="Read a signed 24 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint32_le" + c:identifier="gst_byte_reader_peek_uint32_le" + doc="Read a signed 32 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int32_le" + c:identifier="gst_byte_reader_peek_int32_le" + doc="Read a signed 32 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint32_be" + c:identifier="gst_byte_reader_peek_uint32_be" + doc="Read a signed 32 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_int32_be" + c:identifier="gst_byte_reader_peek_int32_be" + doc="Read a signed 32 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint64_le" + c:identifier="gst_byte_reader_peek_uint64_le" + doc="Read a signed 64 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_int64_le" + c:identifier="gst_byte_reader_peek_int64_le" + doc="Read a signed 64 bit little endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_uint64_be" + c:identifier="gst_byte_reader_peek_uint64_be" + doc="Read a signed 64 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + </parameters> + </method> + <method name="peek_int64_be" + c:identifier="gst_byte_reader_peek_int64_be" + doc="Read a signed 64 bit big endian integer into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="int64" c:type="gint64*"/> + </parameter> + </parameters> + </method> + <method name="get_float32_le" + c:identifier="gst_byte_reader_get_float32_le" + doc="Read a 32 bit little endian floating point value into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="float" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_float32_be" + c:identifier="gst_byte_reader_get_float32_be" + doc="Read a 32 bit big endian floating point value into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="float" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="get_float64_le" + c:identifier="gst_byte_reader_get_float64_le" + doc="Read a 64 bit little endian floating point value into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="get_float64_be" + c:identifier="gst_byte_reader_get_float64_be" + doc="Read a 64 bit big endian floating point value into @val +and update the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="peek_float32_le" + c:identifier="gst_byte_reader_peek_float32_le" + doc="Read a 32 bit little endian floating point value into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="float" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="peek_float32_be" + c:identifier="gst_byte_reader_peek_float32_be" + doc="Read a 32 bit big endian floating point value into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="float" c:type="gfloat*"/> + </parameter> + </parameters> + </method> + <method name="peek_float64_le" + c:identifier="gst_byte_reader_peek_float64_le" + doc="Read a 64 bit little endian floating point value into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="peek_float64_be" + c:identifier="gst_byte_reader_peek_float64_be" + doc="Read a 64 bit big endian floating point value into @val +but keep the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + </parameters> + </method> + <method name="dup_data" + c:identifier="gst_byte_reader_dup_data" + doc="Returns a newly-allocated copy of the current data +position if at least @size bytes are left and +updates the current position." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + </parameters> + </method> + <method name="get_data" + c:identifier="gst_byte_reader_get_data" + doc="Returns a constant pointer to the current data +position if at least @size bytes are left and +updates the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + </parameters> + </method> + <method name="peek_data" + c:identifier="gst_byte_reader_peek_data" + doc="Returns a constant pointer to the current data +position if at least @size bytes are left and +keeps the current position." + version="0.10.22"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="val" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + </parameters> + </method> + <method name="dup_string_utf8" + c:identifier="gst_byte_reader_dup_string_utf8" + doc="FIXME:Reads (copies) a NUL-terminated string in the #GstByteReader instance, +advancing the current position to the byte after the string. This will work +for any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done. +This function will fail if no NUL-terminator was found in in the data. +string put into @str must be freed with g_free() when no longer needed." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </method> + <method name="dup_string_utf16" + c:identifier="gst_byte_reader_dup_string_utf16" + doc="Returns a newly-allocated copy of the current data position if there is +a NUL-terminated UTF-16 string in the data (this could be an empty string +as well), and advances the current position. +No input checking for valid UTF-16 is done. This function is endianness +agnostic - you should not assume the UTF-16 characters are in host +endianness. +This function will fail if no NUL-terminator was found in in the data. +byte alignment of the UTF-16 string. +string put into @str must be freed with g_free() when no longer needed." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="str" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16**"/> + </parameter> + </parameters> + </method> + <method name="dup_string_utf32" + c:identifier="gst_byte_reader_dup_string_utf32" + doc="Returns a newly-allocated copy of the current data position if there is +a NUL-terminated UTF-32 string in the data (this could be an empty string +as well), and advances the current position. +No input checking for valid UTF-32 is done. This function is endianness +agnostic - you should not assume the UTF-32 characters are in host +endianness. +This function will fail if no NUL-terminator was found in in the data. +byte alignment of the UTF-32 string. +string put into @str must be freed with g_free() when no longer needed." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="str" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32**"/> + </parameter> + </parameters> + </method> + <method name="skip_string_utf8" + c:identifier="gst_byte_reader_skip_string_utf8" + doc="Skips a NUL-terminated string in the #GstByteReader instance, advancing +the current position to the byte after the string. This will work for +any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. No input checking for valid UTF-8 is done. +This function will fail if no NUL-terminator was found in in the data." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="skip_string_utf16" + c:identifier="gst_byte_reader_skip_string_utf16" + doc="Skips a NUL-terminated UTF-16 string in the #GstByteReader instance, +advancing the current position to the byte after the string. +No input checking for valid UTF-16 is done. +This function will fail if no NUL-terminator was found in in the data." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="skip_string_utf32" + c:identifier="gst_byte_reader_skip_string_utf32" + doc="Skips a NUL-terminated UTF-32 string in the #GstByteReader instance, +advancing the current position to the byte after the string. +No input checking for valid UTF-32 is done. +This function will fail if no NUL-terminator was found in in the data." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="get_string_utf8" + c:identifier="gst_byte_reader_get_string_utf8" + doc="Returns a constant pointer to the current data position if there is +a NUL-terminated string in the data (this could be just a NUL terminator), +advancing the current position to the byte after the string. This will work +for any NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. +No input checking for valid UTF-8 is done. +This function will fail if no NUL-terminator was found in in the data." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </method> + <method name="peek_string_utf8" + c:identifier="gst_byte_reader_peek_string_utf8" + doc="Returns a constant pointer to the current data position if there is +a NUL-terminated string in the data (this could be just a NUL terminator). +The current position will be maintained. This will work for any +NUL-terminated string with a character width of 8 bits, so ASCII, +UTF-8, ISO-8859-N etc. +No input checking for valid UTF-8 is done. +This function will fail if no NUL-terminator was found in in the data." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </method> + <method name="masked_scan_uint32" + c:identifier="gst_byte_reader_masked_scan_uint32" + doc="position +Scan for pattern @pattern with applied mask @mask in the byte reader data, +starting from offset @offset relative to the current position. +The bytes in @pattern and @mask are interpreted left-to-right, regardless +of endianness. All four bytes of the pattern must be present in the +byte reader data for it to match, even if the first or last bytes are masked +out. +It is an error to call this function without making sure that there is +enough data (offset+size bytes) in the byte reader. +Example: +<programlisting> +// Assume the reader contains 0x00 0x01 0x02 ... 0xfe 0xff +gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 0, 256); +// -> returns 0 +gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x00010203, 1, 255); +// -> returns -1 +gst_byte_reader_masked_scan_uint32 (reader, 0xffffffff, 0x01020304, 1, 255); +// -> returns 1 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0001, 0, 256); +// -> returns -1 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff, 0x0203, 0, 256); +// -> returns 0 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 256); +// -> returns 2 +gst_byte_reader_masked_scan_uint32 (reader, 0xffff0000, 0x02030000, 0, 4); +// -> returns -1 +</programlisting>" + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="mask" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="pattern" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + </record> + <record name="ByteWriter" + c:type="GstByteWriter" + doc="A byte writer instance."> + <field name="parent" writable="1"> + <type name="ByteReader" c:type="GstByteReader"/> + </field> + <field name="alloc_size" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="fixed" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="owned" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <constructor name="new" + c:identifier="gst_byte_writer_new" + doc="Creates a new, empty #GstByteWriter instance" + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + </constructor> + <constructor name="new_with_size" + c:identifier="gst_byte_writer_new_with_size" + doc="Creates a new #GstByteWriter instance with the given +initial data size." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_data" + c:identifier="gst_byte_writer_new_with_data" + doc="Creates a new #GstByteWriter instance with the given +memory area. If @initialized is %TRUE it is possible to +read @size bytes from the #GstByteWriter from the beginning." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_with_buffer" + c:identifier="gst_byte_writer_new_with_buffer" + doc="Creates a new #GstByteWriter instance with the given +buffer. If @initialized is %TRUE it is possible to +read the complete buffer from the #GstByteWriter from the beginning. +<note>@buffer must be writable</note>" + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="ByteWriter" c:type="GstByteWriter*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </constructor> + <method name="init" + c:identifier="gst_byte_writer_init" + doc="Initializes @writer to an empty instance" + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="init_with_size" + c:identifier="gst_byte_writer_init_with_size" + doc="Initializes @writer with the given initial data size." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="fixed" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="init_with_data" + c:identifier="gst_byte_writer_init_with_data" + doc="Initializes @writer with the given +memory area. If @initialized is %TRUE it is possible to +read @size bytes from the #GstByteWriter from the beginning." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="init_with_buffer" + c:identifier="gst_byte_writer_init_with_buffer" + doc="Initializes @writer with the given +buffer. If @initialized is %TRUE it is possible to +read the complete buffer from the #GstByteWriter from the beginning. +<note>@buffer must be writable</note>" + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="initialized" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="free" + c:identifier="gst_byte_writer_free" + doc="Frees @writer and all memory allocated by it." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="free_and_get_data" + c:identifier="gst_byte_writer_free_and_get_data" + doc="Frees @writer and all memory allocated by it except +the current data, which is returned." + version="0.10.26"> + <return-value transfer-ownership="full" doc="after usage."> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </return-value> + </method> + <method name="free_and_get_buffer" + c:identifier="gst_byte_writer_free_and_get_buffer" + doc="Frees @writer and all memory allocated by it except +the current data, which is returned as #GstBuffer." + version="0.10.26"> + <return-value transfer-ownership="full" doc="after usage."> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + </method> + <method name="reset" + c:identifier="gst_byte_writer_reset" + doc="Resets @writer and frees the data if it's +owned by @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="reset_and_get_data" + c:identifier="gst_byte_writer_reset_and_get_data" + doc="Resets @writer and returns the current data." + version="0.10.26"> + <return-value transfer-ownership="full" doc="after usage."> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </return-value> + </method> + <method name="reset_and_get_buffer" + c:identifier="gst_byte_writer_reset_and_get_buffer" + doc="Resets @writer and returns the current data as buffer." + version="0.10.26"> + <return-value transfer-ownership="full" doc="after usage."> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + </method> + <method name="get_remaining" + c:identifier="gst_byte_writer_get_remaining" + doc="Returns the remaining size of data that can still be written. If +-1 is returned the remaining size is only limited by system resources." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="ensure_free_space" + c:identifier="gst_byte_writer_ensure_free_space" + doc="Checks if enough free space from the current write cursor is +available and reallocates if necessary." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="put_uint8" + c:identifier="gst_byte_writer_put_uint8" + doc="Writes a unsigned 8 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="put_int8" + c:identifier="gst_byte_writer_put_int8" + doc="Writes a signed 8 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int8" c:type="gint8"/> + </parameter> + </parameters> + </method> + <method name="put_uint16_be" + c:identifier="gst_byte_writer_put_uint16_be" + doc="Writes a unsigned big endian 16 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="put_uint16_le" + c:identifier="gst_byte_writer_put_uint16_le" + doc="Writes a unsigned little endian 16 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="put_int16_be" + c:identifier="gst_byte_writer_put_int16_be" + doc="Writes a signed big endian 16 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int16" c:type="gint16"/> + </parameter> + </parameters> + </method> + <method name="put_int16_le" + c:identifier="gst_byte_writer_put_int16_le" + doc="Writes a signed little endian 16 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int16" c:type="gint16"/> + </parameter> + </parameters> + </method> + <method name="put_uint24_be" + c:identifier="gst_byte_writer_put_uint24_be" + doc="Writes a unsigned big endian 24 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint24_le" + c:identifier="gst_byte_writer_put_uint24_le" + doc="Writes a unsigned little endian 24 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_int24_be" + c:identifier="gst_byte_writer_put_int24_be" + doc="Writes a signed big endian 24 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_int24_le" + c:identifier="gst_byte_writer_put_int24_le" + doc="Writes a signed little endian 24 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint32_be" + c:identifier="gst_byte_writer_put_uint32_be" + doc="Writes a unsigned big endian 32 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint32_le" + c:identifier="gst_byte_writer_put_uint32_le" + doc="Writes a unsigned little endian 32 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="put_int32_be" + c:identifier="gst_byte_writer_put_int32_be" + doc="Writes a signed big endian 32 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_int32_le" + c:identifier="gst_byte_writer_put_int32_le" + doc="Writes a signed little endian 32 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int32" c:type="gint32"/> + </parameter> + </parameters> + </method> + <method name="put_uint64_be" + c:identifier="gst_byte_writer_put_uint64_be" + doc="Writes a unsigned big endian 64 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="put_uint64_le" + c:identifier="gst_byte_writer_put_uint64_le" + doc="Writes a unsigned little endian 64 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </method> + <method name="put_int64_be" + c:identifier="gst_byte_writer_put_int64_be" + doc="Writes a signed big endian 64 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="put_int64_le" + c:identifier="gst_byte_writer_put_int64_le" + doc="Writes a signed little endian 64 bit integer to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + </parameters> + </method> + <method name="put_float32_be" + c:identifier="gst_byte_writer_put_float32_be" + doc="Writes a big endian 32 bit float to @writer." + version="0.10.27"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="float" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="put_float32_le" + c:identifier="gst_byte_writer_put_float32_le" + doc="Writes a little endian 32 bit float to @writer." + version="0.10.27"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="float" c:type="gfloat"/> + </parameter> + </parameters> + </method> + <method name="put_float64_be" + c:identifier="gst_byte_writer_put_float64_be" + doc="Writes a big endian 64 bit float to @writer." + version="0.10.27"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="put_float64_le" + c:identifier="gst_byte_writer_put_float64_le" + doc="Writes a little endian 64 bit float to @writer." + version="0.10.27"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="val" transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="put_data" + c:identifier="gst_byte_writer_put_data" + doc="Writes @size bytes of @data to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="fill" + c:identifier="gst_byte_writer_fill" + doc="Writes @size bytes containing @value to @writer." + version="0.10.27"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="put_string_utf8" + c:identifier="gst_byte_writer_put_string_utf8" + doc="Writes a null-terminated UTF8 string to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="put_string_utf16" + c:identifier="gst_byte_writer_put_string_utf16" + doc="Writes a null-terminated UTF16 string to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" direction="out" transfer-ownership="none"> + <type name="uint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + <method name="put_string_utf32" + c:identifier="gst_byte_writer_put_string_utf32" + doc="Writes a null-terminated UTF32 string to @writer." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" direction="out" transfer-ownership="none"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + </record> + <record name="CollectData" + c:type="GstCollectData" + doc="Structure used by the collect_pads."> + <field name="collect" writable="1"> + <type name="CollectPads" c:type="GstCollectPads*"/> + </field> + <field name="pad" writable="1"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="buffer" writable="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="pos" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="segment" writable="1"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <union name="abidata" c:type="abidata"> + <record name="ABI" c:type="ABI"> + <field name="flushing" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="new_segment" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="eos" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="refcount" writable="1"> + <type name="int" c:type="gint"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </union> + </record> + <callback name="CollectDataDestroyNotify" + c:type="GstCollectDataDestroyNotify" + doc="A function that will be called when the #GstCollectData will be freed. +It is passed the pointer to the structure and should free any custom +memory and resources allocated for it." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + </parameters> + </callback> + <class name="CollectPads" + c:type="GstCollectPads" + doc="Collectpads object. +Note that @data doesn't contain the complete #GstCollectData list +at all times and should not be used for iterating them." + parent="Gst.Object" + glib:type-name="GstCollectPads" + glib:get-type="gst_collect_pads_get_type" + glib:type-struct="CollectPadsClass"> + <constructor name="new" + c:identifier="gst_collect_pads_new" + doc="Create a new instance of #GstCollectPads. +MT safe."> + <return-value transfer-ownership="full"> + <type name="CollectPads" c:type="GstCollectPads*"/> + </return-value> + </constructor> + <method name="set_function" + c:identifier="gst_collect_pads_set_function" + doc="Set the callback function and user data that will be called when +all the pads added to the collection have buffers queued. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="func" + transfer-ownership="none" + scope="call" + closure="2"> + <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="set_clip_function" + c:identifier="gst_collect_pads_set_clip_function" + doc="Install a clipping function that is called right after a buffer is received +on a pad managed by @pads. See #GstCollectDataClipFunction for more info." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="clipfunc" + transfer-ownership="none" + scope="call" + closure="2"> + <type name="CollectPadsClipFunction" + c:type="GstCollectPadsClipFunction"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </method> + <method name="add_pad" + c:identifier="gst_collect_pads_add_pad" + doc="Add a pad to the collection of collect pads. The pad has to be +a sinkpad. The refcount of the pad is incremented. Use +gst_collect_pads_remove_pad() to remove the pad from the collection +again. +This function will override the chain and event functions of the pad +along with the element_private data, which is used to store private +information for the collectpads. +You specify a size for the returned #GstCollectData structure +so that you can use it to store additional information. +The pad will be automatically activated in push mode when @pads is +started. +This function calls gst_collect_pads_add_pad() passing a value of NULL +for destroy_notify. +if wrong parameters are supplied. +MT safe."> + <return-value transfer-ownership="full"> + <type name="CollectData" c:type="GstCollectData*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_pad_full" + c:identifier="gst_collect_pads_add_pad_full" + doc="structure is freed +Add a pad to the collection of collect pads. The pad has to be +a sinkpad. The refcount of the pad is incremented. Use +gst_collect_pads_remove_pad() to remove the pad from the collection +again. +You specify a size for the returned #GstCollectData structure +so that you can use it to store additional information. +You can also specify a #GstCollectDataDestroyNotify that will be called +just before the #GstCollectData structure is freed. It is passed the +pointer to the structure and should free any custom memory and resources +allocated for it. +The pad will be automatically activated in push mode when @pads is +started. +if wrong parameters are supplied. +MT safe." + version="0.10.12"> + <return-value transfer-ownership="full"> + <type name="CollectData" c:type="GstCollectData*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="destroy_notify" + transfer-ownership="none" + scope="call"> + <type name="CollectDataDestroyNotify" + c:type="GstCollectDataDestroyNotify"/> + </parameter> + </parameters> + </method> + <method name="remove_pad" + c:identifier="gst_collect_pads_remove_pad" + doc="Remove a pad from the collection of collect pads. This function will also +free the #GstCollectData and all the resources that were allocated with +gst_collect_pads_add_pad(). +The pad will be deactivated automatically when @pads is stopped. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="is_active" + c:identifier="gst_collect_pads_is_active" + doc="Check if a pad is active. +This function is currently not implemented. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </method> + <method name="collect" + c:identifier="gst_collect_pads_collect" + doc="Collect data on all pads. This function is usually called +from a #GstTask function in an element. +This function is currently not implemented. +MT safe."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + </method> + <method name="collect_range" + c:identifier="gst_collect_pads_collect_range" + doc="Collect data with @offset and @length on all pads. This function +is typically called in the getrange function of an element. +This function is currently not implemented. +MT safe."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="start" + c:identifier="gst_collect_pads_start" + doc="Starts the processing of data in the collect_pads. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="stop" + c:identifier="gst_collect_pads_stop" + doc="Stops the processing of data in the collect_pads. this function +will also unblock any blocking operations. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="set_flushing" + c:identifier="gst_collect_pads_set_flushing" + doc="Change the flushing state of all the pads in the collection. No pad +is able to accept anymore data when @flushing is %TRUE. Calling this +function with @flushing %FALSE makes @pads accept data again. +MT safe." + version="0.10.7."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="flushing" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="peek" + c:identifier="gst_collect_pads_peek" + doc="Peek at the buffer currently queued in @data. This function +should be called with the @pads LOCK held, such as in the callback +handler. +should unref the buffer after usage. +MT safe."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + </parameters> + </method> + <method name="pop" + c:identifier="gst_collect_pads_pop" + doc="Pop the buffer currently queued in @data. This function +should be called with the @pads LOCK held, such as in the callback +handler. +You should unref the buffer after usage. +MT safe."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + </parameters> + </method> + <method name="available" + c:identifier="gst_collect_pads_available" + doc="Query how much bytes can be read from each queued buffer. This means +that the result of this call is the maximum number of bytes that can +be read from each of the pads. +This function should be called with @pads LOCK held, such as +in the callback. +returns 0 if a pad has no queued buffer. +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="read" + c:identifier="gst_collect_pads_read" + doc="Get a pointer in @bytes where @size bytes can be read from the +given pad @data. +This function should be called with @pads LOCK held, such as +in the callback. +memory pointed to by @bytes. This can be less than @size and +is 0 if the pad is end-of-stream. +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="bytes" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="read_buffer" + c:identifier="gst_collect_pads_read_buffer" + doc="Get a buffer of @size bytes from the given pad @data. +This function should be called with @pads LOCK held, such as in the callback. +A return of NULL signals that the pad is end-of-stream. +Unref the buffer after use. +MT safe." + version="0.10.18"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="take_buffer" + c:identifier="gst_collect_pads_take_buffer" + doc="Get a buffer of @size bytes from the given pad @data. Flushes the amount +of read bytes. +This function should be called with @pads LOCK held, such as in the callback. +A return of NULL signals that the pad is end-of-stream. +Unref the buffer after use. +MT safe." + version="0.10.18"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="flush" + c:identifier="gst_collect_pads_flush" + doc="Flush @size bytes from the pad @data. +This function should be called with @pads LOCK held, such as +in the callback. +is 0 if the pad was end-of-stream. +MT safe."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <field name="object"> + <type name="Gst.Object" c:type="GstObject"/> + </field> + <field name="data"> + <type name="GLib.SList" c:type="GSList*"/> + </field> + <field name="cookie"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="cond"> + <type name="GLib.Cond" c:type="GCond*"/> + </field> + <field name="func"> + <type name="CollectPadsFunction" c:type="GstCollectPadsFunction"/> + </field> + <field name="user_data"> + <type name="any" c:type="gpointer"/> + </field> + <field name="numpads"> + <type name="uint" c:type="guint"/> + </field> + <field name="queuedpads"> + <type name="uint" c:type="guint"/> + </field> + <field name="eospads"> + <type name="uint" c:type="guint"/> + </field> + <field name="started"> + <type name="boolean" c:type="gboolean"/> + </field> + <union name="abidata" c:type="abidata"> + <record name="ABI" c:type="ABI"> + <field name="pad_lock" writable="1"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="pad_list" writable="1"> + <type name="GLib.SList" c:type="GSList*"/> + </field> + <field name="pad_cookie" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="priv" writable="1"> + <type name="CollectPadsPrivate" c:type="GstCollectPadsPrivate*"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </union> + </class> + <record name="CollectPadsClass" + c:type="GstCollectPadsClass" + glib:is-gtype-struct-for="CollectPads"> + <field name="parent_class"> + <type name="Gst.ObjectClass" c:type="GstObjectClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <callback name="CollectPadsClipFunction" + c:type="GstCollectPadsClipFunction" + doc="A function that will be called when @buffer is received on the pad managed +by @data in the collecpad object @pads. +The function should use the segment of @data and the negotiated media type on +the pad to perform clipping of @buffer. +This function takes ownership of @buffer. +the buffer has been clipped completely." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <type name="CollectData" c:type="GstCollectData*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" closure="3"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="CollectPadsFunction" + c:type="GstCollectPadsFunction" + doc="A function that will be called when all pads have received data."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pads" transfer-ownership="none"> + <type name="CollectPads" c:type="GstCollectPads*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" closure="1"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="CollectPadsPrivate" c:type="GstCollectPadsPrivate"> + </record> + <class name="DataQueue" + c:type="GstDataQueue" + doc="Opaque #GstDataQueue structure." + parent="GObject.Object" + glib:type-name="GstDataQueue" + glib:get-type="gst_data_queue_get_type" + glib:type-struct="DataQueueClass"> + <constructor name="new" c:identifier="gst_data_queue_new" doc="or not."> + <return-value transfer-ownership="full"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </return-value> + <parameters> + <parameter name="checkfull" + transfer-ownership="none" + scope="call" + closure="1"> + <type name="DataQueueCheckFullFunction" + c:type="GstDataQueueCheckFullFunction"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_full" + c:identifier="gst_data_queue_new_full" + doc="or not. +Creates a new #GstDataQueue. The difference with @gst_data_queue_new is that it will +not emit the 'full' and 'empty' signals, but instead calling directly @fullcallback +or @emptycallback." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </return-value> + <parameters> + <parameter name="checkfull" transfer-ownership="none" scope="call"> + <type name="DataQueueCheckFullFunction" + c:type="GstDataQueueCheckFullFunction"/> + </parameter> + <parameter name="fullcallback" + transfer-ownership="none" + scope="call"> + <type name="DataQueueFullCallback" + c:type="GstDataQueueFullCallback"/> + </parameter> + <parameter name="emptycallback" + transfer-ownership="none" + scope="call" + closure="3"> + <type name="DataQueueEmptyCallback" + c:type="GstDataQueueEmptyCallback"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </constructor> + <method name="push" + c:identifier="gst_data_queue_push" + doc="Pushes a #GstDataQueueItem (or a structure that begins with the same fields) +on the @queue. If the @queue is full, the call will block until space is +available, OR the @queue is set to flushing state. +MT safe. +Note that this function has slightly different semantics than gst_pad_push() +the #GstMiniObject contained in @item if the push was successful. If FALSE +is returned, the caller is responsible for freeing @item and its contents."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="item" transfer-ownership="none"> + <type name="DataQueueItem" c:type="GstDataQueueItem*"/> + </parameter> + </parameters> + </method> + <method name="pop" + c:identifier="gst_data_queue_pop" + doc="Retrieves the first @item available on the @queue. If the queue is currently +empty, the call will block until at least one item is available, OR the +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="item" transfer-ownership="none"> + <type name="DataQueueItem" c:type="GstDataQueueItem**"/> + </parameter> + </parameters> + </method> + <method name="flush" + c:identifier="gst_data_queue_flush" + doc="Flushes all the contents of the @queue. Any call to #gst_data_queue_push and +#gst_data_queue_pop will be released. +MT safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="set_flushing" + c:identifier="gst_data_queue_set_flushing" + doc="Sets the queue to flushing state if @flushing is #TRUE. If set to flushing +state, any incoming data on the @queue will be discarded. Any call currently +blocking on #gst_data_queue_push or #gst_data_queue_pop will return straight +away with a return value of #FALSE. While the @queue is in flushing state, +all calls to those two functions will return #FALSE. +MT Safe."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="flushing" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="drop_head" + c:identifier="gst_data_queue_drop_head" + doc="Pop and unref the head-most #GstMiniObject with the given #GType."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="GType" c:type="GType"/> + </parameter> + </parameters> + </method> + <method name="is_full" + c:identifier="gst_data_queue_is_full" + doc="Queries if @queue is full. This check will be done using the +#GstDataQueueCheckFullFunction registered with @queue. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="is_empty" + c:identifier="gst_data_queue_is_empty" + doc="Queries if there are any items in the @queue. +MT safe."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="get_level" + c:identifier="gst_data_queue_get_level" + doc="Get the current level of the queue."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="level" transfer-ownership="none"> + <type name="DataQueueSize" c:type="GstDataQueueSize*"/> + </parameter> + </parameters> + </method> + <method name="limits_changed" + c:identifier="gst_data_queue_limits_changed" + doc="Inform the queue that the limits for the fullness check have changed and that +any blocking gst_data_queue_push() should be unblocked to recheck the limts."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <property name="current-level-bytes"> + <type name="uint" c:type="guint"/> + </property> + <property name="current-level-time"> + <type name="uint64" c:type="guint64"/> + </property> + <property name="current-level-visible"> + <type name="uint" c:type="guint"/> + </property> + <field name="object"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="queue"> + <type name="GLib.Queue" c:type="GQueue*"/> + </field> + <field name="cur_level"> + <type name="DataQueueSize" c:type="GstDataQueueSize"/> + </field> + <field name="checkfull"> + <type name="DataQueueCheckFullFunction" + c:type="GstDataQueueCheckFullFunction"/> + </field> + <field name="checkdata"> + <type name="any" c:type="gpointer*"/> + </field> + <field name="qlock"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="item_add"> + <type name="GLib.Cond" c:type="GCond*"/> + </field> + <field name="item_del"> + <type name="GLib.Cond" c:type="GCond*"/> + </field> + <field name="flushing"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="fullcallback"> + <type name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"/> + </field> + <field name="emptycallback"> + <type name="DataQueueEmptyCallback" + c:type="GstDataQueueEmptyCallback"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> + <type name="any"/> + </array> + </field> + <glib:signal name="empty" + doc="Reports that the queue became empty (empty). +A queue is empty if the total amount of visible items inside it (num-visible, time, +size) is lower than the boundary values which can be set through the GObject +properties."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + <glib:signal name="full" + doc="Reports that the queue became full (full). +A queue is full if the total amount of data inside it (num-visible, time, +size) is higher than the boundary values which can be set through the GObject +properties."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + </glib:signal> + </class> + <callback name="DataQueueCheckFullFunction" + c:type="GstDataQueueCheckFullFunction" + doc="The prototype of the function used to inform the queue that it should be +considered as full."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + <parameter name="visible" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="bytes" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="time" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="DataQueueClass" + c:type="GstDataQueueClass" + glib:is-gtype-struct-for="DataQueue"> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="empty"> + <callback name="empty" c:type="empty"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="full"> + <callback name="full" c:type="full"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <callback name="DataQueueEmptyCallback" c:type="GstDataQueueEmptyCallback"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <callback name="DataQueueFullCallback" c:type="GstDataQueueFullCallback"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="queue" transfer-ownership="none"> + <type name="DataQueue" c:type="GstDataQueue*"/> + </parameter> + <parameter name="checkdata" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <record name="DataQueueItem" + c:type="GstDataQueueItem" + doc="#GST_CLOCK_TIME_NONE. +This function should also drop the reference to @object the owner of the +#GstDataQueueItem is assumed to hold. +Structure used by #GstDataQueue. You can supply a different structure, as +long as the top of the structure is identical to this structure."> + <field name="object" writable="1"> + <type name="Gst.MiniObject" c:type="GstMiniObject*"/> + </field> + <field name="size" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="duration" writable="1"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="visible" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="destroy" writable="1"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </field> + </record> + <record name="DataQueueSize" + c:type="GstDataQueueSize" + doc="Structure describing the size of a queue."> + <field name="visible" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="bytes" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="time" writable="1"> + <type name="uint64" c:type="guint64"/> + </field> + </record> + <class name="PushSrc" + c:type="GstPushSrc" + doc="The opaque #GstPushSrc data structure." + parent="BaseSrc" + glib:type-name="GstPushSrc" + glib:get-type="gst_push_src_get_type" + glib:type-struct="PushSrcClass"> + <virtual-method name="create"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </virtual-method> + <field name="parent"> + <type name="BaseSrc" c:type="GstBaseSrc"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="PushSrcClass" + c:type="GstPushSrcClass" + glib:is-gtype-struct-for="PushSrc"> + <field name="parent_class"> + <type name="BaseSrcClass" c:type="GstBaseSrcClass"/> + </field> + <field name="create"> + <callback name="create" c:type="create"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="PushSrc" c:type="GstPushSrc*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <constant name="TRANSFORM_SINK_NAME" value="sink"> + <type name="utf8"/> + </constant> + <constant name="TRANSFORM_SRC_NAME" value="src"> + <type name="utf8"/> + </constant> + <callback name="TypeFindHelperGetRangeFunction" + c:type="GstTypeFindHelperGetRangeFunction" + doc="This function will be called by gst_type_find_helper_get_range() when +typefinding functions request to peek at the data of a stream at certain +offsets. If this function returns GST_FLOW_OK, the result buffer will be +stored in @buffer. The contents of @buffer is invalid for any other +return value. +This function is supposed to behave exactly like a #GstPadGetRangeFunction."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </callback> + <function name="type_find_helper" + c:identifier="gst_type_find_helper" + doc="Tries to find what type of data is flowing from the given source #GstPad. +Returns #NULL if no #GstCaps matches the data stream."> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper_for_buffer" + c:identifier="gst_type_find_helper_for_buffer" + doc="Tries to find what type of data is contained in the given #GstBuffer, the +assumption being that the buffer represents the beginning of the stream or +file. +All available typefinders will be called on the data in order of rank. If +a typefinding function returns a probability of #GST_TYPE_FIND_MAXIMUM, +typefinding is stopped immediately and the found caps will be returned +right away. Otherwise, all available typefind functions will the tried, +and the caps with the highest probability will be returned, or #NULL if +the content of the buffer could not be identified. +be found. The caller should free the caps returned with gst_caps_unref()."> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="prob" transfer-ownership="none"> + <type name="Gst.TypeFindProbability" + c:type="GstTypeFindProbability*"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper_for_extension" + c:identifier="gst_type_find_helper_for_extension" + doc="Tries to find the best #GstCaps associated with @extension. +All available typefinders will be checked against the extension in order +of rank. The caps of the first typefinder that can handle @extension will be +returned. +be found. The caller should free the caps returned with gst_caps_unref()." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="extension" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper_get_range" + c:identifier="gst_type_find_helper_get_range" + doc="to access data at random offsets when doing the typefinding +Utility function to do pull-based typefinding. Unlike gst_type_find_helper() +however, this function will use the specified function @func to obtain the +data needed by the typefind functions, rather than operating on a given +source pad. This is useful mostly for elements like tag demuxers which +strip off data at the beginning and/or end of a file and want to typefind +the stripped data stream before adding their own source pad (the specified +callback can then call the upstream peer pad with offsets adjusted for the +tag size, for example). +Returns #NULL if no #GstCaps matches the data stream."> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="call"> + <type name="TypeFindHelperGetRangeFunction" + c:type="GstTypeFindHelperGetRangeFunction"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="prob" transfer-ownership="none"> + <type name="Gst.TypeFindProbability" + c:type="GstTypeFindProbability*"/> + </parameter> + </parameters> + </function> + <function name="type_find_helper_get_range_ext" + c:identifier="gst_type_find_helper_get_range_ext" + doc="to access data at random offsets when doing the typefinding +Utility function to do pull-based typefinding. Unlike gst_type_find_helper() +however, this function will use the specified function @func to obtain the +data needed by the typefind functions, rather than operating on a given +source pad. This is useful mostly for elements like tag demuxers which +strip off data at the beginning and/or end of a file and want to typefind +the stripped data stream before adding their own source pad (the specified +callback can then call the upstream peer pad with offsets adjusted for the +tag size, for example). +When @extension is not NULL, this function will first try the typefind +functions for the given extension, which might speed up the typefinding +in many cases. +Returns #NULL if no #GstCaps matches the data stream." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="obj" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="func" transfer-ownership="none" scope="call"> + <type name="TypeFindHelperGetRangeFunction" + c:type="GstTypeFindHelperGetRangeFunction"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="extension" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="prob" transfer-ownership="none"> + <type name="Gst.TypeFindProbability" + c:type="GstTypeFindProbability*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/base/base.factor b/basis/gstreamer/base/base.factor new file mode 100644 index 0000000000..445d506e02 --- /dev/null +++ b/basis/gstreamer/base/base.factor @@ -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 + diff --git a/basis/gstreamer/base/ffi/ffi.factor b/basis/gstreamer/base/ffi/ffi.factor new file mode 100644 index 0000000000..1f15ecf3e4 --- /dev/null +++ b/basis/gstreamer/base/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/check/GstCheck-0.10.gir b/basis/gstreamer/check/GstCheck-0.10.gir new file mode 100644 index 0000000000..061269c4cb --- /dev/null +++ b/basis/gstreamer/check/GstCheck-0.10.gir @@ -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's timeout to fail out in the case that a +buffer never arrives. +You must have previously called gst_buffer_straw_start_pipeline() on"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="buffer_straw_start_pipeline" + c:identifier="gst_buffer_straw_start_pipeline" + doc="Sets up a pipeline for buffer sucking. This will allow you to call +gst_buffer_straw_get_buffer() to access buffers as they pass over @pad. +This function is normally used in unit tests that want to verify that a +particular element is outputting correct buffers. For example, you would make +a pipeline via gst_parse_launch(), pull out the pad you want to monitor, then +call gst_buffer_straw_get_buffer() to get the buffers that pass through @pad. +The pipeline will block until you have sucked off the buffers. +This function will set the state of @bin to PLAYING; to clean up, be sure to +call gst_buffer_straw_stop_pipeline(). +Note that you may not start two buffer straws at the same time. This function +is intended for unit tests, not general API use. In fact it calls fail_if +from libcheck, so you cannot use it outside unit tests."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="buffer_straw_stop_pipeline" + c:identifier="gst_buffer_straw_stop_pipeline" + doc="Set @bin to #GST_STATE_NULL and release resource allocated in +gst_buffer_straw_start_pipeline(). +You must have previously called gst_buffer_straw_start_pipeline() on"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="bin" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="caps_equal" + c:identifier="gst_check_caps_equal" + doc="Compare two caps with gst_caps_is_equal and fail unless they are +equal." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="caps1" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="caps2" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="chain_func" c:identifier="gst_check_chain_func"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="check_fork" c:identifier="check_fork"> + <return-value transfer-ownership="none"> + <type name="int" c:type="pid_t"/> + </return-value> + </function> + <function name="check_waitpid_and_exit" + c:identifier="check_waitpid_and_exit"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pid" transfer-ownership="none"> + <type name="int" c:type="pid_t"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_free" + c:identifier="gst_consistency_checker_free" + doc="Frees the allocated data and probe associated with @consist." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="consist" transfer-ownership="none"> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_new" + c:identifier="gst_consistency_checker_new" + doc="Sets up a data probe on the given pad which will raise assertions if the +data flow is inconsistent. +Currently only works for source pads." + version="0.10.24"> + <return-value transfer-ownership="full"> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="consistency_checker_reset" + c:identifier="gst_consistency_checker_reset" + doc="Reset the stream checker's internal variables." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="consist" transfer-ownership="none"> + <type name="StreamConsistency" c:type="GstStreamConsistency*"/> + </parameter> + </parameters> + </function> + <function name="drop_buffers" + c:identifier="gst_check_drop_buffers" + doc="Unref and remove all buffers that are in the global @buffers GList, +emptying the list." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="element_push_buffer" + c:identifier="gst_check_element_push_buffer" + doc="Create an @element with the factory with the name and push the +and this will be compared with @buffer_out. We only check the caps +and the data of the buffers. This function unrefs the buffers." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="buffer_in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="buffer_out" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="element_push_buffer_list" + c:identifier="gst_check_element_push_buffer_list" + doc="Create an @element with the factory with the name and push the buffers in +the buffers in @buffer_out. We only check the caps, size and the data of the +buffers. This function unrefs the buffers in the two lists. +The last_flow_return parameter indicates the expected flow return value from +pushing the final buffer in the list. +This can be used to set up a test which pushes some buffers and then an +invalid buffer, when the final buffer is expected to fail, for example." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="buffer_in" transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </parameter> + <parameter name="buffer_out" transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </parameter> + <parameter name="last_flow_return" transfer-ownership="none"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </parameter> + </parameters> + </function> + <function name="init" c:identifier="gst_check_init"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="argc" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + <parameter name="argv" transfer-ownership="none"> + <array c:type="char**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="message_error" c:identifier="gst_check_message_error"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <type name="Gst.MessageType" c:type="GstMessageType"/> + </parameter> + <parameter name="domain" transfer-ownership="none"> + <type name="GLib.Quark" c:type="GQuark"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </function> + <function name="run_suite" c:identifier="gst_check_run_suite"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="suite" transfer-ownership="none"> + <type name="Suite" c:type="Suite*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="fname" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="setup_element" c:identifier="gst_check_setup_element"> + <return-value transfer-ownership="full"> + <type name="Gst.Element" c:type="GstElement*"/> + </return-value> + <parameters> + <parameter name="factory" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="setup_sink_pad" c:identifier="gst_check_setup_sink_pad"> + <return-value transfer-ownership="full"> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="template" transfer-ownership="none"> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="setup_sink_pad_by_name" + c:identifier="gst_check_setup_sink_pad_by_name"> + <return-value transfer-ownership="full"> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="template" transfer-ownership="none"> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="setup_src_pad" c:identifier="gst_check_setup_src_pad"> + <return-value transfer-ownership="full"> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="template" transfer-ownership="none"> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="setup_src_pad_by_name" + c:identifier="gst_check_setup_src_pad_by_name"> + <return-value transfer-ownership="full"> + <type name="Gst.Pad" c:type="GstPad*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="template" transfer-ownership="none"> + <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="srunner_add_suite" c:identifier="srunner_add_suite"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Suite" c:type="Suite*"/> + </parameter> + </parameters> + </function> + <function name="srunner_create" c:identifier="srunner_create"> + <return-value transfer-ownership="full"> + <type name="SRunner" c:type="SRunner*"/> + </return-value> + <parameters> + <parameter name="s" transfer-ownership="none"> + <type name="Suite" c:type="Suite*"/> + </parameter> + </parameters> + </function> + <function name="srunner_failures" c:identifier="srunner_failures"> + <return-value transfer-ownership="full"> + <type name="TestResult" c:type="TestResult**"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_fork_status" c:identifier="srunner_fork_status"> + <return-value transfer-ownership="none"> + <type name="any" c:type="any"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_free" c:identifier="srunner_free"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_has_log" c:identifier="srunner_has_log"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_has_xml" c:identifier="srunner_has_xml"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_log_fname" c:identifier="srunner_log_fname"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_ntests_failed" + c:identifier="srunner_ntests_failed"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_ntests_run" c:identifier="srunner_ntests_run"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_print" c:identifier="srunner_print"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + <parameter name="print_mode" transfer-ownership="none"> + <type name="any" c:type="any"/> + </parameter> + </parameters> + </function> + <function name="srunner_results" c:identifier="srunner_results"> + <return-value transfer-ownership="full"> + <type name="TestResult" c:type="TestResult**"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="srunner_run_all" c:identifier="srunner_run_all"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + <parameter name="print_mode" transfer-ownership="none"> + <type name="any" c:type="any"/> + </parameter> + </parameters> + </function> + <function name="srunner_set_fork_status" + c:identifier="srunner_set_fork_status"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + <parameter name="fstat" transfer-ownership="none"> + <type name="any" c:type="any"/> + </parameter> + </parameters> + </function> + <function name="srunner_set_log" c:identifier="srunner_set_log"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + <parameter name="fname" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </function> + <function name="srunner_set_xml" c:identifier="srunner_set_xml"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + <parameter name="fname" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </function> + <function name="srunner_xml_fname" c:identifier="srunner_xml_fname"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="sr" transfer-ownership="none"> + <type name="SRunner" c:type="SRunner*"/> + </parameter> + </parameters> + </function> + <function name="suite_create" c:identifier="suite_create"> + <return-value transfer-ownership="full"> + <type name="Suite" c:type="Suite*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </function> + <function name="tcase_add_checked_fixture" + c:identifier="tcase_add_checked_fixture"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tc" transfer-ownership="none"> + <type name="TCase" c:type="TCase*"/> + </parameter> + <parameter name="setup" transfer-ownership="none" scope="call"> + <type name="SFun" c:type="SFun"/> + </parameter> + <parameter name="teardown" transfer-ownership="none" scope="call"> + <type name="SFun" c:type="SFun"/> + </parameter> + </parameters> + </function> + <function name="tcase_add_unchecked_fixture" + c:identifier="tcase_add_unchecked_fixture"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tc" transfer-ownership="none"> + <type name="TCase" c:type="TCase*"/> + </parameter> + <parameter name="setup" transfer-ownership="none" scope="call"> + <type name="SFun" c:type="SFun"/> + </parameter> + <parameter name="teardown" transfer-ownership="none" scope="call"> + <type name="SFun" c:type="SFun"/> + </parameter> + </parameters> + </function> + <function name="tcase_create" c:identifier="tcase_create"> + <return-value transfer-ownership="full"> + <type name="TCase" c:type="TCase*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </function> + <function name="tcase_fn_start" c:identifier="tcase_fn_start"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="fname" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + <parameter name="file" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + <parameter name="line" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="tcase_set_timeout" c:identifier="tcase_set_timeout"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tc" transfer-ownership="none"> + <type name="TCase" c:type="TCase*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="teardown_element" + c:identifier="gst_check_teardown_element"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <function name="teardown_pad_by_name" + c:identifier="gst_check_teardown_pad_by_name"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="teardown_sink_pad" + c:identifier="gst_check_teardown_sink_pad"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <function name="teardown_src_pad" + c:identifier="gst_check_teardown_src_pad"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + </parameters> + </function> + <function name="tr_ctx" c:identifier="tr_ctx"> + <return-value transfer-ownership="none"> + <type name="any" c:type="any"/> + </return-value> + <parameters> + <parameter name="tr" transfer-ownership="none"> + <type name="TestResult" c:type="TestResult*"/> + </parameter> + </parameters> + </function> + <function name="tr_lfile" c:identifier="tr_lfile"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="tr" transfer-ownership="none"> + <type name="TestResult" c:type="TestResult*"/> + </parameter> + </parameters> + </function> + <function name="tr_lno" c:identifier="tr_lno"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="tr" transfer-ownership="none"> + <type name="TestResult" c:type="TestResult*"/> + </parameter> + </parameters> + </function> + <function name="tr_msg" c:identifier="tr_msg"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="tr" transfer-ownership="none"> + <type name="TestResult" c:type="TestResult*"/> + </parameter> + </parameters> + </function> + <function name="tr_rtype" c:identifier="tr_rtype"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="tr" transfer-ownership="none"> + <type name="TestResult" c:type="TestResult*"/> + </parameter> + </parameters> + </function> + <function name="tr_tcname" c:identifier="tr_tcname"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="tr" transfer-ownership="none"> + <type name="TestResult" c:type="TestResult*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/check/check.factor b/basis/gstreamer/check/check.factor new file mode 100644 index 0000000000..e43cd026a1 --- /dev/null +++ b/basis/gstreamer/check/check.factor @@ -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 + diff --git a/basis/gstreamer/check/ffi/ffi.factor b/basis/gstreamer/check/ffi/ffi.factor new file mode 100644 index 0000000000..e52f19ccb1 --- /dev/null +++ b/basis/gstreamer/check/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/controller/GstController-0.10.gir b/basis/gstreamer/controller/GstController-0.10.gir new file mode 100644 index 0000000000..137e69a1b4 --- /dev/null +++ b/basis/gstreamer/controller/GstController-0.10.gir @@ -0,0 +1,1005 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <c:include name="gst/controller/gstcontroller.h"/> + <c:include name="gst/controller/gstcontrolsource.h"/> + <c:include name="gst/controller/gstinterpolationcontrolsource.h"/> + <c:include name="gst/controller/gstlfocontrolsource.h"/> + <namespace name="GstController" + version="0.10" + shared-library="libgstcontroller-0.10.so.0" + c:prefix="Gst"> + <class name="ControlSource" + c:type="GstControlSource" + doc="The instance structure of #GstControlSource." + parent="GObject.Object" + abstract="1" + glib:type-name="GstControlSource" + glib:get-type="gst_control_source_get_type" + glib:type-struct="ControlSourceClass"> + <method name="get_value" + c:identifier="gst_control_source_get_value" + doc="Gets the value for this #GstControlSource at a given timestamp."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="get_value_array" + c:identifier="gst_control_source_get_value_array" + doc="Gets an array of values for one element property. +All fields of @value_array must be filled correctly. Especially the +of values. +The type of the values in the array is the same as the property's type."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value_array" transfer-ownership="none"> + <type name="ValueArray" c:type="GstValueArray*"/> + </parameter> + </parameters> + </method> + <method name="bind" + c:identifier="gst_control_source_bind" + doc="Binds a #GstControlSource to a specific property. This must be called only once for a +#GstControlSource."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="get_value"> + <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/> + </field> + <field name="get_value_array"> + <type name="ControlSourceGetValueArray" + c:type="GstControlSourceGetValueArray"/> + </field> + <field name="bound"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <callback name="ControlSourceBind" c:type="GstControlSourceBind"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + <record name="ControlSourceClass" + c:type="GstControlSourceClass" + glib:is-gtype-struct-for="ControlSource" + doc="The class structure of #GstControlSource."> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="bind"> + <type name="ControlSourceBind" c:type="GstControlSourceBind"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <callback name="ControlSourceGetValue" c:type="GstControlSourceGetValue"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </callback> + <callback name="ControlSourceGetValueArray" + c:type="GstControlSourceGetValueArray"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="self" transfer-ownership="none"> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value_array" transfer-ownership="none"> + <type name="ValueArray" c:type="GstValueArray*"/> + </parameter> + </parameters> + </callback> + <class name="Controller" + c:type="GstController" + doc="The instance structure of GstController" + parent="GObject.Object" + glib:type-name="GstController" + glib:get-type="gst_controller_get_type" + glib:type-struct="ControllerClass"> + <constructor name="new_list" + c:identifier="gst_controller_new_list" + doc="Creates a new GstController for the given object's properties"> + <return-value transfer-ownership="full"> + <type name="Controller" c:type="GstController*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="list" transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new" + c:identifier="gst_controller_new" + doc="Creates a new GstController for the given object's properties"> + <return-value transfer-ownership="full"> + <type name="Controller" c:type="GstController*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter transfer-ownership="none"> + <varargs> + </varargs> + </parameter> + </parameters> + </constructor> + <function name="init" + c:identifier="gst_controller_init" + doc="Initializes the use of the controller library. Suggested to be called right +after gst_init()."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="argc" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + <parameter name="argv" transfer-ownership="none"> + <type name="utf8" c:type="char***"/> + </parameter> + </parameters> + </function> + <method name="remove_properties_list" + c:identifier="gst_controller_remove_properties_list" + doc="Removes the given object properties from the controller"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </parameter> + </parameters> + </method> + <method name="remove_properties" + c:identifier="gst_controller_remove_properties" + doc="Removes the given object properties from the controller"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter transfer-ownership="none"> + <varargs> + </varargs> + </parameter> + </parameters> + </method> + <method name="set_disabled" + c:identifier="gst_controller_set_disabled" + doc="or not. +This function is used to disable all properties of the #GstController +for some time, i.e. gst_controller_sync_values() will do nothing." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="disabled" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_property_disabled" + c:identifier="gst_controller_set_property_disabled" + doc="or not. +This function is used to disable the #GstController on a property for +some time, i.e. gst_controller_sync_values() will do nothing for the +property." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="disabled" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_control_source" + c:identifier="gst_controller_set_control_source" + doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource +for this property it will be unreferenced. +couldn't be bound to the property, %TRUE if everything worked as expected." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="csource" transfer-ownership="none"> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + </parameters> + </method> + <method name="get_control_source" + c:identifier="gst_controller_get_control_source" + doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced +again after use. +controlled by this controller or no #GstControlSource was assigned yet." + version="0.10.14"> + <return-value transfer-ownership="full"> + <type name="ControlSource" c:type="GstControlSource*"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="suggest_next_sync" + c:identifier="gst_controller_suggest_next_sync" + doc="Returns a suggestion for timestamps where buffers should be split +to get best controller results. +if no control-rate was set." + version="0.10.13"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + </method> + <method name="sync_values" + c:identifier="gst_controller_sync_values" + doc="Sets the properties of the element, according to the controller that (maybe) +handles them and for the given timestamp. +If this function fails, it is most likely the application developers fault. +Most probably the control sources are not setup correctly. +properties, %FALSE otherwise"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get" + c:identifier="gst_controller_get" + doc="Gets the value for the given controller-handled property at the requested +time. +property isn't handled by the controller"> + <return-value transfer-ownership="full"> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="get_value_arrays" + c:identifier="gst_controller_get_value_arrays" + doc="Function to be able to get an array of values for one or more given element +properties. +All fields of the %GstValueArray in the list must be filled correctly. +Especially the GstValueArray->values arrays must be big enough to keep +the requested amount of values. +The types of the values in the array are the same as the property's type. +<note><para>This doesn't modify the controlled GObject properties!</para></note>"> + <return-value transfer-ownership="none" + doc="could be filled, %FALSE otherwise"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value_arrays" transfer-ownership="none"> + <type name="GLib.SList" c:type="GSList*"/> + </parameter> + </parameters> + </method> + <method name="get_value_array" + c:identifier="gst_controller_get_value_array" + doc="Function to be able to get an array of values for one element property. +All fields of @value_array must be filled correctly. Especially the +of values. +The type of the values in the array is the same as the property's type. +<note><para>This doesn't modify the controlled GObject property!</para></note>"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value_array" transfer-ownership="none"> + <type name="ValueArray" c:type="GstValueArray*"/> + </parameter> + </parameters> + </method> + <method name="set" + c:identifier="gst_controller_set" + doc="Set the value of given controller-handled property at a certain time. +directly." + deprecated="Use #GstControlSource, for example #GstInterpolationControlSource"> + <return-value transfer-ownership="none" doc="TRUE otherwise"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_from_list" + c:identifier="gst_controller_set_from_list" + doc="Sets multiple timed values at once. +directly." + deprecated="Use #GstControlSource, for example #GstInterpolationControlSource"> + <return-value transfer-ownership="none" doc="%TRUE otherwise"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="timedvalues" transfer-ownership="none"> + <type name="GLib.SList" c:type="GSList*"/> + </parameter> + </parameters> + </method> + <method name="unset" + c:identifier="gst_controller_unset" + doc="Used to remove the value of given controller-handled property at a certain +time. +directly." + deprecated="Use #GstControlSource, for example #GstInterpolationControlSource"> + <return-value transfer-ownership="none" doc="%TRUE otherwise"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="unset_all" + c:identifier="gst_controller_unset_all" + doc="Used to remove all time-stamped values of given controller-handled property +directly. +by controller), %TRUE otherwise" + version="0.10.5" + deprecated="Use #GstControlSource, for example #GstInterpolationControlSource"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_all" + c:identifier="gst_controller_get_all" + doc="Returns a read-only copy of the list of #GstTimedValue for the given property. +Free the list after done with it. +<note><para>This doesn't modify the controlled GObject property!</para></note> +directly." + deprecated="Use #GstControlSource, for example #GstInterpolationControlSource"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_interpolation_mode" + c:identifier="gst_controller_set_interpolation_mode" + doc="Sets the given interpolation mode on the given property. +<note><para>User interpolation is not yet available and quadratic interpolation +is deprecated and maps to cubic interpolation.</para></note> +directly." + deprecated="Use #GstControlSource, for example #GstInterpolationControlSource"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="mode" transfer-ownership="none"> + <type name="InterpolateMode" c:type="GstInterpolateMode"/> + </parameter> + </parameters> + </method> + <property name="control-rate" writable="1"> + <type name="uint64" c:type="guint64"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="properties"> + <type name="GLib.List" c:type="GList*"/> + </field> + <field name="lock"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="object"> + <type name="GObject.Object" c:type="GObject*"/> + </field> + <field name="priv"> + <type name="ControllerPrivate" c:type="GstControllerPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </class> + <record name="ControllerClass" + c:type="GstControllerClass" + glib:is-gtype-struct-for="Controller"> + <field name="parent_class"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="ControllerPrivate" c:type="GstControllerPrivate"> + </record> + <enumeration name="InterpolateMode" + doc="except for times with specific values +The various interpolation modes available." + c:type="GstInterpolateMode"> + <member name="none" value="0" c:identifier="GST_INTERPOLATE_NONE"/> + <member name="trigger" value="1" c:identifier="GST_INTERPOLATE_TRIGGER"/> + <member name="linear" value="2" c:identifier="GST_INTERPOLATE_LINEAR"/> + <member name="quadratic" + value="3" + c:identifier="GST_INTERPOLATE_QUADRATIC"/> + <member name="cubic" value="4" c:identifier="GST_INTERPOLATE_CUBIC"/> + <member name="user" value="5" c:identifier="GST_INTERPOLATE_USER"/> + </enumeration> + <class name="InterpolationControlSource" + c:type="GstInterpolationControlSource" + doc="The instance structure of #GstControlSource." + parent="ControlSource" + glib:type-name="GstInterpolationControlSource" + glib:get-type="gst_interpolation_control_source_get_type" + glib:type-struct="InterpolationControlSourceClass"> + <constructor name="new" + c:identifier="gst_interpolation_control_source_new" + doc="This returns a new, unbound #GstInterpolationControlSource."> + <return-value transfer-ownership="full"> + <type name="InterpolationControlSource" + c:type="GstInterpolationControlSource*"/> + </return-value> + </constructor> + <method name="set_interpolation_mode" + c:identifier="gst_interpolation_control_source_set_interpolation_mode" + doc="Sets the given interpolation mode. +<note><para>User interpolation is not yet available and quadratic interpolation +is deprecated and maps to cubic interpolation.</para></note>"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="mode" transfer-ownership="none"> + <type name="InterpolateMode" c:type="GstInterpolateMode"/> + </parameter> + </parameters> + </method> + <method name="set" + c:identifier="gst_interpolation_control_source_set" + doc="Set the value of given controller-handled property at a certain time."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </parameter> + </parameters> + </method> + <method name="set_from_list" + c:identifier="gst_interpolation_control_source_set_from_list" + doc="Sets multiple timed values at once."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timedvalues" transfer-ownership="none"> + <type name="GLib.SList" c:type="GSList*"/> + </parameter> + </parameters> + </method> + <method name="unset" + c:identifier="gst_interpolation_control_source_unset" + doc="Used to remove the value of given controller-handled property at a certain +time."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="unset_all" + c:identifier="gst_interpolation_control_source_unset_all" + doc="Used to remove all time-stamped values of given controller-handled property"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="get_all" + c:identifier="gst_interpolation_control_source_get_all" + doc="Returns a read-only copy of the list of #GstTimedValue for the given property. +Free the list after done with it."> + <return-value transfer-ownership="full"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <method name="get_count" + c:identifier="gst_interpolation_control_source_get_count" + doc="Returns the number of control points that are set."> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + </method> + <field name="parent"> + <type name="ControlSource" c:type="GstControlSource"/> + </field> + <field name="lock"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="priv"> + <type name="InterpolationControlSourcePrivate" + c:type="GstInterpolationControlSourcePrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="InterpolationControlSourceClass" + c:type="GstInterpolationControlSourceClass" + glib:is-gtype-struct-for="InterpolationControlSource"> + <field name="parent_class"> + <type name="ControlSourceClass" c:type="GstControlSourceClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="InterpolationControlSourcePrivate" + c:type="GstInterpolationControlSourcePrivate"> + </record> + <class name="LFOControlSource" + c:type="GstLFOControlSource" + doc="The instance structure of #GstControlSource." + parent="ControlSource" + glib:type-name="GstLFOControlSource" + glib:get-type="gst_lfo_control_source_get_type" + glib:type-struct="LFOControlSourceClass"> + <constructor name="new" + c:identifier="gst_lfo_control_source_new" + doc="This returns a new, unbound #GstLFOControlSource."> + <return-value transfer-ownership="full"> + <type name="LFOControlSource" c:type="GstLFOControlSource*"/> + </return-value> + </constructor> + <property name="amplitude" writable="1"> + <type name="GObject.Value" c:type="GValue"/> + </property> + <property name="frequency" writable="1"> + <type name="double" c:type="gdouble"/> + </property> + <property name="offset" writable="1"> + <type name="GObject.Value" c:type="GValue"/> + </property> + <property name="timeshift" writable="1"> + <type name="uint64" c:type="guint64"/> + </property> + <property name="waveform" writable="1"> + <type name="LFOWaveform" c:type="GstLFOWaveform"/> + </property> + <field name="parent"> + <type name="ControlSource" c:type="GstControlSource"/> + </field> + <field name="priv"> + <type name="LFOControlSourcePrivate" + c:type="GstLFOControlSourcePrivate*"/> + </field> + <field name="lock"> + <type name="GLib.Mutex" c:type="GMutex*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="LFOControlSourceClass" + c:type="GstLFOControlSourceClass" + glib:is-gtype-struct-for="LFOControlSource"> + <field name="parent_class"> + <type name="ControlSourceClass" c:type="GstControlSourceClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="LFOControlSourcePrivate" c:type="GstLFOControlSourcePrivate"> + </record> + <enumeration name="LFOWaveform" + doc="The various waveform modes available." + glib:type-name="GstLFOWaveform" + glib:get-type="gst_lfo_waveform_get_type" + c:type="GstLFOWaveform"> + <member name="sine" + value="0" + c:identifier="GST_LFO_WAVEFORM_SINE" + glib:nick="sine"/> + <member name="square" + value="1" + c:identifier="GST_LFO_WAVEFORM_SQUARE" + glib:nick="square"/> + <member name="saw" + value="2" + c:identifier="GST_LFO_WAVEFORM_SAW" + glib:nick="saw"/> + <member name="reverse_saw" + value="3" + c:identifier="GST_LFO_WAVEFORM_REVERSE_SAW" + glib:nick="reverse-saw"/> + <member name="triangle" + value="4" + c:identifier="GST_LFO_WAVEFORM_TRIANGLE" + glib:nick="triangle"/> + </enumeration> + <record name="TimedValue" + c:type="GstTimedValue" + doc="Structure for saving a timestamp and a value."> + <field name="timestamp" writable="1"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="value" writable="1"> + <type name="GObject.Value" c:type="GValue"/> + </field> + </record> + <record name="ValueArray" + c:type="GstValueArray" + doc="Structure to receive multiple values at once."> + <field name="property_name" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="nbsamples" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="sample_interval" writable="1"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="values" writable="1"> + <type name="any" c:type="gpointer*"/> + </field> + </record> + <function name="object_control_properties" + c:identifier="gst_object_control_properties" + doc="Convenience function for GObject +Creates a GstController that allows you to dynamically control one, or more, GObject properties. +If the given GObject already has a GstController, it adds the given properties to the existing +controller and returns that controller. +one or more of the given properties aren't available, or cannot be controlled, for the given element." + version="0.9"> + <return-value transfer-ownership="full"> + <type name="Controller" c:type="GstController*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter transfer-ownership="none"> + <varargs> + </varargs> + </parameter> + </parameters> + </function> + <function name="object_get_control_rate" + c:identifier="gst_object_get_control_rate" + doc="Obtain the control-rate for this @object. Audio processing #GstElement +objects will use this rate to sub-divide their processing loop and call +gst_object_sync_values() inbetween. The length of the processing segment +should be up to @control-rate nanoseconds. +If the @object is not under property control, this will return +%GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing. +The control-rate is not expected to change if the element is in +%GST_STATE_PAUSED or %GST_STATE_PLAYING." + version="0.10.10"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + </parameters> + </function> + <function name="object_get_control_source" + c:identifier="gst_object_get_control_source" + doc="Gets the corresponding #GstControlSource for the property. This should be unreferenced +again after use. +controlled by this controller or no #GstControlSource was assigned yet." + version="0.10.14"> + <return-value transfer-ownership="full"> + <type name="ControlSource" c:type="GstControlSource*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="object_get_controller" + c:identifier="gst_object_get_controller" + doc="Gets the controller for the given GObject" + version="0.9"> + <return-value transfer-ownership="full"> + <type name="Controller" c:type="GstController*"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + </parameters> + </function> + <function name="object_get_value_array" + c:identifier="gst_object_get_value_array" + doc="Function to be able to get an array of values for one element properties +If the GstValueArray->values array is NULL, it will be created by the function. +The type of the values in the array are the same as the property's type. +The g_object_* functions are just convenience functions for GObject" + version="0.9"> + <return-value transfer-ownership="none" + doc="could be filled, %FALSE otherwise"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value_array" transfer-ownership="none"> + <type name="ValueArray" c:type="GstValueArray*"/> + </parameter> + </parameters> + </function> + <function name="object_get_value_arrays" + c:identifier="gst_object_get_value_arrays" + doc="Function to be able to get an array of values for one or more given element +properties. +If the GstValueArray->values array in list nodes is NULL, it will be created +by the function. +The type of the values in the array are the same as the property's type. +The g_object_* functions are just convenience functions for GObject" + version="0.9"> + <return-value transfer-ownership="none" + doc="could be filled, %FALSE otherwise"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + <parameter name="value_arrays" transfer-ownership="none"> + <type name="GLib.SList" c:type="GSList*"/> + </parameter> + </parameters> + </function> + <function name="object_set_control_rate" + c:identifier="gst_object_set_control_rate" + doc="Change the control-rate for this @object. Audio processing #GstElement +objects will use this rate to sub-divide their processing loop and call +gst_object_sync_values() inbetween. The length of the processing segment +should be up to @control-rate nanoseconds. +The control-rate should not change if the element is in %GST_STATE_PAUSED or +%GST_STATE_PLAYING." + version="0.10.10"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="control_rate" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </function> + <function name="object_set_control_source" + c:identifier="gst_object_set_control_source" + doc="Sets the #GstControlSource for @property_name. If there already was a #GstControlSource +for this property it will be unreferenced. +couldn't be bound to the property, %TRUE if everything worked as expected." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="property_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="csource" transfer-ownership="none"> + <type name="ControlSource" c:type="GstControlSource*"/> + </parameter> + </parameters> + </function> + <function name="object_set_controller" + c:identifier="gst_object_set_controller" + doc="Sets the controller on the given GObject" + version="0.9"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="controller" transfer-ownership="none"> + <type name="Controller" c:type="GstController*"/> + </parameter> + </parameters> + </function> + <function name="object_suggest_next_sync" + c:identifier="gst_object_suggest_next_sync" + doc="Convenience function for GObject" + version="0.10.13"> + <return-value transfer-ownership="full"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + </parameters> + </function> + <function name="object_sync_values" + c:identifier="gst_object_sync_values" + doc="Convenience function for GObject" + version="0.9"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </function> + <function name="object_uncontrol_properties" + c:identifier="gst_object_uncontrol_properties" + doc="Convenience function for GObject +Removes the given element's properties from it's controller +controller, %TRUE otherwise" + version="0.9"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="GObject.Object" c:type="GObject*"/> + </parameter> + <parameter transfer-ownership="none"> + <varargs> + </varargs> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/controller/controller.factor b/basis/gstreamer/controller/controller.factor new file mode 100644 index 0000000000..ca101cbbba --- /dev/null +++ b/basis/gstreamer/controller/controller.factor @@ -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 + diff --git a/basis/gstreamer/controller/ffi/ffi.factor b/basis/gstreamer/controller/ffi/ffi.factor new file mode 100644 index 0000000000..ea5de2f3a1 --- /dev/null +++ b/basis/gstreamer/controller/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/fft/GstFft-0.10.gir b/basis/gstreamer/fft/GstFft-0.10.gir new file mode 100644 index 0000000000..578dc59d8b --- /dev/null +++ b/basis/gstreamer/fft/GstFft-0.10.gir @@ -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> diff --git a/basis/gstreamer/fft/ffi/ffi.factor b/basis/gstreamer/fft/ffi/ffi.factor new file mode 100644 index 0000000000..77fd0e3d12 --- /dev/null +++ b/basis/gstreamer/fft/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/fft/fft.factor b/basis/gstreamer/fft/fft.factor new file mode 100644 index 0000000000..4ddb102c0a --- /dev/null +++ b/basis/gstreamer/fft/fft.factor @@ -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 + diff --git a/basis/gstreamer/interfaces/GstInterfaces-0.10.gir b/basis/gstreamer/interfaces/GstInterfaces-0.10.gir new file mode 100644 index 0000000000..06591faf88 --- /dev/null +++ b/basis/gstreamer/interfaces/GstInterfaces-0.10.gir @@ -0,0 +1,3570 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <c:include name="gst/interfaces/colorbalance.h"/> + <c:include name="gst/interfaces/colorbalancechannel.h"/> + <c:include name="gst/interfaces/interfaces-enumtypes.h"/> + <c:include name="gst/interfaces/mixer.h"/> + <c:include name="gst/interfaces/mixeroptions.h"/> + <c:include name="gst/interfaces/mixertrack.h"/> + <c:include name="gst/interfaces/navigation.h"/> + <c:include name="gst/interfaces/propertyprobe.h"/> + <c:include name="gst/interfaces/streamvolume.h"/> + <c:include name="gst/interfaces/tuner.h"/> + <c:include name="gst/interfaces/tunerchannel.h"/> + <c:include name="gst/interfaces/tunernorm.h"/> + <c:include name="gst/interfaces/videoorientation.h"/> + <c:include name="gst/interfaces/xoverlay.h"/> + <namespace name="GstInterfaces" + version="0.10" + shared-library="libgstinterfaces-0.10.so.0" + c:prefix="Gst"> + <interface name="ColorBalance" + c:type="GstColorBalance" + glib:type-name="GstColorBalance" + glib:get-type="gst_color_balance_get_type" + glib:type-struct="ColorBalanceClass"> + <prerequisite name="Gst.ImplementsInterface"/> + <prerequisite name="Gst.Element"/> + <virtual-method name="list_channels" invoker="list_channels"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </virtual-method> + <virtual-method name="set_value" invoker="set_value"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_value" invoker="get_value"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/> + </parameter> + </parameters> + </virtual-method> + <method name="list_channels" + c:identifier="gst_color_balance_list_channels" + doc="Retrieve a list of the available channels. +The list is owned by the #GstColorBalance instance and must not +be freed."> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <method name="set_value" + c:identifier="gst_color_balance_set_value" + doc="Sets the current value of the channel to the passed value, which must +be between min_value and max_value. +#GstColorBalanceChannel::max_value members of the +#GstColorBalanceChannel object."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_value" + c:identifier="gst_color_balance_get_value" + doc="Retrieve the current value of the indicated channel, between min_value +and max_value. +#GstColorBalanceChannel::max_value members of the +#GstColorBalanceChannel object."> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/> + </parameter> + </parameters> + </method> + <method name="get_balance_type" + c:identifier="gst_color_balance_get_balance_type" + doc="Get the #GstColorBalanceType of this implementation." + version="0.10.24"> + <return-value transfer-ownership="full"> + <type name="ColorBalanceType" c:type="GstColorBalanceType"/> + </return-value> + </method> + <method name="value_changed" + c:identifier="gst_color_balance_value_changed" + doc="A helper function called by implementations of the GstColorBalance +interface. It fires the #GstColorBalance::value-changed signal on the +instance, and the #GstColorBalanceChannel::value-changed signal on the +channel object."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <glib:signal name="value-changed" + doc="Fired when the value of the indicated channel has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <class name="ColorBalanceChannel" + c:type="GstColorBalanceChannel" + parent="GObject.Object" + glib:type-name="GstColorBalanceChannel" + glib:get-type="gst_color_balance_channel_get_type" + glib:type-struct="ColorBalanceChannelClass"> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="label"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="min_value"> + <type name="int" c:type="gint"/> + </field> + <field name="max_value"> + <type name="int" c:type="gint"/> + </field> + <glib:signal name="value-changed" + doc="Fired when the value of the indicated channel has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="ColorBalanceChannelClass" + c:type="GstColorBalanceChannelClass" + glib:is-gtype-struct-for="ColorBalanceChannel"> + <field name="parent"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="value_changed"> + <callback name="value_changed" c:type="value_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" + c:type="GstColorBalanceChannel*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="ColorBalanceClass" + c:type="GstColorBalanceClass" + glib:is-gtype-struct-for="ColorBalance"> + <field name="klass"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="balance_type"> + <type name="ColorBalanceType" c:type="GstColorBalanceType"/> + </field> + <field name="list_channels"> + <callback name="list_channels" c:type="list_channels"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="balance" transfer-ownership="none"> + <type name="ColorBalance" c:type="GstColorBalance*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_value"> + <callback name="set_value" c:type="set_value"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="balance" transfer-ownership="none"> + <type name="ColorBalance" c:type="GstColorBalance*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" + c:type="GstColorBalanceChannel*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_value"> + <callback name="get_value" c:type="get_value"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="balance" transfer-ownership="none"> + <type name="ColorBalance" c:type="GstColorBalance*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" + c:type="GstColorBalanceChannel*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="value_changed"> + <callback name="value_changed" c:type="value_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="balance" transfer-ownership="none"> + <type name="ColorBalance" c:type="GstColorBalance*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="ColorBalanceChannel" + c:type="GstColorBalanceChannel*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <enumeration name="ColorBalanceType" + doc="hardware. +processing. +An enumeration indicating whether an element implements color balancing +operations in software or in dedicated hardware. In general, dedicated +hardware implementations (such as those provided by xvimagesink) are +preferred." + glib:type-name="GstColorBalanceType" + glib:get-type="gst_color_balance_type_get_type" + c:type="GstColorBalanceType"> + <member name="hardware" + value="0" + c:identifier="GST_COLOR_BALANCE_HARDWARE" + glib:nick="hardware"/> + <member name="software" + value="1" + c:identifier="GST_COLOR_BALANCE_SOFTWARE" + glib:nick="software"/> + </enumeration> + <interface name="Mixer" + c:type="GstMixer" + glib:type-name="GstMixer" + glib:get-type="gst_mixer_get_type" + glib:type-struct="MixerClass"> + <prerequisite name="Gst.ImplementsInterface"/> + <prerequisite name="Gst.Element"/> + <virtual-method name="list_tracks" invoker="list_tracks"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </virtual-method> + <virtual-method name="set_volume" invoker="set_volume"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_volume" invoker="get_volume"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_mute" invoker="set_mute"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="mute" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_record" invoker="set_record"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="record" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_option" invoker="set_option"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_option" invoker="get_option"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_mixer_flags" invoker="get_mixer_flags"> + <return-value transfer-ownership="full"> + <type name="MixerFlags" c:type="GstMixerFlags"/> + </return-value> + </virtual-method> + <method name="list_tracks" + c:identifier="gst_mixer_list_tracks" + doc="Returns a list of available tracks for this mixer/element. Note +that it is allowed for sink (output) elements to only provide +the output tracks in this list. Likewise, for sources (inputs), +it is allowed to only provide input elements in this list. +The list is owned by the #GstMixer instance and must not be freed +or modified."> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <method name="set_volume" + c:identifier="gst_mixer_set_volume" + doc="that gives the wanted volume for each channel in +this track. +Sets the volume on each channel in a track. Short note about +the mixer/element, such as 'Line-in' or 'Microphone'. A +channel is said to be a mono-stream inside this track. A +stereo track thus contains two channels."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_volume" + c:identifier="gst_mixer_get_volume" + doc="track->num_channels) to store the current volume +of each channel in the given track in. +Get the current volume(s) on the given track."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="set_mute" + c:identifier="gst_mixer_set_mute" + doc="muting. +Mutes or unmutes the given channel. To find out whether a +track is currently muted, use GST_MIXER_TRACK_HAS_FLAG ()."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="mute" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_record" + c:identifier="gst_mixer_set_record" + doc="or off recording. +Enables or disables recording on the given track. Note that +this is only possible on input tracks, not on output tracks +(see GST_MIXER_TRACK_HAS_FLAG () and the GST_MIXER_TRACK_INPUT +flag)."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="record" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_option" + c:identifier="gst_mixer_set_option" + doc="Sets a name/value option in the mixer to the requested value."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_option" + c:identifier="gst_mixer_get_option" + doc="Get the current value of a name/value option in the mixer."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + </parameters> + </method> + <method name="mute_toggled" + c:identifier="gst_mixer_mute_toggled" + doc="This function is called by the mixer implementation to produce +a notification message on the bus indicating that the given track +has changed mute state. +This function only works for GstElements that are implementing the +GstMixer interface, and the element needs to have been provided a bus."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="mute" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="record_toggled" + c:identifier="gst_mixer_record_toggled" + doc="This function is called by the mixer implementation to produce +a notification message on the bus indicating that the given track +has changed recording state. +This function only works for GstElements that are implementing the +GstMixer interface, and the element needs to have been provided a bus."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="record" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="volume_changed" + c:identifier="gst_mixer_volume_changed" + doc="This function is called by the mixer implementation to produce +a notification message on the bus indicating that the volume(s) for the +given track have changed. +This function only works for GstElements that are implementing the +GstMixer interface, and the element needs to have been provided a bus."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="option_changed" + c:identifier="gst_mixer_option_changed" + doc="This function is called by the mixer implementation to produce +a notification message on the bus indicating that the given options +object has changed state. +This function only works for GstElements that are implementing the +GstMixer interface, and the element needs to have been provided a bus."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="mixer_changed" + c:identifier="gst_mixer_mixer_changed" + doc="This function is called by the mixer implementation to produce +a notification message on the bus indicating that the list of available +mixer tracks for a given mixer object has changed. Applications should +rebuild their interface when they receive this message. +This function only works for GstElements that are implementing the +GstMixer interface, and the element needs to have been provided a bus." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="options_list_changed" + c:identifier="gst_mixer_options_list_changed" + doc="This function is called by the mixer implementation to produce +a notification message on the bus indicating that the list of possible +options of a given options object has changed. +The new options are not contained in the message on purpose. Applications +should call gst_mixer_option_get_values() on @opts to make @opts update +its internal state and obtain the new list of values. +This function only works for GstElements that are implementing the +GstMixer interface, and the element needs to have been provided a bus +for this to work." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + </parameters> + </method> + <method name="get_mixer_type" + c:identifier="gst_mixer_get_mixer_type" + doc="Get the #GstMixerType of this mixer implementation." + version="0.10.24"> + <return-value transfer-ownership="full"> + <type name="MixerType" c:type="GstMixerType"/> + </return-value> + </method> + <method name="get_mixer_flags" + c:identifier="gst_mixer_get_mixer_flags" + doc="Get the set of supported flags for this mixer implementation."> + <return-value transfer-ownership="full"> + <type name="MixerFlags" c:type="GstMixerFlags"/> + </return-value> + </method> + <glib:signal name="mute-toggled"> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="option-changed"> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="utf8" c:type="gchararray"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="record-toggled"> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="volume-changed"> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="MixerClass" + c:type="GstMixerClass" + glib:is-gtype-struct-for="Mixer"> + <field name="klass"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="mixer_type"> + <type name="MixerType" c:type="GstMixerType"/> + </field> + <field name="list_tracks"> + <callback name="list_tracks" c:type="list_tracks"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_volume"> + <callback name="set_volume" c:type="set_volume"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" + direction="out" + transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_volume"> + <callback name="get_volume" c:type="get_volume"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" + direction="out" + transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_mute"> + <callback name="set_mute" c:type="set_mute"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="mute" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_record"> + <callback name="set_record" c:type="set_record"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="record" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="mute_toggled"> + <callback name="mute_toggled" c:type="mute_toggled"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="mute" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="record_toggled"> + <callback name="record_toggled" c:type="record_toggled"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="record" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="volume_changed"> + <callback name="volume_changed" c:type="volume_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack*"/> + </parameter> + <parameter name="volumes" + direction="out" + transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_option"> + <callback name="set_option" c:type="set_option"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_option"> + <callback name="get_option" c:type="get_option"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="option_changed"> + <callback name="option_changed" c:type="option_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + <parameter name="option" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_mixer_flags"> + <callback name="get_mixer_flags" c:type="get_mixer_flags"> + <return-value transfer-ownership="full"> + <type name="MixerFlags" c:type="GstMixerFlags"/> + </return-value> + <parameters> + <parameter name="mixer" transfer-ownership="none"> + <type name="Mixer" c:type="GstMixer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </record> + <bitfield name="MixerFlags" + doc="sends notification messages. +marked without either input or output. Controls marked as input or +output should be grouped with input & output sliders, even if they +Flags indicating which optional features are supported by a mixer +implementation." + version="0.10.14" + glib:type-name="GstMixerFlags" + glib:get-type="gst_mixer_flags_get_type" + c:type="GstMixerFlags"> + <member name="none" + value="0" + c:identifier="GST_MIXER_FLAG_NONE" + glib:nick="none"/> + <member name="auto_notifications" + value="1" + c:identifier="GST_MIXER_FLAG_AUTO_NOTIFICATIONS" + glib:nick="auto-notifications"/> + <member name="has_whitelist" + value="2" + c:identifier="GST_MIXER_FLAG_HAS_WHITELIST" + glib:nick="has-whitelist"/> + <member name="grouping" + value="4" + c:identifier="GST_MIXER_FLAG_GROUPING" + glib:nick="grouping"/> + </bitfield> + <enumeration name="MixerMessageType" + doc="GstMixer message, posted when the list of available options for a +when the list of available mixer tracks has changed. The application +An enumeration for the type of a GstMixer message received on the bus" + version="0.10.14" + glib:type-name="GstMixerMessageType" + glib:get-type="gst_mixer_message_type_get_type" + c:type="GstMixerMessageType"> + <member name="invalid" + value="0" + c:identifier="GST_MIXER_MESSAGE_INVALID" + glib:nick="invalid"/> + <member name="mute_toggled" + value="1" + c:identifier="GST_MIXER_MESSAGE_MUTE_TOGGLED" + glib:nick="mute-toggled"/> + <member name="record_toggled" + value="2" + c:identifier="GST_MIXER_MESSAGE_RECORD_TOGGLED" + glib:nick="record-toggled"/> + <member name="volume_changed" + value="3" + c:identifier="GST_MIXER_MESSAGE_VOLUME_CHANGED" + glib:nick="volume-changed"/> + <member name="option_changed" + value="4" + c:identifier="GST_MIXER_MESSAGE_OPTION_CHANGED" + glib:nick="option-changed"/> + <member name="options_list_changed" + value="5" + c:identifier="GST_MIXER_MESSAGE_OPTIONS_LIST_CHANGED" + glib:nick="options-list-changed"/> + <member name="mixer_changed" + value="6" + c:identifier="GST_MIXER_MESSAGE_MIXER_CHANGED" + glib:nick="mixer-changed"/> + </enumeration> + <class name="MixerOptions" + c:type="GstMixerOptions" + doc="always use gst_mixer_options_get_values() instead." + parent="MixerTrack" + glib:type-name="GstMixerOptions" + glib:get-type="gst_mixer_options_get_type" + glib:type-struct="MixerOptionsClass"> + <virtual-method name="get_values" invoker="get_values"> + <return-value transfer-ownership="full"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </virtual-method> + <method name="get_values" + c:identifier="gst_mixer_options_get_values" + doc="Get the values for the mixer option. +option. You must not free or modify the list or its contents, it belongs +to the @mixer_options object."> + <return-value transfer-ownership="full"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <field name="parent"> + <type name="MixerTrack" c:type="GstMixerTrack"/> + </field> + <field name="values"> + <type name="GLib.List" c:type="GList*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="MixerOptionsClass" + c:type="GstMixerOptionsClass" + glib:is-gtype-struct-for="MixerOptions"> + <field name="parent"> + <type name="MixerTrackClass" c:type="GstMixerTrackClass"/> + </field> + <field name="get_values"> + <callback name="get_values" c:type="get_values"> + <return-value transfer-ownership="full"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="opts" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </record> + <class name="MixerTrack" + c:type="GstMixerTrack" + parent="GObject.Object" + glib:type-name="GstMixerTrack" + glib:get-type="gst_mixer_track_get_type" + glib:type-struct="MixerTrackClass"> + <property name="flags"> + <type name="uint" c:type="guint"/> + </property> + <property name="index" writable="1" construct-only="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="label"> + <type name="utf8" c:type="gchararray"/> + </property> + <property name="max-volume"> + <type name="int" c:type="gint"/> + </property> + <property name="min-volume"> + <type name="int" c:type="gint"/> + </property> + <property name="num-channels"> + <type name="int" c:type="gint"/> + </property> + <property name="untranslated-label" writable="1" construct-only="1"> + <type name="utf8" c:type="gchararray"/> + </property> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="label"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="flags"> + <type name="MixerTrackFlags" c:type="GstMixerTrackFlags"/> + </field> + <field name="num_channels"> + <type name="int" c:type="gint"/> + </field> + <field name="min_volume"> + <type name="int" c:type="gint"/> + </field> + <field name="max_volume"> + <type name="int" c:type="gint"/> + </field> + </class> + <record name="MixerTrackClass" + c:type="GstMixerTrackClass" + glib:is-gtype-struct-for="MixerTrack"> + <field name="parent"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <bitfield name="MixerTrackFlags" + doc="(for #GST_MIXER_TRACK_INPUT mixer tracks only) +in software (as opposed to a hardware control) +Mixer track flags." + version="0.10.23" + glib:type-name="GstMixerTrackFlags" + glib:get-type="gst_mixer_track_flags_get_type" + c:type="GstMixerTrackFlags"> + <member name="input" + value="1" + c:identifier="GST_MIXER_TRACK_INPUT" + glib:nick="input"/> + <member name="output" + value="2" + c:identifier="GST_MIXER_TRACK_OUTPUT" + glib:nick="output"/> + <member name="mute" + value="4" + c:identifier="GST_MIXER_TRACK_MUTE" + glib:nick="mute"/> + <member name="record" + value="8" + c:identifier="GST_MIXER_TRACK_RECORD" + glib:nick="record"/> + <member name="master" + value="16" + c:identifier="GST_MIXER_TRACK_MASTER" + glib:nick="master"/> + <member name="software" + value="32" + c:identifier="GST_MIXER_TRACK_SOFTWARE" + glib:nick="software"/> + <member name="no_record" + value="64" + c:identifier="GST_MIXER_TRACK_NO_RECORD" + glib:nick="no-record"/> + <member name="no_mute" + value="128" + c:identifier="GST_MIXER_TRACK_NO_MUTE" + glib:nick="no-mute"/> + <member name="whitelist" + value="256" + c:identifier="GST_MIXER_TRACK_WHITELIST" + glib:nick="whitelist"/> + <member name="readonly" + value="512" + c:identifier="GST_MIXER_TRACK_READONLY" + glib:nick="readonly"/> + <member name="writeonly" + value="1024" + c:identifier="GST_MIXER_TRACK_WRITEONLY" + glib:nick="writeonly"/> + </bitfield> + <enumeration name="MixerType" + glib:type-name="GstMixerType" + glib:get-type="gst_mixer_type_get_type" + c:type="GstMixerType"> + <member name="hardware" + value="0" + c:identifier="GST_MIXER_HARDWARE" + glib:nick="hardware"/> + <member name="software" + value="1" + c:identifier="GST_MIXER_SOFTWARE" + glib:nick="software"/> + </enumeration> + <interface name="Navigation" + c:type="GstNavigation" + glib:type-name="GstNavigation" + glib:get-type="gst_navigation_get_type" + glib:type-struct="NavigationInterface"> + <virtual-method name="send_event" invoker="send_event"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="structure" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </virtual-method> + <method name="send_event" c:identifier="gst_navigation_send_event"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="structure" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="send_key_event" + c:identifier="gst_navigation_send_key_event" + doc=""key-release" +by XKeysymToString."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + </parameters> + </method> + <method name="send_mouse_event" + c:identifier="gst_navigation_send_mouse_event" + doc=""mouse-button-press", "mouse-button-release" and "mouse-move". +for mouse-move events. +Sends a mouse event to the navigation interface. Mouse event coordinates +are sent relative to the display space of the related output area. This is +usually the size in pixels of the window associated with the element +implementing the #GstNavigation interface."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </parameter> + <parameter name="button" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="x" transfer-ownership="none"> + <type name="double" c:type="double"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <type name="double" c:type="double"/> + </parameter> + </parameters> + </method> + <method name="send_command" + c:identifier="gst_navigation_send_command" + doc="Sends the indicated command to the navigation interface." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="command" transfer-ownership="none"> + <type name="NavigationCommand" c:type="GstNavigationCommand"/> + </parameter> + </parameters> + </method> + </interface> + <enumeration name="NavigationCommand" + doc="this enters the DVD root menu, or exits back to the title from the menu. +this jumps to the DVD title menu. +this jumps into the DVD root menu. +this jumps to the Subpicture menu. +the jumps to the audio menu. +this jumps to the angles menu. +this jumps to the chapter menu. +if such a button exists. +if such a button exists. +menu, if such a button exists. +menu, if such a button exists. +button in a menu, if such a button exists. +multiangle feature. +feature. +A set of commands that may be issued to an element providing the +#GstNavigation interface. The available commands can be queried via +the gst_navigation_query_new_commands() query. +For convenience in handling DVD navigation, the MENU commands are aliased as: +GST_NAVIGATION_COMMAND_DVD_MENU = @GST_NAVIGATION_COMMAND_MENU1 +GST_NAVIGATION_COMMAND_DVD_TITLE_MENU = @GST_NAVIGATION_COMMAND_MENU2 +GST_NAVIGATION_COMMAND_DVD_ROOT_MENU = @GST_NAVIGATION_COMMAND_MENU3 +GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4 +GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU = @GST_NAVIGATION_COMMAND_MENU5 +GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU = @GST_NAVIGATION_COMMAND_MENU6 +GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU = @GST_NAVIGATION_COMMAND_MENU7" + version="0.10.23" + glib:type-name="GstNavigationCommand" + glib:get-type="gst_navigation_command_get_type" + c:type="GstNavigationCommand"> + <member name="invalid" + value="0" + c:identifier="GST_NAVIGATION_COMMAND_INVALID" + glib:nick="invalid"/> + <member name="menu1" + value="1" + c:identifier="GST_NAVIGATION_COMMAND_MENU1" + glib:nick="menu1"/> + <member name="menu2" + value="2" + c:identifier="GST_NAVIGATION_COMMAND_MENU2" + glib:nick="menu2"/> + <member name="menu3" + value="3" + c:identifier="GST_NAVIGATION_COMMAND_MENU3" + glib:nick="menu3"/> + <member name="menu4" + value="4" + c:identifier="GST_NAVIGATION_COMMAND_MENU4" + glib:nick="menu4"/> + <member name="menu5" + value="5" + c:identifier="GST_NAVIGATION_COMMAND_MENU5" + glib:nick="menu5"/> + <member name="menu6" + value="6" + c:identifier="GST_NAVIGATION_COMMAND_MENU6" + glib:nick="menu6"/> + <member name="menu7" + value="7" + c:identifier="GST_NAVIGATION_COMMAND_MENU7" + glib:nick="menu7"/> + <member name="left" + value="20" + c:identifier="GST_NAVIGATION_COMMAND_LEFT" + glib:nick="left"/> + <member name="right" + value="21" + c:identifier="GST_NAVIGATION_COMMAND_RIGHT" + glib:nick="right"/> + <member name="up" + value="22" + c:identifier="GST_NAVIGATION_COMMAND_UP" + glib:nick="up"/> + <member name="down" + value="23" + c:identifier="GST_NAVIGATION_COMMAND_DOWN" + glib:nick="down"/> + <member name="activate" + value="24" + c:identifier="GST_NAVIGATION_COMMAND_ACTIVATE" + glib:nick="activate"/> + <member name="prev_angle" + value="30" + c:identifier="GST_NAVIGATION_COMMAND_PREV_ANGLE" + glib:nick="prev-angle"/> + <member name="next_angle" + value="31" + c:identifier="GST_NAVIGATION_COMMAND_NEXT_ANGLE" + glib:nick="next-angle"/> + </enumeration> + <enumeration name="NavigationEventType" + doc="gst_navigation_event_get_type() when the passed event is not a navigation event. +gst_navigation_event_parse_key_event() to extract the details from the event. +gst_navigation_event_parse_key_event() to extract the details from the event. +gst_navigation_event_parse_mouse_button_event() to extract the details from the +event. +gst_navigation_event_parse_mouse_button_event() to extract the details from the +event. +gst_navigation_event_parse_mouse_move_event() to extract the details from the +event. +gst_navigation_event_parse_command() to extract the details from the event. +Enum values for the various events that an element implementing the +GstNavigation interface might send up the pipeline." + version="0.10.23" + glib:type-name="GstNavigationEventType" + glib:get-type="gst_navigation_event_type_get_type" + c:type="GstNavigationEventType"> + <member name="invalid" + value="0" + c:identifier="GST_NAVIGATION_EVENT_INVALID" + glib:nick="invalid"/> + <member name="key_press" + value="1" + c:identifier="GST_NAVIGATION_EVENT_KEY_PRESS" + glib:nick="key-press"/> + <member name="key_release" + value="2" + c:identifier="GST_NAVIGATION_EVENT_KEY_RELEASE" + glib:nick="key-release"/> + <member name="mouse_button_press" + value="3" + c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS" + glib:nick="mouse-button-press"/> + <member name="mouse_button_release" + value="4" + c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE" + glib:nick="mouse-button-release"/> + <member name="mouse_move" + value="5" + c:identifier="GST_NAVIGATION_EVENT_MOUSE_MOVE" + glib:nick="mouse-move"/> + <member name="command" + value="6" + c:identifier="GST_NAVIGATION_EVENT_COMMAND" + glib:nick="command"/> + </enumeration> + <record name="NavigationInterface" + c:type="GstNavigationInterface" + glib:is-gtype-struct-for="Navigation"> + <field name="g_iface"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="send_event"> + <callback name="send_event" c:type="send_event"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="navigation" transfer-ownership="none"> + <type name="Navigation" c:type="GstNavigation*"/> + </parameter> + <parameter name="structure" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <enumeration name="NavigationMessageType" + doc="gst_navigation_message_get_type() when the passed message is not a +navigation message. +clickable region of the output, such as a DVD menu button. +changes and should re-queried by interested applications. +feature (such as a multiangle DVD) change - either angles have appeared or +disappeared. +A set of notifications that may be received on the bus when navigation +related status changes." + version="0.10.23" + glib:type-name="GstNavigationMessageType" + glib:get-type="gst_navigation_message_type_get_type" + c:type="GstNavigationMessageType"> + <member name="invalid" + value="0" + c:identifier="GST_NAVIGATION_MESSAGE_INVALID" + glib:nick="invalid"/> + <member name="mouse_over" + value="1" + c:identifier="GST_NAVIGATION_MESSAGE_MOUSE_OVER" + glib:nick="mouse-over"/> + <member name="commands_changed" + value="2" + c:identifier="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED" + glib:nick="commands-changed"/> + <member name="angles_changed" + value="3" + c:identifier="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED" + glib:nick="angles-changed"/> + </enumeration> + <enumeration name="NavigationQueryType" + glib:type-name="GstNavigationQueryType" + glib:get-type="gst_navigation_query_type_get_type" + c:type="GstNavigationQueryType"> + <member name="invalid" + value="0" + c:identifier="GST_NAVIGATION_QUERY_INVALID" + glib:nick="invalid"/> + <member name="commands" + value="1" + c:identifier="GST_NAVIGATION_QUERY_COMMANDS" + glib:nick="commands"/> + <member name="angles" + value="2" + c:identifier="GST_NAVIGATION_QUERY_ANGLES" + glib:nick="angles"/> + </enumeration> + <interface name="PropertyProbe" + c:type="GstPropertyProbe" + doc="Opaque #GstPropertyProbe data structure." + glib:type-name="GstPropertyProbe" + glib:get-type="gst_property_probe_get_type" + glib:type-struct="PropertyProbeInterface"> + <virtual-method name="get_properties" invoker="get_properties"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </virtual-method> + <virtual-method name="needs_probe"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="prop_id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="probe_property"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="prop_id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_values"> + <return-value transfer-ownership="full"> + <type name="GObject.ValueArray" c:type="GValueArray*"/> + </return-value> + <parameters> + <parameter name="prop_id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_properties" + c:identifier="gst_property_probe_get_properties" + doc="Get a list of properties for which probing is supported. +by this element."> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <method name="get_property" + c:identifier="gst_property_probe_get_property" + doc="Get #GParamSpec for a property for which probing is supported."> + <return-value transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="probe_property" + c:identifier="gst_property_probe_probe_property" + doc="Runs a probe on the property specified by @pspec"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <method name="probe_property_name" + c:identifier="gst_property_probe_probe_property_name" + doc="Runs a probe on the property specified by @name."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="needs_probe" + c:identifier="gst_property_probe_needs_probe" + doc="Checks whether a property needs a probe. This might be because +the property wasn't initialized before, or because host setup +changed. This might be, for example, because a new device was +added, and thus device probing needs to be refreshed to display +the new device."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <method name="needs_probe_name" + c:identifier="gst_property_probe_needs_probe_name" + doc="Same as gst_property_probe_needs_probe ()."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_values" + c:identifier="gst_property_probe_get_values" + doc="Gets the possible (probed) values for the given property, +requires the property to have been probed before."> + <return-value transfer-ownership="full"> + <type name="GObject.ValueArray" c:type="GValueArray*"/> + </return-value> + <parameters> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <method name="get_values_name" + c:identifier="gst_property_probe_get_values_name" + doc="Same as gst_property_probe_get_values ()."> + <return-value transfer-ownership="full"> + <type name="GObject.ValueArray" c:type="GValueArray*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="probe_and_get_values" + c:identifier="gst_property_probe_probe_and_get_values" + doc="Check whether the given property requires a new probe. If so, +fo the probe. After that, retrieve a value list. Meant as a +utility function that wraps the above functions."> + <return-value transfer-ownership="full"> + <type name="GObject.ValueArray" c:type="GValueArray*"/> + </return-value> + <parameters> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </method> + <method name="probe_and_get_values_name" + c:identifier="gst_property_probe_probe_and_get_values_name" + doc="Same as gst_property_probe_probe_and_get_values ()."> + <return-value transfer-ownership="full"> + <type name="GObject.ValueArray" c:type="GValueArray*"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <glib:signal name="probe-needed"> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="PropertyProbeInterface" + c:type="GstPropertyProbeInterface" + glib:is-gtype-struct-for="PropertyProbe" + doc="#GstPropertyProbe interface."> + <field name="klass"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="probe_needed"> + <callback name="probe_needed" c:type="probe_needed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="probe" transfer-ownership="none"> + <type name="PropertyProbe" c:type="GstPropertyProbe*"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_properties"> + <callback name="get_properties" c:type="get_properties"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="probe" transfer-ownership="none"> + <type name="PropertyProbe" c:type="GstPropertyProbe*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="needs_probe"> + <callback name="needs_probe" c:type="needs_probe"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="probe" transfer-ownership="none"> + <type name="PropertyProbe" c:type="GstPropertyProbe*"/> + </parameter> + <parameter name="prop_id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="probe_property"> + <callback name="probe_property" c:type="probe_property"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="probe" transfer-ownership="none"> + <type name="PropertyProbe" c:type="GstPropertyProbe*"/> + </parameter> + <parameter name="prop_id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_values"> + <callback name="get_values" c:type="get_values"> + <return-value transfer-ownership="full"> + <type name="GObject.ValueArray" c:type="GValueArray*"/> + </return-value> + <parameters> + <parameter name="probe" transfer-ownership="none"> + <type name="PropertyProbe" c:type="GstPropertyProbe*"/> + </parameter> + <parameter name="prop_id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pspec" transfer-ownership="none"> + <type name="GObject.ParamSpec" c:type="GParamSpec*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <interface name="StreamVolume" + c:type="GstStreamVolume" + glib:type-name="GstStreamVolume" + glib:get-type="gst_stream_volume_get_type" + glib:type-struct="StreamVolumeInterface"> + <method name="set_volume" + c:identifier="gst_stream_volume_set_volume" + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="val" transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </parameter> + </parameters> + </method> + <method name="get_volume" + c:identifier="gst_stream_volume_get_volume" + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + </parameters> + </method> + <method name="set_mute" + c:identifier="gst_stream_volume_set_mute" + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="mute" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="get_mute" + c:identifier="gst_stream_volume_get_mute" + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <property name="mute" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="volume" writable="1"> + <type name="double" c:type="gdouble"/> + </property> + </interface> + <enumeration name="StreamVolumeFormat" + doc="Different representations of a stream volume. gst_stream_volume_convert() +allows to convert between the different representations. +Formulas to convert from a linear to a cubic or dB volume are +cbrt(val) and 20 * log10 (val)." + version="0.10.25" + glib:type-name="GstStreamVolumeFormat" + glib:get-type="gst_stream_volume_format_get_type" + c:type="GstStreamVolumeFormat"> + <member name="linear" + value="0" + c:identifier="GST_STREAM_VOLUME_FORMAT_LINEAR" + glib:nick="linear"/> + <member name="cubic" + value="1" + c:identifier="GST_STREAM_VOLUME_FORMAT_CUBIC" + glib:nick="cubic"/> + <member name="db" + value="2" + c:identifier="GST_STREAM_VOLUME_FORMAT_DB" + glib:nick="db"/> + </enumeration> + <record name="StreamVolumeInterface" + c:type="GstStreamVolumeInterface" + glib:is-gtype-struct-for="StreamVolume"> + <field name="parent"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <interface name="Tuner" + c:type="GstTuner" + glib:type-name="GstTuner" + glib:get-type="gst_tuner_get_type" + glib:type-struct="TunerClass"> + <prerequisite name="Gst.ImplementsInterface"/> + <prerequisite name="Gst.Element"/> + <virtual-method name="list_channels" invoker="list_channels"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </virtual-method> + <virtual-method name="set_channel" invoker="set_channel"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_channel" invoker="get_channel"> + <return-value transfer-ownership="full"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </return-value> + </virtual-method> + <virtual-method name="list_norms" invoker="list_norms"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </virtual-method> + <virtual-method name="set_norm" invoker="set_norm"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="norm" transfer-ownership="none"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_norm" invoker="get_norm"> + <return-value transfer-ownership="full"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </return-value> + </virtual-method> + <virtual-method name="set_frequency" invoker="set_frequency"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_frequency" invoker="get_frequency"> + <return-value transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="signal_strength" invoker="signal_strength"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </virtual-method> + <method name="list_channels" + c:identifier="gst_tuner_list_channels" + doc="Retrieve a #GList of #GstTunerChannels available +(e.g. 'composite', 's-video', ...) from the given tuner object. +owned by the GstTuner and must not be freed."> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <method name="set_channel" + c:identifier="gst_tuner_set_channel" + doc="Tunes the object to the given channel, which should be one of the +channels returned by gst_tuner_list_channels()."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </method> + <method name="get_channel" + c:identifier="gst_tuner_get_channel" + doc="Retrieve the current channel from the tuner."> + <return-value transfer-ownership="full"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </return-value> + </method> + <method name="list_norms" + c:identifier="gst_tuner_list_norms" + doc="Retrieve a GList of available #GstTunerNorm settings for the currently +tuned channel on the given tuner object. +tuner object. The list is owned by the GstTuner and must not +be freed."> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + </method> + <method name="set_norm" + c:identifier="gst_tuner_set_norm" + doc="Changes the video norm on this tuner to the given norm, which should be +one of the norms returned by gst_tuner_list_norms()."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="norm" transfer-ownership="none"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </parameter> + </parameters> + </method> + <method name="get_norm" + c:identifier="gst_tuner_get_norm" + doc="Get the current video norm from the given tuner object for the +currently selected channel."> + <return-value transfer-ownership="full"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </return-value> + </method> + <method name="set_frequency" + c:identifier="gst_tuner_set_frequency" + doc="Sets a tuning frequency on the given tuner/channel. Note that this +requires the given channel to be a "tuning" channel, which can be +checked using GST_TUNER_CHANNEL_HAS_FLAG (), with the proper flag +being GST_TUNER_CHANNEL_FREQUENCY. +The frequency is in Hz, with minimum steps indicated by the +frequency_multiplicator provided in the #GstTunerChannel. The +valid range is provided in the min_frequency and max_frequency properties +of the #GstTunerChannel."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="get_frequency" + c:identifier="gst_tuner_get_frequency" + doc="Retrieve the current frequency from the given channel. As for +gst_tuner_set_frequency(), the #GstTunerChannel must support frequency +operations, as indicated by the GST_TUNER_CHANNEL_FREQUENCY flag."> + <return-value transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </method> + <method name="signal_strength" + c:identifier="gst_tuner_signal_strength" + doc="Get the strength of the signal on this channel. Note that this +requires the current channel to be a "tuning" channel, i.e. a +channel on which frequency can be set. This can be checked using +GST_TUNER_CHANNEL_HAS_FLAG (), and the appropriate flag to check +for is GST_TUNER_CHANNEL_FREQUENCY. +The valid range of the signal strength is indicated in the +min_signal and max_signal properties of the #GstTunerChannel."> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </method> + <method name="find_norm_by_name" + c:identifier="gst_tuner_find_norm_by_name" + doc="Look up a #GstTunerNorm by name. +is available."> + <return-value transfer-ownership="full"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </return-value> + <parameters> + <parameter name="norm" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="find_channel_by_name" + c:identifier="gst_tuner_find_channel_by_name" + doc="Look up a #GstTunerChannel by name. +is available."> + <return-value transfer-ownership="full"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="channel_changed" + c:identifier="gst_tuner_channel_changed" + doc="Called by elements implementing the #GstTuner interface when the +current channel changes. Fires the #GstTuner::channel-changed signal."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </method> + <method name="norm_changed" + c:identifier="gst_tuner_norm_changed" + doc="Called by elements implementing the #GstTuner interface when the +current norm changes. Fires the #GstTuner::norm-changed signal."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="norm" transfer-ownership="none"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </parameter> + </parameters> + </method> + <method name="frequency_changed" + c:identifier="gst_tuner_frequency_changed" + doc="Called by elements implementing the #GstTuner interface when the +configured frequency changes. Fires the #GstTuner::frequency-changed +signal on the tuner, and the #GstTunerChannel::frequency-changed signal +on the channel."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="signal_changed" + c:identifier="gst_tuner_signal_changed" + doc="Called by elements implementing the #GstTuner interface when the +incoming signal strength changes. Fires the #GstTuner::signal-changed +signal on the tuner and the #GstTunerChannel::signal-changed signal on +the channel."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="signal" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <glib:signal name="channel-changed" + doc="Reports that the current #GstTunerChannel has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="frequency-changed" + doc="Reports that the current frequency has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="norm-changed" + doc="Reports that the current #GstTunerNorm has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="norm" transfer-ownership="none"> + <type name="TunerNorm" c:type="GstTunerNorm"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="signal-changed" + doc="Reports that the signal strength has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel"/> + </parameter> + <parameter name="signal" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <class name="TunerChannel" + c:type="GstTunerChannel" + parent="GObject.Object" + glib:type-name="GstTunerChannel" + glib:get-type="gst_tuner_channel_get_type" + glib:type-struct="TunerChannelClass"> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="label"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="flags"> + <type name="TunerChannelFlags" c:type="GstTunerChannelFlags"/> + </field> + <field name="freq_multiplicator"> + <type name="float" c:type="gfloat"/> + </field> + <field name="min_frequency"> + <type name="ulong" c:type="gulong"/> + </field> + <field name="max_frequency"> + <type name="ulong" c:type="gulong"/> + </field> + <field name="min_signal"> + <type name="int" c:type="gint"/> + </field> + <field name="max_signal"> + <type name="int" c:type="gint"/> + </field> + <glib:signal name="frequency-changed" + doc="Reports that the current frequency has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </glib:signal> + <glib:signal name="signal-changed" + doc="Reports that the signal strength has changed."> + <return-value transfer-ownership="full"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="signal" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </glib:signal> + </class> + <record name="TunerChannelClass" + c:type="GstTunerChannelClass" + glib:is-gtype-struct-for="TunerChannel"> + <field name="parent"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="frequency_changed"> + <callback name="frequency_changed" c:type="frequency_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </callback> + </field> + <field name="signal_changed"> + <callback name="signal_changed" c:type="signal_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="signal" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <bitfield name="TunerChannelFlags" + doc="and signal strength. +An enumeration for flags indicating the available capabilities +of a #GstTunerChannel." + glib:type-name="GstTunerChannelFlags" + glib:get-type="gst_tuner_channel_flags_get_type" + c:type="GstTunerChannelFlags"> + <member name="input" + value="1" + c:identifier="GST_TUNER_CHANNEL_INPUT" + glib:nick="input"/> + <member name="output" + value="2" + c:identifier="GST_TUNER_CHANNEL_OUTPUT" + glib:nick="output"/> + <member name="frequency" + value="4" + c:identifier="GST_TUNER_CHANNEL_FREQUENCY" + glib:nick="frequency"/> + <member name="audio" + value="8" + c:identifier="GST_TUNER_CHANNEL_AUDIO" + glib:nick="audio"/> + </bitfield> + <record name="TunerClass" + c:type="GstTunerClass" + glib:is-gtype-struct-for="Tuner"> + <field name="klass"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="list_channels"> + <callback name="list_channels" c:type="list_channels"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_channel"> + <callback name="set_channel" c:type="set_channel"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_channel"> + <callback name="get_channel" c:type="get_channel"> + <return-value transfer-ownership="full"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="list_norms"> + <callback name="list_norms" c:type="list_norms"> + <return-value transfer-ownership="none"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_norm"> + <callback name="set_norm" c:type="set_norm"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="norm" transfer-ownership="none"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_norm"> + <callback name="get_norm" c:type="get_norm"> + <return-value transfer-ownership="full"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_frequency"> + <callback name="set_frequency" c:type="set_frequency"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_frequency"> + <callback name="get_frequency" c:type="get_frequency"> + <return-value transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="signal_strength"> + <callback name="signal_strength" c:type="signal_strength"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="channel_changed"> + <callback name="channel_changed" c:type="channel_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="norm_changed"> + <callback name="norm_changed" c:type="norm_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="norm" transfer-ownership="none"> + <type name="TunerNorm" c:type="GstTunerNorm*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="frequency_changed"> + <callback name="frequency_changed" c:type="frequency_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="frequency" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </callback> + </field> + <field name="signal_changed"> + <callback name="signal_changed" c:type="signal_changed"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tuner" transfer-ownership="none"> + <type name="Tuner" c:type="GstTuner*"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="TunerChannel" c:type="GstTunerChannel*"/> + </parameter> + <parameter name="signal" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <class name="TunerNorm" + c:type="GstTunerNorm" + doc="if any. (May be unset)." + parent="GObject.Object" + glib:type-name="GstTunerNorm" + glib:get-type="gst_tuner_norm_get_type" + glib:type-struct="TunerNormClass"> + <field name="parent"> + <type name="GObject.Object" c:type="GObject"/> + </field> + <field name="label"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="framerate"> + <type name="GObject.Value" c:type="GValue"/> + </field> + </class> + <record name="TunerNormClass" + c:type="GstTunerNormClass" + glib:is-gtype-struct-for="TunerNorm"> + <field name="parent"> + <type name="GObject.ObjectClass" c:type="GObjectClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <interface name="VideoOrientation" + c:type="GstVideoOrientation" + doc="Opaque #GstVideoOrientation data structure." + glib:type-name="GstVideoOrientation" + glib:get-type="gst_video_orientation_get_type" + glib:type-struct="VideoOrientationInterface"> + <prerequisite name="Gst.ImplementsInterface"/> + <prerequisite name="Gst.Element"/> + <virtual-method name="get_hflip" invoker="get_hflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_vflip" invoker="get_vflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_hcenter" invoker="get_hcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_vcenter" invoker="get_vcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_hflip" invoker="set_hflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_vflip" invoker="set_vflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_hcenter" invoker="set_hcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_vcenter" invoker="set_vcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <method name="get_hflip" + c:identifier="gst_video_orientation_get_hflip" + doc="Get the horizontal flipping state (%TRUE for flipped) from the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_vflip" + c:identifier="gst_video_orientation_get_vflip" + doc="Get the vertical flipping state (%TRUE for flipped) from the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </method> + <method name="get_hcenter" + c:identifier="gst_video_orientation_get_hcenter" + doc="Get the horizontal centering offset from the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="get_vcenter" + c:identifier="gst_video_orientation_get_vcenter" + doc="Get the vertical centering offset from the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </method> + <method name="set_hflip" + c:identifier="gst_video_orientation_set_hflip" + doc="Set the horizontal flipping state (%TRUE for flipped) for the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_vflip" + c:identifier="gst_video_orientation_set_vflip" + doc="Set the vertical flipping state (%TRUE for flipped) for the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="flip" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_hcenter" + c:identifier="gst_video_orientation_set_hcenter" + doc="Set the horizontal centering offset for the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_vcenter" + c:identifier="gst_video_orientation_set_vcenter" + doc="Set the vertical centering offset for the given object." + version="0.10.11"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="center" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + </interface> + <record name="VideoOrientationInterface" + c:type="GstVideoOrientationInterface" + glib:is-gtype-struct-for="VideoOrientation" + doc="#GstVideoOrientationInterface interface."> + <field name="parent"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="get_hflip"> + <callback name="get_hflip" c:type="get_hflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="flip" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_vflip"> + <callback name="get_vflip" c:type="get_vflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="flip" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_hcenter"> + <callback name="get_hcenter" c:type="get_hcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="center" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_vcenter"> + <callback name="get_vcenter" c:type="get_vcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="center" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_hflip"> + <callback name="set_hflip" c:type="set_hflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="flip" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_vflip"> + <callback name="set_vflip" c:type="set_vflip"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="flip" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_hcenter"> + <callback name="set_hcenter" c:type="set_hcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="center" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_vcenter"> + <callback name="set_vcenter" c:type="set_vcenter"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="video_orientation" transfer-ownership="none"> + <type name="VideoOrientation" c:type="GstVideoOrientation*"/> + </parameter> + <parameter name="center" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <interface name="XOverlay" + c:type="GstXOverlay" + doc="Opaque #GstXOverlay data structure." + glib:type-name="GstXOverlay" + glib:get-type="gst_x_overlay_get_type" + glib:type-struct="XOverlayClass"> + <prerequisite name="Gst.ImplementsInterface"/> + <prerequisite name="Gst.Element"/> + <virtual-method name="set_xwindow_id" invoker="set_xwindow_id"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="xwindow_id" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="expose" invoker="expose"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </virtual-method> + <virtual-method name="handle_events" invoker="handle_events"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="handle_events" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_render_rectangle" + invoker="set_render_rectangle"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="x" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </virtual-method> + <method name="set_xwindow_id" + c:identifier="gst_x_overlay_set_xwindow_id" + doc="This will call the video overlay's set_xwindow_id method. You should +use this method to tell to a XOverlay to display video output to a +specific XWindow. Passing 0 as the xwindow_id will tell the overlay to +stop using that window and create an internal one."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="xwindow_id" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="set_render_rectangle" + c:identifier="gst_x_overlay_set_render_rectangle" + doc="Configure a subregion as a video target within the window set by +gst_x_overlay_set_xwindow_id(). If this is not used or not supported +the video will fill the area of the window set as the overlay to 100%. +By specifying the rectangle, the video can be overlayed to a specific region +of that window only. After setting the new rectangle one should call +gst_x_overlay_expose() to force a redraw. To unset the region pass -1 for +the @x, @y, @width, and @height parameters. +This method is needed for non fullscreen video overlay in UI toolkits that +do not support subwindows." + version="0.10.29"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="x" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="expose" + c:identifier="gst_x_overlay_expose" + doc="Tell an overlay that it has been exposed. This will redraw the current frame +in the drawable even if the pipeline is PAUSED."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="handle_events" + c:identifier="gst_x_overlay_handle_events" + doc="Tell an overlay that it should handle events from the window system. These +events are forwared upstream as navigation events. In some window system, +events are not propagated in the window hierarchy if a client is listening +for them. This method allows you to disable events handling completely +from the XOverlay." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="handle_events" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="got_xwindow_id" + c:identifier="gst_x_overlay_got_xwindow_id" + doc="This will post a "have-xwindow-id" element message on the bus. +This function should only be used by video overlay plugin developers."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="xwindow_id" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </method> + <method name="prepare_xwindow_id" + c:identifier="gst_x_overlay_prepare_xwindow_id" + doc="This will post a "prepare-xwindow-id" element message on the bus +to give applications an opportunity to call +gst_x_overlay_set_xwindow_id() before a plugin creates its own +window. +This function should only be used by video overlay plugin developers."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + </interface> + <record name="XOverlayClass" + c:type="GstXOverlayClass" + glib:is-gtype-struct-for="XOverlay" + doc="#GstXOverlay interface"> + <field name="klass"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="set_xwindow_id"> + <callback name="set_xwindow_id" c:type="set_xwindow_id"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="overlay" transfer-ownership="none"> + <type name="XOverlay" c:type="GstXOverlay*"/> + </parameter> + <parameter name="xwindow_id" transfer-ownership="none"> + <type name="ulong" c:type="gulong"/> + </parameter> + </parameters> + </callback> + </field> + <field name="expose"> + <callback name="expose" c:type="expose"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="overlay" transfer-ownership="none"> + <type name="XOverlay" c:type="GstXOverlay*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_events"> + <callback name="handle_events" c:type="handle_events"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="overlay" transfer-ownership="none"> + <type name="XOverlay" c:type="GstXOverlay*"/> + </parameter> + <parameter name="handle_events" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_render_rectangle"> + <callback name="set_render_rectangle" c:type="set_render_rectangle"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="overlay" transfer-ownership="none"> + <type name="XOverlay" c:type="GstXOverlay*"/> + </parameter> + <parameter name="x" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="y" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> + <type name="any"/> + </array> + </field> + </record> + <function name="mixer_message_get_type" + c:identifier="gst_mixer_message_get_type" + doc="Check a bus message to see if it is a GstMixer notification +message and return the GstMixerMessageType identifying which +type of notification it is. +if the message is not a GstMixer notification." + version="0.10.14"> + <return-value transfer-ownership="full"> + <type name="MixerMessageType" c:type="GstMixerMessageType"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="mixer_message_parse_mute_toggled" + c:identifier="gst_mixer_message_parse_mute_toggled" + doc="Extracts the contents of a mute-toggled bus message. Reads +the GstMixerTrack that has changed, and the new value of the mute +flag. +The GstMixerTrack remains valid until the message is freed." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack**"/> + </parameter> + <parameter name="mute" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="mixer_message_parse_option_changed" + c:identifier="gst_mixer_message_parse_option_changed" + doc="Extracts the GstMixerOptions and new value from a option-changed bus notification +message. +The options and value returned remain valid until the message is freed." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions**"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="mixer_message_parse_options_list_changed" + c:identifier="gst_mixer_message_parse_options_list_changed" + doc="Extracts the GstMixerOptions whose value list has changed from an +options-list-changed bus notification message. +The options object returned remains valid until the message is freed. You +do not need to unref it." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="options" transfer-ownership="none"> + <type name="MixerOptions" c:type="GstMixerOptions**"/> + </parameter> + </parameters> + </function> + <function name="mixer_message_parse_record_toggled" + c:identifier="gst_mixer_message_parse_record_toggled" + doc="Extracts the contents of a record-toggled bus message. Reads +the GstMixerTrack that has changed, and the new value of the +recording flag. +The GstMixerTrack remains valid until the message is freed." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack**"/> + </parameter> + <parameter name="record" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="mixer_message_parse_volume_changed" + c:identifier="gst_mixer_message_parse_volume_changed" + doc="Parses a volume-changed notification message and extracts the track object +it refers to, as well as an array of volumes and the size of the volumes array. +The track object remains valid until the message is freed. +The caller must free the array returned in the volumes parameter using g_free +when they are done with it." + version="0.10.14"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="track" transfer-ownership="none"> + <type name="MixerTrack" c:type="GstMixerTrack**"/> + </parameter> + <parameter name="volumes" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint**"/> + </parameter> + <parameter name="num_channels" + direction="out" + transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </function> + <function name="navigation_event_get_type" + c:identifier="gst_navigation_event_get_type" + doc="Inspect a #GstEvent and return the #GstNavigationEventType of the event, or +#GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="NavigationEventType" c:type="GstNavigationEventType"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </function> + <function name="navigation_event_parse_command" + c:identifier="gst_navigation_event_parse_command" + doc="navigation event. +Inspect a #GstNavigation command event and retrieve the enum value of the +associated command." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="command" transfer-ownership="none"> + <type name="NavigationCommand" c:type="GstNavigationCommand*"/> + </parameter> + </parameters> + </function> + <function name="navigation_event_parse_key_event" + c:identifier="gst_navigation_event_parse_key_event" + doc="press. The returned string is owned by the event, and valid only until the +event is unreffed." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="navigation_event_parse_mouse_button_event" + c:identifier="gst_navigation_event_parse_mouse_button_event" + doc="with the event. +event. +event. +Retrieve the details of either a #GstNavigation mouse button press event or +a mouse button release event. Determine which type the event is using +gst_navigation_event_get_type() to retrieve the #GstNavigationEventType. +otherwise FALSE." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="button" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + <parameter name="x" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + <parameter name="y" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + </parameters> + </function> + <function name="navigation_event_parse_mouse_move_event" + c:identifier="gst_navigation_event_parse_mouse_move_event" + doc="Inspect a #GstNavigation mouse movement event and extract the coordinates +of the event." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="x" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + <parameter name="y" direction="out" transfer-ownership="full"> + <type name="double" c:type="gdouble*"/> + </parameter> + </parameters> + </function> + <function name="navigation_message_get_type" + c:identifier="gst_navigation_message_get_type" + doc="Check a bus message to see if it is a #GstNavigation event, and return +the #GstNavigationMessageType identifying the type of the message if so. +#GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation +notification." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="NavigationMessageType" c:type="GstNavigationMessageType"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="navigation_message_new_angles_changed" + c:identifier="gst_navigation_message_new_angles_changed" + doc="Creates a new #GstNavigation message with type +#GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application +that the current angle, or current number of angles available in a +multiangle video has changed." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="cur_angle" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="n_angles" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="navigation_message_new_commands_changed" + c:identifier="gst_navigation_message_new_commands_changed" + doc="Creates a new #GstNavigation message with type +#GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED" + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + </parameters> + </function> + <function name="navigation_message_new_mouse_over" + c:identifier="gst_navigation_message_new_mouse_over" + doc="%FALSE if it over a non-clickable area. +Creates a new #GstNavigation message with type +#GST_NAVIGATION_MESSAGE_MOUSE_OVER." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="src" transfer-ownership="none"> + <type name="Gst.Object" c:type="GstObject*"/> + </parameter> + <parameter name="active" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="navigation_message_parse_angles_changed" + c:identifier="gst_navigation_message_parse_angles_changed" + doc="or NULL +Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED +and extract the @cur_angle and @n_angles parameters." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="cur_angle" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + <parameter name="n_angles" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="navigation_message_parse_mouse_over" + c:identifier="gst_navigation_message_parse_mouse_over" + doc="or NULL. +Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER +and extract the active/inactive flag. If the mouse over event is marked +active, it indicates that the mouse is over a clickable area." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + <parameter name="active" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="navigation_query_get_type" + c:identifier="gst_navigation_query_get_type" + doc="Inspect a #GstQuery and return the #GstNavigationQueryType associated with +it if it is a #GstNavigation query. +#GST_NAVIGATION_QUERY_INVALID" + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="NavigationQueryType" c:type="GstNavigationQueryType"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + </parameters> + </function> + <function name="navigation_query_new_angles" + c:identifier="gst_navigation_query_new_angles" + doc="Create a new #GstNavigation angles query. When executed, it will +query the pipeline for the set of currently available angles, which may be +greater than one in a multiangle video." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Query" c:type="GstQuery*"/> + </return-value> + </function> + <function name="navigation_query_new_commands" + c:identifier="gst_navigation_query_new_commands" + doc="Create a new #GstNavigation commands query. When executed, it will +query the pipeline for the set of currently available commands." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Query" c:type="GstQuery*"/> + </return-value> + </function> + <function name="navigation_query_parse_angles" + c:identifier="gst_navigation_query_parse_angles" + doc="angle value from the query, or NULL +value from the query, or NULL +Parse the current angle number in the #GstNavigation angles @query into the +#guint pointed to by the @cur_angle variable, and the number of available +angles into the #guint pointed to by the @n_angles variable." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="cur_angle" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + <parameter name="n_angles" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="navigation_query_parse_commands_length" + c:identifier="gst_navigation_query_parse_commands_length" + doc="Parse the number of commands in the #GstNavigation commands @query." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="n_cmds" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="navigation_query_parse_commands_nth" + c:identifier="gst_navigation_query_parse_commands_nth" + doc="Parse the #GstNavigation command query and retrieve the @nth command from +it into @cmd. If the list contains less elements than @nth, @cmd will be +set to #GST_NAVIGATION_COMMAND_INVALID." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="cmd" transfer-ownership="none"> + <type name="NavigationCommand" c:type="GstNavigationCommand*"/> + </parameter> + </parameters> + </function> + <function name="navigation_query_set_angles" + c:identifier="gst_navigation_query_set_angles" + doc="Set the #GstNavigation angles query result field in @query." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="cur_angle" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="n_angles" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="navigation_query_set_commands" + c:identifier="gst_navigation_query_set_commands" + doc="Set the #GstNavigation command query result fields in @query. The number +of commands passed must be equal to @n_commands." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="n_cmds" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter transfer-ownership="none"> + <varargs> + </varargs> + </parameter> + </parameters> + </function> + <function name="navigation_query_set_commandsv" + c:identifier="gst_navigation_query_set_commandsv" + doc="Set the #GstNavigation command query result fields in @query. The number +of commands passed must be equal to @n_commands." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="query" transfer-ownership="none"> + <type name="Gst.Query" c:type="GstQuery*"/> + </parameter> + <parameter name="n_cmds" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="cmds" transfer-ownership="none"> + <type name="NavigationCommand" c:type="GstNavigationCommand*"/> + </parameter> + </parameters> + </function> + <function name="stream_volume_convert_volume" + c:identifier="gst_stream_volume_convert_volume" + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </return-value> + <parameters> + <parameter name="from" transfer-ownership="none"> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="to" transfer-ownership="none"> + <type name="StreamVolumeFormat" c:type="GstStreamVolumeFormat"/> + </parameter> + <parameter name="val" transfer-ownership="none"> + <type name="double" c:type="gdouble"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/interfaces/ffi/ffi.factor b/basis/gstreamer/interfaces/ffi/ffi.factor new file mode 100644 index 0000000000..45d57d2404 --- /dev/null +++ b/basis/gstreamer/interfaces/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/interfaces/interfaces.factor b/basis/gstreamer/interfaces/interfaces.factor new file mode 100644 index 0000000000..b9b57f6759 --- /dev/null +++ b/basis/gstreamer/interfaces/interfaces.factor @@ -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 + diff --git a/basis/gstreamer/net/GstNet-0.10.gir b/basis/gstreamer/net/GstNet-0.10.gir new file mode 100644 index 0000000000..eb3a4b7e87 --- /dev/null +++ b/basis/gstreamer/net/GstNet-0.10.gir @@ -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> diff --git a/basis/gstreamer/net/ffi/ffi.factor b/basis/gstreamer/net/ffi/ffi.factor new file mode 100644 index 0000000000..5c5e315c39 --- /dev/null +++ b/basis/gstreamer/net/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/net/net.factor b/basis/gstreamer/net/net.factor new file mode 100644 index 0000000000..b409685093 --- /dev/null +++ b/basis/gstreamer/net/net.factor @@ -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 + diff --git a/basis/gstreamer/netbuffer/GstNetbuffer-0.10.gir b/basis/gstreamer/netbuffer/GstNetbuffer-0.10.gir new file mode 100644 index 0000000000..4095f0d032 --- /dev/null +++ b/basis/gstreamer/netbuffer/GstNetbuffer-0.10.gir @@ -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> diff --git a/basis/gstreamer/netbuffer/ffi/ffi.factor b/basis/gstreamer/netbuffer/ffi/ffi.factor new file mode 100644 index 0000000000..c291a8b4f1 --- /dev/null +++ b/basis/gstreamer/netbuffer/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/netbuffer/netbuffer.factor b/basis/gstreamer/netbuffer/netbuffer.factor new file mode 100644 index 0000000000..7273c3a747 --- /dev/null +++ b/basis/gstreamer/netbuffer/netbuffer.factor @@ -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 + diff --git a/basis/gstreamer/pbutils/GstPbutils-0.10.gir b/basis/gstreamer/pbutils/GstPbutils-0.10.gir new file mode 100644 index 0000000000..c9748b3f1e --- /dev/null +++ b/basis/gstreamer/pbutils/GstPbutils-0.10.gir @@ -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: +<programlisting> +##include &lt;gtk/gtk.h&gt; +##ifdef GDK_WINDOWING_X11 +##include &lt;gdk/gdkx.h&gt; +##endif +... +##ifdef GDK_WINDOWING_X11 +xid = GDK_WINDOW_XWINDOW (GTK_WIDGET (application_window)-&gt;window); +##endif +... +</programlisting>" + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="xid" + transfer-ownership="none" + doc="of the top-level application"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + </record> + <callback name="InstallPluginsResultFunc" + c:type="GstInstallPluginsResultFunc" + doc="The prototype of the callback function that will be called once the +external plugin installer program has returned. You only need to provide +a callback function if you are using the asynchronous interface." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="result" transfer-ownership="none"> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </parameter> + <parameter name="user_data" transfer-ownership="none" closure="1"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </callback> + <enumeration name="InstallPluginsReturn" + doc="installed +any of the requested plugins could be found. Only return this if nothing +has been installed. Return #GST_INSTALL_PLUGINS_PARTIAL_SUCCESS if +some (but not all) of the requested plugins could be installed. +this happens, the user has already seen an error message and another +one should not be displayed +(ie. death by signal) +be installed, but not all +indicate that everything went fine so far and the provided callback +will be called with the result of the installation later +occured when trying to start the installer +actual installer is not installed +installation is still in progress, try again later +Result codes returned by gst_install_plugins_async() and +gst_install_plugins_sync(), and also the result code passed to the +#GstInstallPluginsResultFunc specified with gst_install_plugin_async(). +These codes indicate success or failure of starting an external installer +program and to what extent the requested plugins could be installed." + version="0.10.12" + glib:type-name="GstInstallPluginsReturn" + glib:get-type="gst_install_plugins_return_get_type" + c:type="GstInstallPluginsReturn"> + <member name="success" + value="0" + c:identifier="GST_INSTALL_PLUGINS_SUCCESS" + glib:nick="success"/> + <member name="not_found" + value="1" + c:identifier="GST_INSTALL_PLUGINS_NOT_FOUND" + glib:nick="not-found"/> + <member name="error" + value="2" + c:identifier="GST_INSTALL_PLUGINS_ERROR" + glib:nick="error"/> + <member name="partial_success" + value="3" + c:identifier="GST_INSTALL_PLUGINS_PARTIAL_SUCCESS" + glib:nick="partial-success"/> + <member name="user_abort" + value="4" + c:identifier="GST_INSTALL_PLUGINS_USER_ABORT" + glib:nick="user-abort"/> + <member name="crashed" + value="100" + c:identifier="GST_INSTALL_PLUGINS_CRASHED" + glib:nick="crashed"/> + <member name="invalid" + value="101" + c:identifier="GST_INSTALL_PLUGINS_INVALID" + glib:nick="invalid"/> + <member name="started_ok" + value="200" + c:identifier="GST_INSTALL_PLUGINS_STARTED_OK" + glib:nick="started-ok"/> + <member name="internal_failure" + value="201" + c:identifier="GST_INSTALL_PLUGINS_INTERNAL_FAILURE" + glib:nick="internal-failure"/> + <member name="helper_missing" + value="202" + c:identifier="GST_INSTALL_PLUGINS_HELPER_MISSING" + glib:nick="helper-missing"/> + <member name="install_in_progress" + value="203" + c:identifier="GST_INSTALL_PLUGINS_INSTALL_IN_PROGRESS" + glib:nick="install-in-progress"/> + </enumeration> + <function name="install_plugins_async" + c:identifier="gst_install_plugins_async" + doc="Requests plugin installation without blocking. Once the plugins have been +installed or installation has failed, @func will be called with the result +of the installation and your provided @user_data pointer. +This function requires a running GLib/Gtk main loop. If you are not +running a GLib/Gtk main loop, make sure to regularly call +g_main_context_iteration(NULL,FALSE). +The installer strings that make up @detail are typically obtained by +calling gst_missing_plugin_message_get_installer_detail() on missing-plugin +messages that have been caught on a pipeline's bus or created by the +application via the provided API, such as gst_missing_element_message_new(). +It is possible to request the installation of multiple missing plugins in +one go (as might be required if there is a demuxer for a certain format +installed but no suitable video decoder and no suitable audio decoder)." + version="0.10.12"> + <return-value transfer-ownership="full"> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </return-value> + <parameters> + <parameter name="details" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="InstallPluginsContext" + c:type="GstInstallPluginsContext*"/> + </parameter> + <parameter name="func" + transfer-ownership="none" + scope="call" + closure="3"> + <type name="InstallPluginsResultFunc" + c:type="GstInstallPluginsResultFunc"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </function> + <function name="install_plugins_installation_in_progress" + c:identifier="gst_install_plugins_installation_in_progress" + doc="Checks whether plugin installation (initiated by this application only) +is currently in progress." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </function> + <function name="install_plugins_return_get_name" + c:identifier="gst_install_plugins_return_get_name" + doc="Convenience function to return the descriptive string associated +with a status code. This function returns English strings and +should not be used for user messages. It is here only to assist +in debugging." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="ret" transfer-ownership="none"> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </parameter> + </parameters> + </function> + <function name="install_plugins_supported" + c:identifier="gst_install_plugins_supported" + doc="Checks whether plugin installation is likely to be supported by the +current environment. This currently only checks whether the helper script +that is to be provided by the distribution or operating system vendor +exists." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </function> + <function name="install_plugins_sync" + c:identifier="gst_install_plugins_sync" + doc="Requests plugin installation and block until the plugins have been +installed or installation has failed. +This function should almost never be used, it only exists for cases where +a non-GLib main loop is running and the user wants to run it in a separate +thread and marshal the result back asynchronously into the main thread +using the other non-GLib main loop. You should almost always use +gst_install_plugins_async() instead of this function." + version="0.10.12"> + <return-value transfer-ownership="full"> + <type name="InstallPluginsReturn" c:type="GstInstallPluginsReturn"/> + </return-value> + <parameters> + <parameter name="details" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="ctx" transfer-ownership="none"> + <type name="InstallPluginsContext" + c:type="GstInstallPluginsContext*"/> + </parameter> + </parameters> + </function> + <function name="is_missing_plugin_message" + c:identifier="gst_is_missing_plugin_message" + doc="Checks whether @msg is a missing plugins message."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="missing_decoder_installer_detail_new" + c:identifier="gst_missing_decoder_installer_detail_new" + doc="Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing. +with g_free() when not needed any longer." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="decode_caps" + transfer-ownership="none" + doc="caps for which a decoder element is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_decoder_message_new" + c:identifier="gst_missing_decoder_message_new" + doc="Creates a missing-plugin message for @element to notify the application +that a decoder element for a particular set of (fixed) caps is missing. +This function is mainly for use in plugins."> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="decode_caps" + transfer-ownership="none" + doc="caps for which a decoder element is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_element_installer_detail_new" + c:identifier="gst_missing_element_installer_detail_new" + doc="e.g. "videoscale" or "cdparanoiasrc" +Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing. +with g_free() when not needed any longer." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="factory_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_element_message_new" + c:identifier="gst_missing_element_message_new" + doc="e.g. "videoscale" or "cdparanoiasrc" +Creates a missing-plugin message for @element to notify the application +that a certain required element is missing. This function is mainly for +use in plugins."> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="factory_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_encoder_installer_detail_new" + c:identifier="gst_missing_encoder_installer_detail_new" + doc="Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing. +with g_free() when not needed any longer." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="encode_caps" + transfer-ownership="none" + doc="caps for which an encoder element is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_encoder_message_new" + c:identifier="gst_missing_encoder_message_new" + doc="Creates a missing-plugin message for @element to notify the application +that an encoder element for a particular set of (fixed) caps is missing. +This function is mainly for use in plugins."> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="encode_caps" + transfer-ownership="none" + doc="caps for which an encoder element is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="missing_plugin_message_get_description" + c:identifier="gst_missing_plugin_message_get_description" + doc="Returns a localised string describing the missing feature, for use in +error dialogs and the like. Should never return NULL unless @msg is not +a valid missing-plugin message. +This function is mainly for applications that need a human-readable string +describing a missing plugin, given a previously collected missing-plugin +message +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="missing_plugin_message_get_installer_detail" + c:identifier="gst_missing_plugin_message_get_installer_detail" + doc="Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions. +with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="Gst.Message" c:type="GstMessage*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_sink_installer_detail_new" + c:identifier="gst_missing_uri_sink_installer_detail_new" + doc="e.g. "http" or "mms" +Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing. +with g_free() when not needed any longer." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_sink_message_new" + c:identifier="gst_missing_uri_sink_message_new" + doc="e.g. "http" or "smb" +Creates a missing-plugin message for @element to notify the application +that a sink element for a particular URI protocol is missing. This +function is mainly for use in plugins."> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_source_installer_detail_new" + c:identifier="gst_missing_uri_source_installer_detail_new" + doc="e.g. "http" or "mms" +Returns an opaque string containing all the details about the missing +element to be passed to an external installer called via +gst_install_plugins_async() or gst_install_plugins_sync(). +This function is mainly for applications that call external plugin +installation mechanisms using one of the two above-mentioned functions in +the case where the application knows exactly what kind of plugin it is +missing. +with g_free() when not needed any longer." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="missing_uri_source_message_new" + c:identifier="gst_missing_uri_source_message_new" + doc="e.g. "http" or "mms" +Creates a missing-plugin message for @element to notify the application +that a source element for a particular URI protocol is missing. This +function is mainly for use in plugins."> + <return-value transfer-ownership="full"> + <type name="Gst.Message" c:type="GstMessage*"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="protocol" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_add_codec_description_to_tag_list" + c:identifier="gst_pb_utils_add_codec_description_to_tag_list" + doc="#GST_TAG_VIDEO_CODEC or #GST_TAG_CODEC +Adds a codec tag describing the format specified by @caps to @taglist."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="taglist" transfer-ownership="none"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="codec_tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="caps" + transfer-ownership="none" + doc="#GstCaps for which a codec tag should be added."> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_codec_description" + c:identifier="gst_pb_utils_get_codec_description" + doc="Returns a localised (as far as this is possible) string describing the +media format specified in @caps, for use in error dialogs or other messages +to be seen by the user. Should never return NULL unless @caps is invalid. +Also see the convenience function +gst_pb_utils_add_codec_description_to_tag_list(). +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" + transfer-ownership="none" + doc="#GstCaps for which an format description is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_decoder_description" + c:identifier="gst_pb_utils_get_decoder_description" + doc="Returns a localised string describing an decoder for the format specified +in @caps, for use in error dialogs or other messages to be seen by the user. +Should never return NULL unless @factory_name or @caps are invalid. +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message. +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" + transfer-ownership="none" + doc="#GstCaps for which an decoder description is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_element_description" + c:identifier="gst_pb_utils_get_element_description" + doc="Returns a localised string describing the given element, for use in +error dialogs or other messages to be seen by the user. Should never +return NULL unless @factory_name is invalid. +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message. +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="factory_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_encoder_description" + c:identifier="gst_pb_utils_get_encoder_description" + doc="Returns a localised string describing an encoder for the format specified +in @caps, for use in error dialogs or other messages to be seen by the user. +Should never return NULL unless @factory_name or @caps are invalid. +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message. +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="caps" + transfer-ownership="none" + doc="#GstCaps for which an encoder description is needed"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_sink_description" + c:identifier="gst_pb_utils_get_sink_description" + doc="Returns a localised string describing a sink element handling the protocol +specified in @protocol, for use in error dialogs or other messages to be +seen by the user. Should never return NULL unless @protocol is invalid. +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message. +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_get_source_description" + c:identifier="gst_pb_utils_get_source_description" + doc="Returns a localised string describing a source element handling the protocol +specified in @protocol, for use in error dialogs or other messages to be +seen by the user. Should never return NULL unless @protocol is invalid. +This function is mainly for internal use, applications would typically +use gst_missing_plugin_message_get_description() to get a description of +a missing feature from a missing-plugin message. +string with g_free() when not needed any longer."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="protocol" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="pb_utils_init" + c:identifier="gst_pb_utils_init" + doc="Initialises the base utils support library. This function is not +thread-safe. Applications should call it after calling gst_init(), +plugins should call it from their plugin_init function. +This function may be called multiple times. It will do nothing if the +library has already been initialised." + version="0.10.12"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/pbutils/ffi/ffi.factor b/basis/gstreamer/pbutils/ffi/ffi.factor new file mode 100644 index 0000000000..f494c51c69 --- /dev/null +++ b/basis/gstreamer/pbutils/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/pbutils/pbutils.factor b/basis/gstreamer/pbutils/pbutils.factor new file mode 100644 index 0000000000..9010553008 --- /dev/null +++ b/basis/gstreamer/pbutils/pbutils.factor @@ -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 + diff --git a/basis/gstreamer/riff/GstRiff-0.10.gir b/basis/gstreamer/riff/GstRiff-0.10.gir new file mode 100644 index 0000000000..d3c7519f58 --- /dev/null +++ b/basis/gstreamer/riff/GstRiff-0.10.gir @@ -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 "complex") stream´s strf +structure plus optionally some extradata from input data. This +function takes ownership of @buf."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="strf" transfer-ownership="none" doc="to a filled-in"> + <type name="riff_strf_iavs" c:type="gst_riff_strf_iavs**"/> + </parameter> + <parameter name="data" transfer-ownership="none" doc="to a buffer"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </function> + <function name="parse_strf_vids" + c:identifier="gst_riff_parse_strf_vids" + doc="strf/vids structure. Caller should free it. +containing extradata for this particular stream (e.g. +palette, codec initialization data). +Parses a video stream´s strf structure plus optionally some +extradata from input data. This function takes ownership of @buf. +should be skipped on error, but it is not fatal."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="strf" transfer-ownership="none" doc="to a filled-in"> + <type name="riff_strf_vids" c:type="gst_riff_strf_vids**"/> + </parameter> + <parameter name="data" transfer-ownership="none" doc="to a buffer"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </function> + <function name="parse_strh" + c:identifier="gst_riff_parse_strh" + doc="strh structure. Caller should free it. +Parses a strh structure from input data. Takes ownership of @buf. +should be skipped on error, but it is not fatal."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="strh" transfer-ownership="none" doc="to a filled-in"> + <type name="riff_strh" c:type="gst_riff_strh**"/> + </parameter> + </parameters> + </function> + <function name="read_chunk" + c:identifier="gst_riff_read_chunk" + doc="Reads a single chunk of data. Since 0.10.8 'JUNK' chunks +are skipped automatically."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="element" transfer-ownership="none"> + <type name="Gst.Element" c:type="GstElement*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="offset" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="tag" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="chunk_data" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer**"/> + </parameter> + </parameters> + </function> + <record name="riff_acid" c:type="_gst_riff_acid"> + <field name="loop_type" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="root_note" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="unknown1" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="unknown2" writable="1"> + <type name="float" c:type="gfloat"/> + </field> + <field name="number_of_beats" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="meter_d" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="meter_n" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="tempo" writable="1"> + <type name="float" c:type="gfloat"/> + </field> + </record> + <record name="riff_dmlh" c:type="_gst_riff_dmlh"> + <field name="totalframes" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + </record> + <record name="riff_index_entry" c:type="_gst_riff_index_entry"> + <field name="id" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="flags" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="offset" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="size" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + </record> + <record name="riff_strf_auds" c:type="_gst_riff_strf_auds"> + <field name="format" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="channels" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="rate" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="av_bps" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="blockalign" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="size" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + </record> + <record name="riff_strf_iavs" c:type="_gst_riff_strf_iavs"> + <field name="DVAAuxSrc" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVAAuxCtl" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVAAuxSrc1" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVAAuxCtl1" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVVAuxSrc" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVVAuxCtl" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVReserved1" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="DVReserved2" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + </record> + <record name="riff_strf_vids" c:type="_gst_riff_strf_vids"> + <field name="size" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="width" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="height" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="planes" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="bit_cnt" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="compression" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="image_size" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="xpels_meter" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="ypels_meter" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="num_colors" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="imp_colors" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + </record> + <record name="riff_strh" c:type="_gst_riff_strh"> + <field name="type" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="fcc_handler" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="flags" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="priority" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="init_frames" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="scale" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="rate" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="start" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="length" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="bufsize" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="quality" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="samplesize" writable="1"> + <type name="uint32" c:type="guint32"/> + </field> + </record> + </namespace> +</repository> diff --git a/basis/gstreamer/riff/ffi/ffi.factor b/basis/gstreamer/riff/ffi/ffi.factor new file mode 100644 index 0000000000..ac31e7d0c5 --- /dev/null +++ b/basis/gstreamer/riff/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/riff/riff.factor b/basis/gstreamer/riff/riff.factor new file mode 100644 index 0000000000..174fbc6dca --- /dev/null +++ b/basis/gstreamer/riff/riff.factor @@ -0,0 +1,5 @@ +! Copyright (C) 2010 Anton Gorenko. +! See http://factorcode.org/license.txt for BSD license. +USING: gstreamer.ffi ; +IN: gstreamer + diff --git a/basis/gstreamer/rtp/GstRtp-0.10.gir b/basis/gstreamer/rtp/GstRtp-0.10.gir new file mode 100644 index 0000000000..e72015073a --- /dev/null +++ b/basis/gstreamer/rtp/GstRtp-0.10.gir @@ -0,0 +1,2550 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="GstBase" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <package name="gstreamer-base-0.10"/> + <c:include name="gst/rtp/gstbasertpaudiopayload.h"/> + <c:include name="gst/rtp/gstbasertpdepayload.h"/> + <c:include name="gst/rtp/gstbasertppayload.h"/> + <c:include name="gst/rtp/gstrtcpbuffer.h"/> + <c:include name="gst/rtp/gstrtpbuffer.h"/> + <c:include name="gst/rtp/gstrtppayloads.h"/> + <namespace name="GstRtp" + version="0.10" + shared-library="libgstrtp-0.10.so.0" + c:prefix="Gst"> + <class name="BaseRTPAudioPayload" + c:type="GstBaseRTPAudioPayload" + parent="BaseRTPPayload" + glib:type-name="GstBaseRTPAudioPayload" + glib:get-type="gst_base_rtp_audio_payload_get_type" + glib:type-struct="BaseRTPAudioPayloadClass"> + <method name="set_frame_based" + c:identifier="gst_base_rtp_audio_payload_set_frame_based" + doc="Tells #GstBaseRTPAudioPayload that the child element is for a frame based +audio codec"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="set_frame_options" + c:identifier="gst_base_rtp_audio_payload_set_frame_options" + doc="Sets the options for frame based audio codecs."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="frame_duration" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="frame_size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_sample_based" + c:identifier="gst_base_rtp_audio_payload_set_sample_based" + doc="Tells #GstBaseRTPAudioPayload that the child element is for a sample based +audio codec"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="set_sample_options" + c:identifier="gst_base_rtp_audio_payload_set_sample_options" + doc="Sets the options for sample based audio codecs."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sample_size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="set_samplebits_options" + c:identifier="gst_base_rtp_audio_payload_set_samplebits_options" + doc="Sets the options for sample based audio codecs." + version="0.10.18"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="sample_size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_adapter" + c:identifier="gst_base_rtp_audio_payload_get_adapter" + doc="Gets the internal adapter used by the depayloader." + version="0.10.13"> + <return-value transfer-ownership="full"> + <type name="GstBase.Adapter" c:type="GstAdapter*"/> + </return-value> + </method> + <method name="push" + c:identifier="gst_base_rtp_audio_payload_push" + doc="Create an RTP buffer and store @payload_len bytes of @data as the +payload. Set the timestamp on the new buffer to @timestamp before pushing +the buffer downstream." + version="0.10.13"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="payload_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="flush" + c:identifier="gst_base_rtp_audio_payload_flush" + doc="Create an RTP buffer and store @payload_len bytes of the adapter as the +payload. Set the timestamp on the new buffer to @timestamp before pushing +the buffer downstream. +If @payload_len is -1, all pending bytes will be flushed. If @timestamp is +-1, the timestamp will be calculated automatically." + version="0.10.25"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <property name="buffer-list" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <field name="payload"> + <type name="BaseRTPPayload" c:type="GstBaseRTPPayload"/> + </field> + <field name="priv"> + <type name="BaseRTPAudioPayloadPrivate" + c:type="GstBaseRTPAudioPayloadPrivate*"/> + </field> + <field name="base_ts"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </field> + <field name="frame_size"> + <type name="int" c:type="gint"/> + </field> + <field name="frame_duration"> + <type name="int" c:type="gint"/> + </field> + <field name="sample_size"> + <type name="int" c:type="gint"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </class> + <record name="BaseRTPAudioPayloadClass" + c:type="GstBaseRTPAudioPayloadClass" + glib:is-gtype-struct-for="BaseRTPAudioPayload"> + <field name="parent_class"> + <type name="BaseRTPPayloadClass" c:type="GstBaseRTPPayloadClass"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="4"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseRTPAudioPayloadPrivate" + c:type="GstBaseRTPAudioPayloadPrivate"> + </record> + <class name="BaseRTPDepayload" + c:type="GstBaseRTPDepayload" + parent="Gst.Element" + glib:type-name="GstBaseRTPDepayload" + glib:get-type="gst_base_rtp_depayload_get_type" + glib:type-struct="BaseRTPDepayloadClass"> + <virtual-method name="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="add_to_queue"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="process"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="set_gst_timestamp"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="packet_lost"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </virtual-method> + <method name="push" + c:identifier="gst_base_rtp_depayload_push" + doc="Push @out_buf to the peer of @filter. This function takes ownership of +Unlike gst_base_rtp_depayload_push_ts(), this function will not apply +any timestamp on the outgoing buffer. Subclasses should therefore timestamp +outgoing buffers themselves."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="out_buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_ts" + c:identifier="gst_base_rtp_depayload_push_ts" + doc="Push @out_buf to the peer of @filter. This function takes ownership of +Unlike gst_base_rtp_depayload_push(), this function will by default apply +the last incomming timestamp on the outgoing buffer when it didn't have a +timestamp already. The set_get_timestamp vmethod can be overwritten to change +this behaviour (and take, for example, @timestamp into account)."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="timestamp" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="out_buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <property name="queue-delay" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <field name="parent"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="queuelock"> + <type name="GLib.StaticRecMutex" c:type="GStaticRecMutex"/> + </field> + <field name="thread_running"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="thread"> + <type name="GLib.Thread" c:type="GThread*"/> + </field> + <field name="clock_rate"> + <type name="uint" c:type="guint"/> + </field> + <field name="queue_delay"> + <type name="uint" c:type="guint"/> + </field> + <field name="queue"> + <type name="GLib.Queue" c:type="GQueue*"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="need_newsegment"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="priv"> + <type name="BaseRTPDepayloadPrivate" + c:type="GstBaseRTPDepayloadPrivate*"/> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </class> + <record name="BaseRTPDepayloadClass" + c:type="GstBaseRTPDepayloadClass" + glib:is-gtype-struct-for="BaseRTPDepayload"> + <field name="parent_class"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="set_caps"> + <callback name="set_caps" c:type="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="add_to_queue"> + <callback name="add_to_queue" c:type="add_to_queue"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/> + </parameter> + <parameter name="in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="process"> + <callback name="process" c:type="process"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="base" transfer-ownership="none"> + <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/> + </parameter> + <parameter name="in" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="set_gst_timestamp"> + <callback name="set_gst_timestamp" c:type="set_gst_timestamp"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="packet_lost"> + <callback name="packet_lost" c:type="packet_lost"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="filter" transfer-ownership="none"> + <type name="BaseRTPDepayload" c:type="GstBaseRTPDepayload*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseRTPDepayloadPrivate" c:type="GstBaseRTPDepayloadPrivate"> + </record> + <class name="BaseRTPPayload" + c:type="GstBaseRTPPayload" + parent="Gst.Element" + abstract="1" + glib:type-name="GstBaseRTPPayload" + glib:get-type="gst_basertppayload_get_type" + glib:type-struct="BaseRTPPayloadClass"> + <virtual-method name="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="handle_buffer"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </virtual-method> + <method name="set_options" + c:identifier="gst_basertppayload_set_options" + doc="Set the rtp options of the payloader. These options will be set in the caps +of the payloader. Subclasses must call this method before calling +gst_basertppayload_push() or gst_basertppayload_set_outcaps()."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="dynamic" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + <parameter name="encoding_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="clock_rate" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_outcaps" + c:identifier="gst_basertppayload_set_outcaps" + doc="Configure the output caps with the optional parameters. +Variable arguments should be in the form field name, field type +(as a GType), value(s). The last variable argument should be NULL."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="fieldname" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter transfer-ownership="none"> + <varargs> + </varargs> + </parameter> + </parameters> + </method> + <method name="is_filled" + c:identifier="gst_basertppayload_is_filled" + doc="Check if the packet with @size and @duration would exceed the configured +maximum size. +configured MTU or max_ptime."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="duration" transfer-ownership="none"> + <type name="Gst.ClockTime" c:type="GstClockTime"/> + </parameter> + </parameters> + </method> + <method name="push" + c:identifier="gst_basertppayload_push" + doc="Push @buffer to the peer element of the payloader. The SSRC, payload type, +seqnum and timestamp of the RTP buffer will be updated first. +This function takes ownership of @buffer."> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </method> + <method name="push_list" + c:identifier="gst_basertppayload_push_list" + doc="Push @list to the peer element of the payloader. The SSRC, payload type, +seqnum and timestamp of the RTP buffer will be updated first. +This function takes ownership of @list." + version="0.10.24"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </method> + <property name="max-ptime" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="min-ptime" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="mtu" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="perfect-rtptime" writable="1"> + <type name="boolean" c:type="gboolean"/> + </property> + <property name="pt" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="ptime-multiple" writable="1"> + <type name="int64" c:type="gint64"/> + </property> + <property name="seqnum"> + <type name="uint" c:type="guint"/> + </property> + <property name="seqnum-offset" writable="1"> + <type name="int" c:type="gint"/> + </property> + <property name="ssrc" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <property name="timestamp"> + <type name="uint" c:type="guint"/> + </property> + <property name="timestamp-offset" writable="1"> + <type name="uint" c:type="guint"/> + </property> + <field name="element"> + <type name="Gst.Element" c:type="GstElement"/> + </field> + <field name="sinkpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="srcpad"> + <type name="Gst.Pad" c:type="GstPad*"/> + </field> + <field name="seq_rand"> + <type name="GLib.Rand" c:type="GRand*"/> + </field> + <field name="ssrc_rand"> + <type name="GLib.Rand" c:type="GRand*"/> + </field> + <field name="ts_rand"> + <type name="GLib.Rand" c:type="GRand*"/> + </field> + <field name="ts_base"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="seqnum_base"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="media"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="encoding_name"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="dynamic"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="clock_rate"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="ts_offset"> + <type name="int32" c:type="gint32"/> + </field> + <field name="timestamp"> + <type name="uint32" c:type="guint32"/> + </field> + <field name="seqnum_offset"> + <type name="int16" c:type="gint16"/> + </field> + <field name="seqnum"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="max_ptime"> + <type name="int64" c:type="gint64"/> + </field> + <field name="pt"> + <type name="uint" c:type="guint"/> + </field> + <field name="ssrc"> + <type name="uint" c:type="guint"/> + </field> + <field name="current_ssrc"> + <type name="uint" c:type="guint"/> + </field> + <field name="mtu"> + <type name="uint" c:type="guint"/> + </field> + <field name="segment"> + <type name="Gst.Segment" c:type="GstSegment"/> + </field> + <field name="min_ptime"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="priv"> + <type name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate*"/> + </field> + <union name="abidata" c:type="abidata"> + <record name="ABI" c:type="ABI"> + <field name="ptime" writable="1"> + <type name="uint64" c:type="guint64"/> + </field> + <field name="ptime_multiple" writable="1"> + <type name="uint64" c:type="guint64"/> + </field> + </record> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </union> + </class> + <record name="BaseRTPPayloadClass" + c:type="GstBaseRTPPayloadClass" + glib:is-gtype-struct-for="BaseRTPPayload"> + <field name="parent_class"> + <type name="Gst.ElementClass" c:type="GstElementClass"/> + </field> + <field name="set_caps"> + <callback name="set_caps" c:type="set_caps"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_buffer"> + <callback name="handle_buffer" c:type="handle_buffer"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/> + </parameter> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="handle_event"> + <callback name="handle_event" c:type="handle_event"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_caps"> + <callback name="get_caps" c:type="get_caps"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="payload" transfer-ownership="none"> + <type name="BaseRTPPayload" c:type="GstBaseRTPPayload*"/> + </parameter> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> + <type name="any"/> + </array> + </field> + </record> + <record name="BaseRTPPayloadPrivate" c:type="GstBaseRTPPayloadPrivate"> + </record> + <constant name="PAYLOAD_1016_STRING" value="1"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_CELLB_STRING" value="25"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_CN_STRING" value="13"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_DVI4_11025_STRING" value="16"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_DVI4_16000_STRING" value="6"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_DVI4_22050_STRING" value="17"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_DVI4_8000_STRING" value="5"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_DYNAMIC_STRING" value="[96, 127]"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G721_STRING" value="2"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G722_STRING" value="9"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G723_53" value="17"> + <type name="int"/> + </constant> + <constant name="PAYLOAD_G723_53_STRING" value="17"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G723_63" value="16"> + <type name="int"/> + </constant> + <constant name="PAYLOAD_G723_63_STRING" value="16"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G723_STRING" value="4"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G728_STRING" value="15"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_G729_STRING" value="18"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_GSM_STRING" value="3"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_H261_STRING" value="31"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_H263_STRING" value="34"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_JPEG_STRING" value="26"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_L16_MONO_STRING" value="11"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_L16_STEREO_STRING" value="10"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_LPC_STRING" value="7"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_MP2T_STRING" value="33"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_MPA_STRING" value="14"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_MPV_STRING" value="32"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_NV_STRING" value="28"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_PCMA_STRING" value="8"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_PCMU_STRING" value="0"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_QCELP_STRING" value="12"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_TS41" value="19"> + <type name="int"/> + </constant> + <constant name="PAYLOAD_TS41_STRING" value="19"> + <type name="utf8"/> + </constant> + <constant name="PAYLOAD_TS48" value="18"> + <type name="int"/> + </constant> + <constant name="PAYLOAD_TS48_STRING" value="18"> + <type name="utf8"/> + </constant> + <enumeration name="RTCPFBType" + doc="Different types of feedback messages." + version="0.10.23" + c:type="GstRTCPFBType"> + <member name="fb_type_invalid" + value="0" + c:identifier="GST_RTCP_FB_TYPE_INVALID"/> + <member name="rtpfb_type_nack" + value="1" + c:identifier="GST_RTCP_RTPFB_TYPE_NACK"/> + <member name="psfb_type_pli" + value="1" + c:identifier="GST_RTCP_PSFB_TYPE_PLI"/> + <member name="psfb_type_sli" + value="2" + c:identifier="GST_RTCP_PSFB_TYPE_SLI"/> + <member name="psfb_type_rpsi" + value="3" + c:identifier="GST_RTCP_PSFB_TYPE_RPSI"/> + <member name="psfb_type_afb" + value="15" + c:identifier="GST_RTCP_PSFB_TYPE_AFB"/> + </enumeration> + <record name="RTCPPacket" + c:type="GstRTCPPacket" + doc="Data structure that points to a packet at @offset in @buffer. +The size of the structure is made public to allow stack allocations."> + <field name="buffer" writable="1"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </field> + <field name="offset" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="padding" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="count" writable="1"> + <type name="uint8" c:type="guint8"/> + </field> + <field name="type" writable="1"> + <type name="RTCPType" c:type="GstRTCPType"/> + </field> + <field name="length" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="item_offset" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="item_count" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="entry_offset" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <method name="move_to_next" + c:identifier="gst_rtcp_packet_move_to_next" + doc="Move the packet pointer @packet to the next packet in the payload. +Use gst_rtcp_buffer_get_first_packet() to initialize @packet. +function."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="remove" + c:identifier="gst_rtcp_packet_remove" + doc="Removes the packet pointed to by @packet and moves pointer to the next one +function."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="get_padding" + c:identifier="gst_rtcp_packet_get_padding" + doc="Get the packet padding of the packet pointed to by @packet."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="get_count" + c:identifier="gst_rtcp_packet_get_count" + doc="Get the count field in @packet. +valid packet."> + <return-value transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </return-value> + </method> + <method name="get_length" + c:identifier="gst_rtcp_packet_get_length" + doc="Get the length field of @packet. This is the length of the packet in +32-bit words minus one."> + <return-value transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </return-value> + </method> + <method name="sr_get_sender_info" + c:identifier="gst_rtcp_packet_sr_get_sender_info" + doc="Parse the SR sender info and store the values."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ssrc" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="ntptime" direction="out" transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="rtptime" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="packet_count" + direction="out" + transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="octet_count" + direction="out" + transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="sr_set_sender_info" + c:identifier="gst_rtcp_packet_sr_set_sender_info" + doc="Set the given values in the SR packet @packet."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="ntptime" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + <parameter name="rtptime" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="packet_count" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="octet_count" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="rr_get_ssrc" + c:identifier="gst_rtcp_packet_rr_get_ssrc" + doc="Get the ssrc field of the RR @packet."> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + </method> + <method name="rr_set_ssrc" + c:identifier="gst_rtcp_packet_rr_set_ssrc" + doc="Set the ssrc field of the RR @packet."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="get_rb_count" + c:identifier="gst_rtcp_packet_get_rb_count" + doc="Get the number of report blocks in @packet."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_rb" + c:identifier="gst_rtcp_packet_get_rb" + doc="Parse the values of the @nth report block in @packet and store the result in +the values."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="nth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="ssrc" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="fractionlost" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="packetslost" + direction="out" + transfer-ownership="full"> + <type name="int32" c:type="gint32*"/> + </parameter> + <parameter name="exthighestseq" + direction="out" + transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="jitter" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="lsr" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="dlsr" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + </parameters> + </method> + <method name="add_rb" + c:identifier="gst_rtcp_packet_add_rb" + doc="Add a new report block to @packet with the given values. +the max MTU is exceeded or the number of report blocks is greater than +#GST_RTCP_MAX_RB_COUNT."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="fractionlost" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="packetslost" transfer-ownership="none"> + <type name="int32" c:type="gint32"/> + </parameter> + <parameter name="exthighestseq" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="jitter" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="lsr" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="dlsr" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="set_rb" + c:identifier="gst_rtcp_packet_set_rb" + doc="Set the @nth new report block in @packet with the given values."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="nth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="fractionlost" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="packetslost" transfer-ownership="none"> + <type name="int32" c:type="gint32"/> + </parameter> + <parameter name="exthighestseq" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="jitter" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="lsr" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + <parameter name="dlsr" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="sdes_get_item_count" + c:identifier="gst_rtcp_packet_sdes_get_item_count" + doc="Get the number of items in the SDES packet @packet."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="sdes_first_item" + c:identifier="gst_rtcp_packet_sdes_first_item" + doc="Move to the first SDES item in @packet."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="sdes_next_item" + c:identifier="gst_rtcp_packet_sdes_next_item" + doc="Move to the next SDES item in @packet."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="sdes_get_ssrc" + c:identifier="gst_rtcp_packet_sdes_get_ssrc" + doc="Get the SSRC of the current SDES item."> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + </method> + <method name="sdes_first_entry" + c:identifier="gst_rtcp_packet_sdes_first_entry" + doc="Move to the first SDES entry in the current item."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="sdes_next_entry" + c:identifier="gst_rtcp_packet_sdes_next_entry" + doc="Move to the next SDES entry in the current item."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="sdes_get_entry" + c:identifier="gst_rtcp_packet_sdes_get_entry" + doc="Get the data of the current SDES item entry. @type (when not NULL) will +contain the type of the entry. @data (when not NULL) will point to @len +bytes. +When @type refers to a text item, @data will point to a UTF8 string. Note +that this UTF8 string is NOT null-terminated. Use +gst_rtcp_packet_sdes_copy_entry() to get a null-termined copy of the entry."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="data" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + </parameters> + </method> + <method name="sdes_copy_entry" + c:identifier="gst_rtcp_packet_sdes_copy_entry" + doc="This function is like gst_rtcp_packet_sdes_get_entry() but it returns a +null-terminated copy of the data instead. use g_free() after usage."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="RTCPSDESType" c:type="GstRTCPSDESType*"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="data" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + </parameters> + </method> + <method name="sdes_add_item" + c:identifier="gst_rtcp_packet_sdes_add_item" + doc="Add a new SDES item for @ssrc to @packet. +items has been exceeded for the SDES packet or the MTU has been reached."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="sdes_add_entry" + c:identifier="gst_rtcp_packet_sdes_add_entry" + doc="Add a new SDES entry to the current item in @packet. +reached."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="RTCPSDESType" c:type="GstRTCPSDESType"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + </parameters> + </method> + <method name="bye_get_ssrc_count" + c:identifier="gst_rtcp_packet_bye_get_ssrc_count" + doc="Get the number of SSRC fields in @packet."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="bye_get_nth_ssrc" + c:identifier="gst_rtcp_packet_bye_get_nth_ssrc" + doc="Get the @nth SSRC of the BYE @packet."> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="nth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="bye_add_ssrc" + c:identifier="gst_rtcp_packet_bye_add_ssrc" + doc="Add @ssrc to the BYE @packet. +the max MTU is exceeded or the number of sources blocks is greater than +#GST_RTCP_MAX_BYE_SSRC_COUNT."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="bye_add_ssrcs" + c:identifier="gst_rtcp_packet_bye_add_ssrcs" + doc="Adds @len SSRCs in @ssrc to BYE @packet. +the max MTU is exceeded or the number of sources blocks is greater than +#GST_RTCP_MAX_BYE_SSRC_COUNT."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ssrc" direction="out" transfer-ownership="full"> + <type name="uint32" c:type="guint32*"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="bye_get_reason_len" + c:identifier="gst_rtcp_packet_bye_get_reason_len" + doc="Get the length of the reason string. +present."> + <return-value transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </return-value> + </method> + <method name="bye_get_reason" + c:identifier="gst_rtcp_packet_bye_get_reason" + doc="Get the reason in @packet. +a reason string. The string must be freed with g_free() after usage."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="bye_set_reason" + c:identifier="gst_rtcp_packet_bye_set_reason" + doc="Set the reason string to @reason in @packet."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="reason" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="fb_get_sender_ssrc" + c:identifier="gst_rtcp_packet_fb_get_sender_ssrc" + doc="Get the sender SSRC field of the RTPFB or PSFB @packet." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + </method> + <method name="fb_set_sender_ssrc" + c:identifier="gst_rtcp_packet_fb_set_sender_ssrc" + doc="Set the sender SSRC field of the RTPFB or PSFB @packet." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="fb_get_media_ssrc" + c:identifier="gst_rtcp_packet_fb_get_media_ssrc" + doc="Get the media SSRC field of the RTPFB or PSFB @packet." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + </method> + <method name="fb_set_media_ssrc" + c:identifier="gst_rtcp_packet_fb_set_media_ssrc" + doc="Set the media SSRC field of the RTPFB or PSFB @packet." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </method> + <method name="fb_set_type" + c:identifier="gst_rtcp_packet_fb_set_type" + doc="Set the feedback message type of the FB @packet." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="RTCPFBType" c:type="GstRTCPFBType"/> + </parameter> + </parameters> + </method> + </record> + <enumeration name="RTCPSDESType" c:type="GstRTCPSDESType"> + <member name="invalid" value="-1" c:identifier="GST_RTCP_SDES_INVALID"/> + <member name="end" value="0" c:identifier="GST_RTCP_SDES_END"/> + <member name="cname" value="1" c:identifier="GST_RTCP_SDES_CNAME"/> + <member name="name" value="2" c:identifier="GST_RTCP_SDES_NAME"/> + <member name="email" value="3" c:identifier="GST_RTCP_SDES_EMAIL"/> + <member name="phone" value="4" c:identifier="GST_RTCP_SDES_PHONE"/> + <member name="loc" value="5" c:identifier="GST_RTCP_SDES_LOC"/> + <member name="tool" value="6" c:identifier="GST_RTCP_SDES_TOOL"/> + <member name="note" value="7" c:identifier="GST_RTCP_SDES_NOTE"/> + <member name="priv" value="8" c:identifier="GST_RTCP_SDES_PRIV"/> + </enumeration> + <enumeration name="RTCPType" c:type="GstRTCPType"> + <member name="invalid" value="0" c:identifier="GST_RTCP_TYPE_INVALID"/> + <member name="sr" value="200" c:identifier="GST_RTCP_TYPE_SR"/> + <member name="rr" value="201" c:identifier="GST_RTCP_TYPE_RR"/> + <member name="sdes" value="202" c:identifier="GST_RTCP_TYPE_SDES"/> + <member name="bye" value="203" c:identifier="GST_RTCP_TYPE_BYE"/> + <member name="app" value="204" c:identifier="GST_RTCP_TYPE_APP"/> + <member name="rtpfb" value="205" c:identifier="GST_RTCP_TYPE_RTPFB"/> + <member name="psfb" value="206" c:identifier="GST_RTCP_TYPE_PSFB"/> + </enumeration> + <constant name="RTCP_MAX_BYE_SSRC_COUNT" value="31"> + <type name="int"/> + </constant> + <constant name="RTCP_MAX_RB_COUNT" value="31"> + <type name="int"/> + </constant> + <constant name="RTCP_MAX_SDES" value="255"> + <type name="int"/> + </constant> + <constant name="RTCP_MAX_SDES_ITEM_COUNT" value="31"> + <type name="int"/> + </constant> + <constant name="RTCP_VALID_MASK" value="57598"> + <type name="int"/> + </constant> + <constant name="RTCP_VALID_VALUE" value="0"> + <type name="int"/> + </constant> + <constant name="RTCP_VERSION" value="2"> + <type name="int"/> + </constant> + <enumeration name="RTPPayload" c:type="GstRTPPayload"> + <member name="pcmu" value="0" c:identifier="GST_RTP_PAYLOAD_PCMU"/> + <member name="1016" value="1" c:identifier="GST_RTP_PAYLOAD_1016"/> + <member name="g721" value="2" c:identifier="GST_RTP_PAYLOAD_G721"/> + <member name="gsm" value="3" c:identifier="GST_RTP_PAYLOAD_GSM"/> + <member name="g723" value="4" c:identifier="GST_RTP_PAYLOAD_G723"/> + <member name="dvi4_8000" + value="5" + c:identifier="GST_RTP_PAYLOAD_DVI4_8000"/> + <member name="dvi4_16000" + value="6" + c:identifier="GST_RTP_PAYLOAD_DVI4_16000"/> + <member name="lpc" value="7" c:identifier="GST_RTP_PAYLOAD_LPC"/> + <member name="pcma" value="8" c:identifier="GST_RTP_PAYLOAD_PCMA"/> + <member name="g722" value="9" c:identifier="GST_RTP_PAYLOAD_G722"/> + <member name="l16_stereo" + value="10" + c:identifier="GST_RTP_PAYLOAD_L16_STEREO"/> + <member name="l16_mono" + value="11" + c:identifier="GST_RTP_PAYLOAD_L16_MONO"/> + <member name="qcelp" value="12" c:identifier="GST_RTP_PAYLOAD_QCELP"/> + <member name="cn" value="13" c:identifier="GST_RTP_PAYLOAD_CN"/> + <member name="mpa" value="14" c:identifier="GST_RTP_PAYLOAD_MPA"/> + <member name="g728" value="15" c:identifier="GST_RTP_PAYLOAD_G728"/> + <member name="dvi4_11025" + value="16" + c:identifier="GST_RTP_PAYLOAD_DVI4_11025"/> + <member name="dvi4_22050" + value="17" + c:identifier="GST_RTP_PAYLOAD_DVI4_22050"/> + <member name="g729" value="18" c:identifier="GST_RTP_PAYLOAD_G729"/> + <member name="cellb" value="25" c:identifier="GST_RTP_PAYLOAD_CELLB"/> + <member name="jpeg" value="26" c:identifier="GST_RTP_PAYLOAD_JPEG"/> + <member name="nv" value="28" c:identifier="GST_RTP_PAYLOAD_NV"/> + <member name="h261" value="31" c:identifier="GST_RTP_PAYLOAD_H261"/> + <member name="mpv" value="32" c:identifier="GST_RTP_PAYLOAD_MPV"/> + <member name="mp2t" value="33" c:identifier="GST_RTP_PAYLOAD_MP2T"/> + <member name="h263" value="34" c:identifier="GST_RTP_PAYLOAD_H263"/> + </enumeration> + <record name="RTPPayloadInfo" + c:type="GstRTPPayloadInfo" + doc=""message". +channels. NULL = not applicable. +Structure holding default payload type information."> + <field name="payload_type" writable="1"> + <type name="uint8" c:type="guint8"/> + </field> + <field name="media" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="encoding_name" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="clock_rate" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="encoding_parameters" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="bitrate" writable="1"> + <type name="uint" c:type="guint"/> + </field> + </record> + <constant name="VERSION" value="2"> + <type name="int"/> + </constant> + <function name="buffer_allocate_data" + c:identifier="gst_rtp_buffer_allocate_data" + doc="Allocate enough data in @buffer to hold an RTP packet with @csrc_count CSRCs, +a payload length of @payload_len and padding of @pad_len. +MALLOCDATA of @buffer will be overwritten and will not be freed. +All other RTP header fields will be set to 0/FALSE."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="payload_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_calc_header_len" + c:identifier="gst_rtp_buffer_calc_header_len" + doc="Calculate the header length of an RTP packet with @csrc_count CSRC entries. +An RTP packet can have at most 15 CSRC entries."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="csrc_count" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_calc_packet_len" + c:identifier="gst_rtp_buffer_calc_packet_len" + doc="Calculate the total length of an RTP packet with a payload size of @payload_len, +a padding of @pad_len and a @csrc_count CSRC entries."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_calc_payload_len" + c:identifier="gst_rtp_buffer_calc_payload_len" + doc="Calculate the length of the payload of an RTP packet with size @packet_len, +a padding of @pad_len and a @csrc_count CSRC entries."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="packet_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_compare_seqnum" + c:identifier="gst_rtp_buffer_compare_seqnum" + doc="Compare two sequence numbers, taking care of wraparounds. This function +returns the difference between @seqnum1 and @seqnum2. +are equal or a positive value if @seqnum1 is smaller than @segnum2." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + <parameters> + <parameter name="seqnum1" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + <parameter name="seqnum2" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="buffer_default_clock_rate" + c:identifier="gst_rtp_buffer_default_clock_rate" + doc="Get the default clock-rate for the static payload type @payload_type. +the clock-rate is undefined." + version="0.10.13"> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="payload_type" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_ext_timestamp" + c:identifier="gst_rtp_buffer_ext_timestamp" + doc="Update the @exttimestamp field with @timestamp. For the first call of the +method, @exttimestamp should point to a location with a value of -1. +This function makes sure that the returned value is a constantly increasing +value even in the case where there is a timestamp wraparound." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="exttimestamp" + direction="out" + transfer-ownership="full"> + <type name="uint64" c:type="guint64*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_csrc" + c:identifier="gst_rtp_buffer_get_csrc" + doc="Get the CSRC at index @idx in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="idx" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_csrc_count" + c:identifier="gst_rtp_buffer_get_csrc_count" + doc="Get the CSRC count of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_extension" + c:identifier="gst_rtp_buffer_get_extension" + doc="Check if the extension bit is set on the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_extension_data" + c:identifier="gst_rtp_buffer_get_extension_data" + doc="Get the extension data. @bits will contain the extension 16 bits of custom +data. @data will point to the data in the extension and @wordlen will contain +the length of @data in 32 bits words. +If @buffer did not contain an extension, this function will return %FALSE +with @bits, @data and @wordlen unchanged." + version="0.10.15"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="bits" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer*"/> + </parameter> + <parameter name="wordlen" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_header_len" + c:identifier="gst_rtp_buffer_get_header_len" + doc="Return the total length of the header in @buffer. This include the length of +the fixed header, the CSRC list and the extension header."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_marker" + c:identifier="gst_rtp_buffer_get_marker" + doc="Check if the marker bit is set on the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_packet_len" + c:identifier="gst_rtp_buffer_get_packet_len" + doc="Return the total length of the packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_padding" + c:identifier="gst_rtp_buffer_get_padding" + doc="Check if the padding bit is set on the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_payload" + c:identifier="gst_rtp_buffer_get_payload" + doc="Get a pointer to the payload data in @buffer. This pointer is valid as long +as a reference to @buffer is held."> + <return-value transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_payload_buffer" + c:identifier="gst_rtp_buffer_get_payload_buffer" + doc="Create a buffer of the payload of the RTP packet in @buffer. This function +will internally create a subbuffer of @buffer so that a memcpy can be +avoided."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_payload_len" + c:identifier="gst_rtp_buffer_get_payload_len" + doc="Get the length of the payload of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_payload_subbuffer" + c:identifier="gst_rtp_buffer_get_payload_subbuffer" + doc="Create a subbuffer of the payload of the RTP packet in @buffer. @offset bytes +are skipped in the payload and the subbuffer will be of size @len. +If @len is -1 the total payload starting from @offset if subbuffered." + version="0.10.10"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="offset" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_payload_type" + c:identifier="gst_rtp_buffer_get_payload_type" + doc="Get the payload type of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_seq" + c:identifier="gst_rtp_buffer_get_seq" + doc="Get the sequence number of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_ssrc" + c:identifier="gst_rtp_buffer_get_ssrc" + doc="Get the SSRC of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_timestamp" + c:identifier="gst_rtp_buffer_get_timestamp" + doc="Get the timestamp of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_get_version" + c:identifier="gst_rtp_buffer_get_version" + doc="Get the version number of the RTP packet in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_get_payload_len" + c:identifier="gst_rtp_buffer_list_get_payload_len" + doc="Get the length of the payload of the RTP packet in @list." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_get_payload_type" + c:identifier="gst_rtp_buffer_list_get_payload_type" + doc="Get the payload type of the first RTP packet in @list. +All packets in @list should have the same payload type." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_get_seq" + c:identifier="gst_rtp_buffer_list_get_seq" + doc="Get the sequence number of the first RTP packet in @list. +All packets within @list have the same sequence number." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_get_ssrc" + c:identifier="gst_rtp_buffer_list_get_ssrc" + doc="Get the SSRC of the first RTP packet in @list. +All RTP packets within @list have the same SSRC." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_get_timestamp" + c:identifier="gst_rtp_buffer_list_get_timestamp" + doc="Get the timestamp of the first RTP packet in @list. +All packets within @list have the same timestamp." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_set_payload_type" + c:identifier="gst_rtp_buffer_list_set_payload_type" + doc="Set the payload type of each RTP packet in @list to @payload_type." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + <parameter name="payload_type" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_set_seq" + c:identifier="gst_rtp_buffer_list_set_seq" + doc="Set the sequence number of each RTP packet in @list to @seq." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + <parameter name="seq" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_set_ssrc" + c:identifier="gst_rtp_buffer_list_set_ssrc" + doc="Set the SSRC on each RTP packet in @list to @ssrc." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_set_timestamp" + c:identifier="gst_rtp_buffer_list_set_timestamp" + doc="Set the timestamp of each RTP packet in @list to @timestamp." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="buffer_list_validate" + c:identifier="gst_rtp_buffer_list_validate" + doc="Check if all RTP packets in the @list are valid using validate_data(). +Use this function to validate an list before using the other functions in +this module." + version="0.10.24"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.BufferList" c:type="GstBufferList*"/> + </parameter> + </parameters> + </function> + <function name="buffer_new_allocate" + c:identifier="gst_rtp_buffer_new_allocate" + doc="Allocate a new #GstBuffer with enough data to hold an RTP packet with +All other RTP header fields will be set to 0/FALSE. +parameters."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="payload_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_new_allocate_len" + c:identifier="gst_rtp_buffer_new_allocate_len" + doc="Create a new #GstBuffer that can hold an RTP packet that is exactly +All RTP header fields will be set to 0/FALSE."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="packet_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="pad_len" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="csrc_count" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_new_copy_data" + c:identifier="gst_rtp_buffer_new_copy_data" + doc="Create a new buffer and set the data to a copy of @len +bytes of @data and the size to @len. The data will be freed when the buffer +is freed."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="buffer_new_take_data" + c:identifier="gst_rtp_buffer_new_take_data" + doc="Create a new buffer and set the data and size of the buffer to @data and @len +respectively. @data will be freed when the buffer is unreffed, so this +function transfers ownership of @data to the new buffer."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="buffer_pad_to" + c:identifier="gst_rtp_buffer_pad_to" + doc="Set the amount of padding in the RTP packet in @buffer to"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_csrc" + c:identifier="gst_rtp_buffer_set_csrc" + doc="Modify the CSRC at index @idx in @buffer to @csrc."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="idx" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + <parameter name="csrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_extension" + c:identifier="gst_rtp_buffer_set_extension" + doc="Set the extension bit on the RTP packet in @buffer to @extension."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="extension" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_extension_data" + c:identifier="gst_rtp_buffer_set_extension_data" + doc="the extension, excluding the extension header ( therefore zero is a valid length) +Set the extension bit of the rtp buffer and fill in the @bits and @length of the +extension header. It will refuse to set the extension data if the buffer is not +large enough."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="bits" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + <parameter name="length" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_marker" + c:identifier="gst_rtp_buffer_set_marker" + doc="Set the marker bit on the RTP packet in @buffer to @marker."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="marker" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_packet_len" + c:identifier="gst_rtp_buffer_set_packet_len" + doc="Set the total @buffer size to @len. The data in the buffer will be made +larger if needed. Any padding will be removed from the packet."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_padding" + c:identifier="gst_rtp_buffer_set_padding" + doc="Set the padding bit on the RTP packet in @buffer to @padding."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="padding" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_payload_type" + c:identifier="gst_rtp_buffer_set_payload_type" + doc="Set the payload type of the RTP packet in @buffer to @payload_type."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="payload_type" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_seq" + c:identifier="gst_rtp_buffer_set_seq" + doc="Set the sequence number of the RTP packet in @buffer to @seq."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="seq" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_ssrc" + c:identifier="gst_rtp_buffer_set_ssrc" + doc="Set the SSRC on the RTP packet in @buffer to @ssrc."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="ssrc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_timestamp" + c:identifier="gst_rtp_buffer_set_timestamp" + doc="Set the timestamp of the RTP packet in @buffer to @timestamp."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="timestamp" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="buffer_set_version" + c:identifier="gst_rtp_buffer_set_version" + doc="Set the version of the RTP packet in @buffer to @version."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="version" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="buffer_validate" + c:identifier="gst_rtp_buffer_validate" + doc="Check if the data pointed to by @buffer is a valid RTP packet using +validate_data(). +Use this function to validate a packet before using the other functions in +this module."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="buffer_validate_data" + c:identifier="gst_rtp_buffer_validate_data" + doc="Check if the @data and @size point to the data of a valid RTP packet. +This function checks the length, version and padding of the packet data. +Use this function to validate a packet before using the other functions in +this module."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="payload_info_for_name" + c:identifier="gst_rtp_payload_info_for_name" + doc="Get the #GstRTPPayloadInfo for @media and @encoding_name. This function is +mostly used to get the default clock-rate and bandwidth for dynamic payload +types specified with @media and @encoding name. +The search for @encoding_name will be performed in a case insensitve way."> + <return-value transfer-ownership="none"> + <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="encoding_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="payload_info_for_pt" + c:identifier="gst_rtp_payload_info_for_pt" + doc="Get the #GstRTPPayloadInfo for @payload_type. This function is +mostly used to get the default clock-rate and bandwidth for static payload +types specified with @payload_type."> + <return-value transfer-ownership="none"> + <type name="RTPPayloadInfo" c:type="GstRTPPayloadInfo*"/> + </return-value> + <parameters> + <parameter name="payload_type" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_add_packet" + c:identifier="gst_rtcp_buffer_add_packet" + doc="Add a new packet of @type to @buffer. @packet will point to the newly created +packet. +if the max mtu is exceeded for the buffer."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="type" transfer-ownership="none"> + <type name="RTCPType" c:type="GstRTCPType"/> + </parameter> + <parameter name="packet" transfer-ownership="none"> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_end" + c:identifier="gst_rtcp_buffer_end" + doc="Finish @buffer after being constructured. This function is usually called +after gst_rtcp_buffer_new() and after adding the RTCP items to the new buffer. +The function adjusts the size of @buffer with the total length of all the +added packets."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_get_first_packet" + c:identifier="gst_rtcp_buffer_get_first_packet" + doc="Initialize a new #GstRTCPPacket pointer that points to the first packet in"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="packet" transfer-ownership="none"> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_get_packet_count" + c:identifier="gst_rtcp_buffer_get_packet_count" + doc="Get the number of RTCP packets in @buffer."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_new" + c:identifier="gst_rtcp_buffer_new" + doc="Create a new buffer for constructing RTCP packets. The packet will have a +maximum size of @mtu."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="mtu" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_new_copy_data" + c:identifier="gst_rtcp_buffer_new_copy_data" + doc="Create a new buffer and set the data to a copy of @len +bytes of @data and the size to @len. The data will be freed when the buffer +is freed."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_new_take_data" + c:identifier="gst_rtcp_buffer_new_take_data" + doc="Create a new buffer and set the data and size of the buffer to @data and @len +respectively. @data will be freed when the buffer is unreffed, so this +function transfers ownership of @data to the new buffer."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_validate" + c:identifier="gst_rtcp_buffer_validate" + doc="Check if the data pointed to by @buffer is a valid RTCP packet using +gst_rtcp_buffer_validate_data()."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_buffer_validate_data" + c:identifier="gst_rtcp_buffer_validate_data" + doc="Check if the @data and @size point to the data of a valid RTCP (compound) +packet. +Use this function to validate a packet before using the other functions in +this module."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="rtcp_ntp_to_unix" + c:identifier="gst_rtcp_ntp_to_unix" + doc="Converts an NTP time to UNIX nanoseconds. @ntptime can typically be +the NTP time of an SR RTCP message and contains, in the upper 32 bits, the +number of seconds since 1900 and, in the lower 32 bits, the fractional +seconds. The resulting value will be the number of nanoseconds since 1970."> + <return-value transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="ntptime" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + <function name="rtcp_packet_fb_get_type" + c:identifier="gst_rtcp_packet_fb_get_type" + doc="Get the feedback message type of the FB @packet." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTCPFBType" c:type="GstRTCPFBType"/> + </return-value> + <parameters> + <parameter name="packet" transfer-ownership="none"> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_packet_get_type" + c:identifier="gst_rtcp_packet_get_type" + doc="Get the packet type of the packet pointed to by @packet. +pointing to a valid packet."> + <return-value transfer-ownership="full"> + <type name="RTCPType" c:type="GstRTCPType"/> + </return-value> + <parameters> + <parameter name="packet" transfer-ownership="none"> + <type name="RTCPPacket" c:type="GstRTCPPacket*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_sdes_name_to_type" + c:identifier="gst_rtcp_sdes_name_to_type" + doc="Convert @name into a @GstRTCPSDESType. @name is typically a key in a +#GstStructure containing SDES items. +is a private sdes item." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="RTCPSDESType" c:type="GstRTCPSDESType"/> + </return-value> + <parameters> + <parameter name="name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="rtcp_sdes_type_to_name" + c:identifier="gst_rtcp_sdes_type_to_name" + doc="Converts @type to the string equivalent. The string is typically used as a +key in a #GstStructure containing SDES items." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="RTCPSDESType" c:type="GstRTCPSDESType"/> + </parameter> + </parameters> + </function> + <function name="rtcp_unix_to_ntp" + c:identifier="gst_rtcp_unix_to_ntp" + doc="Converts a UNIX timestamp in nanoseconds to an NTP time. The caller should +pass a value with nanoseconds since 1970. The NTP time will, in the upper +32 bits, contain the number of seconds since 1900 and, in the lower 32 +bits, the fractional seconds. The resulting value can be used as an ntptime +for constructing SR RTCP packets."> + <return-value transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </return-value> + <parameters> + <parameter name="unixtime" transfer-ownership="none"> + <type name="uint64" c:type="guint64"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/rtp/ffi/ffi.factor b/basis/gstreamer/rtp/ffi/ffi.factor new file mode 100644 index 0000000000..28f860549a --- /dev/null +++ b/basis/gstreamer/rtp/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/rtp/rtp.factor b/basis/gstreamer/rtp/rtp.factor new file mode 100644 index 0000000000..7e928c1a9f --- /dev/null +++ b/basis/gstreamer/rtp/rtp.factor @@ -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 + diff --git a/basis/gstreamer/rtsp/GstRtsp-0.10.gir b/basis/gstreamer/rtsp/GstRtsp-0.10.gir new file mode 100644 index 0000000000..b0cf681543 --- /dev/null +++ b/basis/gstreamer/rtsp/GstRtsp-0.10.gir @@ -0,0 +1,2761 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="GstSdp" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <package name="gstreamer-sdp-0.10"/> + <c:include name="gst/audio/gstrtsp-enumtypes.h"/> + <c:include name="gst/audio/gstrtspbase64.h"/> + <c:include name="gst/audio/gstrtspconnection.h"/> + <c:include name="gst/audio/gstrtspdefs.h"/> + <c:include name="gst/audio/gstrtspextension.h"/> + <c:include name="gst/audio/gstrtspmessage.h"/> + <c:include name="gst/audio/gstrtsprange.h"/> + <c:include name="gst/audio/gstrtsptransport.h"/> + <c:include name="gst/audio/gstrtspurl.h"/> + <namespace name="GstRtsp" + version="0.10" + shared-library="libgstrtsp-0.10.so.0" + c:prefix="Gst"> + <constant name="DEFAULT_PORT" value="554"> + <type name="int"/> + </constant> + <enumeration name="RTSPAuthMethod" + doc="Authentication methods, ordered by strength" + glib:type-name="GstRTSPAuthMethod" + glib:get-type="gst_rtsp_auth_method_get_type" + c:type="GstRTSPAuthMethod"> + <member name="none" + value="0" + c:identifier="GST_RTSP_AUTH_NONE" + glib:nick="none"/> + <member name="basic" + value="1" + c:identifier="GST_RTSP_AUTH_BASIC" + glib:nick="basic"/> + <member name="digest" + value="2" + c:identifier="GST_RTSP_AUTH_DIGEST" + glib:nick="digest"/> + </enumeration> + <record name="RTSPConnection" + c:type="GstRTSPConnection" + doc="Opaque RTSP connection object."> + <method name="connect" + c:identifier="gst_rtsp_connection_connect" + doc="Attempt to connect to the url of @conn made with +gst_rtsp_connection_create(). If @timeout is #NULL this function can block +forever. If @timeout contains a valid timeout, this function will return +#GST_RTSP_ETIMEOUT after the timeout expired. +This function can be cancelled with gst_rtsp_connection_flush()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="close" + c:identifier="gst_rtsp_connection_close" + doc="Close the connected @conn. After this call, the connection is in the same +state as when it was first created."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + <method name="free" + c:identifier="gst_rtsp_connection_free" + doc="Close and free @conn."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + <method name="read" + c:identifier="gst_rtsp_connection_read" + doc="Attempt to read @size bytes into @data from the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. +This function can be cancelled with gst_rtsp_connection_flush()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="write" + c:identifier="gst_rtsp_connection_write" + doc="Attempt to write @size bytes of @data to the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. +This function can be cancelled with gst_rtsp_connection_flush()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="send" + c:identifier="gst_rtsp_connection_send" + doc="Attempt to send @message to the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. +This function can be cancelled with gst_rtsp_connection_flush()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="receive" + c:identifier="gst_rtsp_connection_receive" + doc="Attempt to read into @message from the connected @conn, blocking up to +the specified @timeout. @timeout can be #NULL, in which case this function +might block forever. +This function can be cancelled with gst_rtsp_connection_flush()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="poll" + c:identifier="gst_rtsp_connection_poll" + doc="Wait up to the specified @timeout for the connection to become available for +at least one of the operations specified in @events. When the function returns +with #GST_RTSP_OK, @revents will contain a bitmask of available operations on +This function can be cancelled with gst_rtsp_connection_flush()." + version="0.10.15"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="events" transfer-ownership="none"> + <type name="RTSPEvent" c:type="GstRTSPEvent"/> + </parameter> + <parameter name="revents" transfer-ownership="none"> + <type name="RTSPEvent" c:type="GstRTSPEvent*"/> + </parameter> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="next_timeout" + c:identifier="gst_rtsp_connection_next_timeout" + doc="Calculate the next timeout for @conn, storing the result in @timeout."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="timeout" transfer-ownership="none"> + <type name="GLib.TimeVal" c:type="GTimeVal*"/> + </parameter> + </parameters> + </method> + <method name="reset_timeout" + c:identifier="gst_rtsp_connection_reset_timeout" + doc="Reset the timeout of @conn."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + <method name="flush" + c:identifier="gst_rtsp_connection_flush" + doc="Start or stop the flushing action on @conn. When flushing, all current +and future actions on @conn will return #GST_RTSP_EINTR until the connection +is set to non-flushing mode again."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="flush" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_proxy" + c:identifier="gst_rtsp_connection_set_proxy" + doc="Set the proxy host and port." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="host" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="set_auth" + c:identifier="gst_rtsp_connection_set_auth" + doc="Configure @conn for authentication mode @method with @user and @pass as the +user and password respectively."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="RTSPAuthMethod" c:type="GstRTSPAuthMethod"/> + </parameter> + <parameter name="user" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="pass" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="set_auth_param" + c:identifier="gst_rtsp_connection_set_auth_param" + doc="Setup @conn with authentication directives. This is not necesary for +methods #GST_RTSP_AUTH_NONE and #GST_RTSP_AUTH_BASIC. For +#GST_RTSP_AUTH_DIGEST, directives should be taken from the digest challenge +in the WWW-Authenticate response header and can include realm, domain, +nonce, opaque, stale, algorithm, qop as per RFC2617." + version="0.10.20"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="param" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="clear_auth_params" + c:identifier="gst_rtsp_connection_clear_auth_params" + doc="Clear the list of authentication directives stored in @conn." + version="0.10.20"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="set_qos_dscp" + c:identifier="gst_rtsp_connection_set_qos_dscp" + doc="Configure @conn to use the specified DSCP value." + version="0.10.20"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="qos_dscp" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_url" + c:identifier="gst_rtsp_connection_get_url" + doc="Retrieve the URL of the other end of @conn. +connection is freed." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </return-value> + </method> + <method name="get_ip" + c:identifier="gst_rtsp_connection_get_ip" + doc="Retrieve the IP address of the other end of @conn. +connection is closed." + version="0.10.20"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_ip" + c:identifier="gst_rtsp_connection_set_ip" + doc="Set the IP address of the server." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="ip" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_readfd" + c:identifier="gst_rtsp_connection_get_readfd" + doc="Get the file descriptor for reading. +descriptor remains valid until the connection is closed." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + </method> + <method name="get_writefd" + c:identifier="gst_rtsp_connection_get_writefd" + doc="Get the file descriptor for writing. +descriptor remains valid until the connection is closed." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="int" c:type="gint"/> + </return-value> + </method> + <method name="set_http_mode" + c:identifier="gst_rtsp_connection_set_http_mode" + doc="By setting the HTTP mode to %TRUE the message parsing will support HTTP +messages in addition to the RTSP messages. It will also disable the +automatic handling of setting up an HTTP tunnel." + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="enable" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="set_tunneled" + c:identifier="gst_rtsp_connection_set_tunneled" + doc="Set the HTTP tunneling state of the connection. This must be configured before +the @conn is connected." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="tunneled" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </method> + <method name="is_tunneled" + c:identifier="gst_rtsp_connection_is_tunneled" + doc="Get the tunneling state of the connection." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + </method> + <method name="get_tunnelid" + c:identifier="gst_rtsp_connection_get_tunnelid" + doc="Get the tunnel session id the connection." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="do_tunnel" + c:identifier="gst_rtsp_connection_do_tunnel" + doc="If @conn received the first tunnel connection and @conn2 received +the second tunnel connection, link the two connections together so that +After this call, @conn2 cannot be used anymore and must be freed with +gst_rtsp_connection_free(). +If @conn2 is %NULL then only the base64 decoding context will be setup for" + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="conn2" transfer-ownership="none"> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </parameter> + </parameters> + </method> + </record> + <bitfield name="RTSPEvent" + doc="The possible events for the connection." + glib:type-name="GstRTSPEvent" + glib:get-type="gst_rtsp_event_get_type" + c:type="GstRTSPEvent"> + <member name="read" + value="1" + c:identifier="GST_RTSP_EV_READ" + glib:nick="read"/> + <member name="write" + value="2" + c:identifier="GST_RTSP_EV_WRITE" + glib:nick="write"/> + </bitfield> + <interface name="RTSPExtension" + c:type="GstRTSPExtension" + glib:type-name="GstRTSPExtension" + glib:get-type="gst_rtsp_extension_get_type" + glib:type-struct="RTSPExtensionInterface"> + <virtual-method name="detect_server" invoker="detect_server"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="before_send" invoker="before_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="after_send" invoker="after_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="parse_sdp" invoker="parse_sdp"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="setup_media" invoker="setup_media"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="configure_stream" invoker="configure_stream"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="get_transports" invoker="get_transports"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="protocols" transfer-ownership="none"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="stream_select" invoker="stream_select"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + </parameters> + </virtual-method> + <virtual-method name="receive_request" invoker="receive_request"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </virtual-method> + <method name="detect_server" + c:identifier="gst_rtsp_extension_detect_server"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="before_send" c:identifier="gst_rtsp_extension_before_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="after_send" c:identifier="gst_rtsp_extension_after_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="parse_sdp" c:identifier="gst_rtsp_extension_parse_sdp"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </method> + <method name="setup_media" c:identifier="gst_rtsp_extension_setup_media"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </method> + <method name="configure_stream" + c:identifier="gst_rtsp_extension_configure_stream"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </method> + <method name="get_transports" + c:identifier="gst_rtsp_extension_get_transports"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="protocols" transfer-ownership="none"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </method> + <method name="stream_select" + c:identifier="gst_rtsp_extension_stream_select"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + </parameters> + </method> + <method name="receive_request" + c:identifier="gst_rtsp_extension_receive_request"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="send" c:identifier="gst_rtsp_extension_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <glib:signal name="send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="object" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="p0" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + </parameters> + </glib:signal> + </interface> + <record name="RTSPExtensionInterface" + c:type="GstRTSPExtensionInterface" + glib:is-gtype-struct-for="RTSPExtension"> + <field name="parent"> + <type name="GObject.TypeInterface" c:type="GTypeInterface"/> + </field> + <field name="detect_server"> + <callback name="detect_server" c:type="detect_server"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="before_send"> + <callback name="before_send" c:type="before_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="after_send"> + <callback name="after_send" c:type="after_send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="parse_sdp"> + <callback name="parse_sdp" c:type="parse_sdp"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="sdp" transfer-ownership="none"> + <type name="GstSdp.SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + <parameter name="s" transfer-ownership="none"> + <type name="Gst.Structure" c:type="GstStructure*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="setup_media"> + <callback name="setup_media" c:type="setup_media"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="media" transfer-ownership="none"> + <type name="GstSdp.SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="configure_stream"> + <callback name="configure_stream" c:type="configure_stream"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="get_transports"> + <callback name="get_transports" c:type="get_transports"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="protocols" transfer-ownership="none"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </callback> + </field> + <field name="stream_select"> + <callback name="stream_select" c:type="stream_select"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="send"> + <callback name="send" c:type="send"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="resp" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="receive_request"> + <callback name="receive_request" c:type="receive_request"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="ext" transfer-ownership="none"> + <type name="RTSPExtension" c:type="GstRTSPExtension*"/> + </parameter> + <parameter name="req" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </record> + <enumeration name="RTSPFamily" + doc="The possible network families." + glib:type-name="GstRTSPFamily" + glib:get-type="gst_rtsp_family_get_type" + c:type="GstRTSPFamily"> + <member name="none" + value="0" + c:identifier="GST_RTSP_FAM_NONE" + glib:nick="none"/> + <member name="inet" + value="1" + c:identifier="GST_RTSP_FAM_INET" + glib:nick="inet"/> + <member name="inet6" + value="2" + c:identifier="GST_RTSP_FAM_INET6" + glib:nick="inet6"/> + </enumeration> + <enumeration name="RTSPHeaderField" + glib:type-name="GstRTSPHeaderField" + glib:get-type="gst_rtsp_header_field_get_type" + c:type="GstRTSPHeaderField"> + <member name="invalid" + value="0" + c:identifier="GST_RTSP_HDR_INVALID" + glib:nick="invalid"/> + <member name="accept" + value="1" + c:identifier="GST_RTSP_HDR_ACCEPT" + glib:nick="accept"/> + <member name="accept_encoding" + value="2" + c:identifier="GST_RTSP_HDR_ACCEPT_ENCODING" + glib:nick="accept-encoding"/> + <member name="accept_language" + value="3" + c:identifier="GST_RTSP_HDR_ACCEPT_LANGUAGE" + glib:nick="accept-language"/> + <member name="allow" + value="4" + c:identifier="GST_RTSP_HDR_ALLOW" + glib:nick="allow"/> + <member name="authorization" + value="5" + c:identifier="GST_RTSP_HDR_AUTHORIZATION" + glib:nick="authorization"/> + <member name="bandwidth" + value="6" + c:identifier="GST_RTSP_HDR_BANDWIDTH" + glib:nick="bandwidth"/> + <member name="blocksize" + value="7" + c:identifier="GST_RTSP_HDR_BLOCKSIZE" + glib:nick="blocksize"/> + <member name="cache_control" + value="8" + c:identifier="GST_RTSP_HDR_CACHE_CONTROL" + glib:nick="cache-control"/> + <member name="conference" + value="9" + c:identifier="GST_RTSP_HDR_CONFERENCE" + glib:nick="conference"/> + <member name="connection" + value="10" + c:identifier="GST_RTSP_HDR_CONNECTION" + glib:nick="connection"/> + <member name="content_base" + value="11" + c:identifier="GST_RTSP_HDR_CONTENT_BASE" + glib:nick="content-base"/> + <member name="content_encoding" + value="12" + c:identifier="GST_RTSP_HDR_CONTENT_ENCODING" + glib:nick="content-encoding"/> + <member name="content_language" + value="13" + c:identifier="GST_RTSP_HDR_CONTENT_LANGUAGE" + glib:nick="content-language"/> + <member name="content_length" + value="14" + c:identifier="GST_RTSP_HDR_CONTENT_LENGTH" + glib:nick="content-length"/> + <member name="content_location" + value="15" + c:identifier="GST_RTSP_HDR_CONTENT_LOCATION" + glib:nick="content-location"/> + <member name="content_type" + value="16" + c:identifier="GST_RTSP_HDR_CONTENT_TYPE" + glib:nick="content-type"/> + <member name="cseq" + value="17" + c:identifier="GST_RTSP_HDR_CSEQ" + glib:nick="cseq"/> + <member name="date" + value="18" + c:identifier="GST_RTSP_HDR_DATE" + glib:nick="date"/> + <member name="expires" + value="19" + c:identifier="GST_RTSP_HDR_EXPIRES" + glib:nick="expires"/> + <member name="from" + value="20" + c:identifier="GST_RTSP_HDR_FROM" + glib:nick="from"/> + <member name="if_modified_since" + value="21" + c:identifier="GST_RTSP_HDR_IF_MODIFIED_SINCE" + glib:nick="if-modified-since"/> + <member name="last_modified" + value="22" + c:identifier="GST_RTSP_HDR_LAST_MODIFIED" + glib:nick="last-modified"/> + <member name="proxy_authenticate" + value="23" + c:identifier="GST_RTSP_HDR_PROXY_AUTHENTICATE" + glib:nick="proxy-authenticate"/> + <member name="proxy_require" + value="24" + c:identifier="GST_RTSP_HDR_PROXY_REQUIRE" + glib:nick="proxy-require"/> + <member name="public" + value="25" + c:identifier="GST_RTSP_HDR_PUBLIC" + glib:nick="public"/> + <member name="range" + value="26" + c:identifier="GST_RTSP_HDR_RANGE" + glib:nick="range"/> + <member name="referer" + value="27" + c:identifier="GST_RTSP_HDR_REFERER" + glib:nick="referer"/> + <member name="require" + value="28" + c:identifier="GST_RTSP_HDR_REQUIRE" + glib:nick="require"/> + <member name="retry_after" + value="29" + c:identifier="GST_RTSP_HDR_RETRY_AFTER" + glib:nick="retry-after"/> + <member name="rtp_info" + value="30" + c:identifier="GST_RTSP_HDR_RTP_INFO" + glib:nick="rtp-info"/> + <member name="scale" + value="31" + c:identifier="GST_RTSP_HDR_SCALE" + glib:nick="scale"/> + <member name="session" + value="32" + c:identifier="GST_RTSP_HDR_SESSION" + glib:nick="session"/> + <member name="server" + value="33" + c:identifier="GST_RTSP_HDR_SERVER" + glib:nick="server"/> + <member name="speed" + value="34" + c:identifier="GST_RTSP_HDR_SPEED" + glib:nick="speed"/> + <member name="transport" + value="35" + c:identifier="GST_RTSP_HDR_TRANSPORT" + glib:nick="transport"/> + <member name="unsupported" + value="36" + c:identifier="GST_RTSP_HDR_UNSUPPORTED" + glib:nick="unsupported"/> + <member name="user_agent" + value="37" + c:identifier="GST_RTSP_HDR_USER_AGENT" + glib:nick="user-agent"/> + <member name="via" + value="38" + c:identifier="GST_RTSP_HDR_VIA" + glib:nick="via"/> + <member name="www_authenticate" + value="39" + c:identifier="GST_RTSP_HDR_WWW_AUTHENTICATE" + glib:nick="www-authenticate"/> + <member name="client_challenge" + value="40" + c:identifier="GST_RTSP_HDR_CLIENT_CHALLENGE" + glib:nick="client-challenge"/> + <member name="real_challenge1" + value="41" + c:identifier="GST_RTSP_HDR_REAL_CHALLENGE1" + glib:nick="real-challenge1"/> + <member name="real_challenge2" + value="42" + c:identifier="GST_RTSP_HDR_REAL_CHALLENGE2" + glib:nick="real-challenge2"/> + <member name="real_challenge3" + value="43" + c:identifier="GST_RTSP_HDR_REAL_CHALLENGE3" + glib:nick="real-challenge3"/> + <member name="subscribe" + value="44" + c:identifier="GST_RTSP_HDR_SUBSCRIBE" + glib:nick="subscribe"/> + <member name="alert" + value="45" + c:identifier="GST_RTSP_HDR_ALERT" + glib:nick="alert"/> + <member name="client_id" + value="46" + c:identifier="GST_RTSP_HDR_CLIENT_ID" + glib:nick="client-id"/> + <member name="company_id" + value="47" + c:identifier="GST_RTSP_HDR_COMPANY_ID" + glib:nick="company-id"/> + <member name="guid" + value="48" + c:identifier="GST_RTSP_HDR_GUID" + glib:nick="guid"/> + <member name="region_data" + value="49" + c:identifier="GST_RTSP_HDR_REGION_DATA" + glib:nick="region-data"/> + <member name="max_asm_width" + value="50" + c:identifier="GST_RTSP_HDR_MAX_ASM_WIDTH" + glib:nick="max-asm-width"/> + <member name="language" + value="51" + c:identifier="GST_RTSP_HDR_LANGUAGE" + glib:nick="language"/> + <member name="player_start_time" + value="52" + c:identifier="GST_RTSP_HDR_PLAYER_START_TIME" + glib:nick="player-start-time"/> + <member name="location" + value="53" + c:identifier="GST_RTSP_HDR_LOCATION" + glib:nick="location"/> + <member name="etag" + value="54" + c:identifier="GST_RTSP_HDR_ETAG" + glib:nick="etag"/> + <member name="if_match" + value="55" + c:identifier="GST_RTSP_HDR_IF_MATCH" + glib:nick="if-match"/> + <member name="accept_charset" + value="56" + c:identifier="GST_RTSP_HDR_ACCEPT_CHARSET" + glib:nick="accept-charset"/> + <member name="supported" + value="57" + c:identifier="GST_RTSP_HDR_SUPPORTED" + glib:nick="supported"/> + <member name="vary" + value="58" + c:identifier="GST_RTSP_HDR_VARY" + glib:nick="vary"/> + <member name="x_accelerate_streaming" + value="59" + c:identifier="GST_RTSP_HDR_X_ACCELERATE_STREAMING" + glib:nick="x-accelerate-streaming"/> + <member name="x_accept_authent" + value="60" + c:identifier="GST_RTSP_HDR_X_ACCEPT_AUTHENT" + glib:nick="x-accept-authent"/> + <member name="x_accept_proxy_authent" + value="61" + c:identifier="GST_RTSP_HDR_X_ACCEPT_PROXY_AUTHENT" + glib:nick="x-accept-proxy-authent"/> + <member name="x_broadcast_id" + value="62" + c:identifier="GST_RTSP_HDR_X_BROADCAST_ID" + glib:nick="x-broadcast-id"/> + <member name="x_burst_streaming" + value="63" + c:identifier="GST_RTSP_HDR_X_BURST_STREAMING" + glib:nick="x-burst-streaming"/> + <member name="x_notice" + value="64" + c:identifier="GST_RTSP_HDR_X_NOTICE" + glib:nick="x-notice"/> + <member name="x_player_lag_time" + value="65" + c:identifier="GST_RTSP_HDR_X_PLAYER_LAG_TIME" + glib:nick="x-player-lag-time"/> + <member name="x_playlist" + value="66" + c:identifier="GST_RTSP_HDR_X_PLAYLIST" + glib:nick="x-playlist"/> + <member name="x_playlist_change_notice" + value="67" + c:identifier="GST_RTSP_HDR_X_PLAYLIST_CHANGE_NOTICE" + glib:nick="x-playlist-change-notice"/> + <member name="x_playlist_gen_id" + value="68" + c:identifier="GST_RTSP_HDR_X_PLAYLIST_GEN_ID" + glib:nick="x-playlist-gen-id"/> + <member name="x_playlist_seek_id" + value="69" + c:identifier="GST_RTSP_HDR_X_PLAYLIST_SEEK_ID" + glib:nick="x-playlist-seek-id"/> + <member name="x_proxy_client_agent" + value="70" + c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_AGENT" + glib:nick="x-proxy-client-agent"/> + <member name="x_proxy_client_verb" + value="71" + c:identifier="GST_RTSP_HDR_X_PROXY_CLIENT_VERB" + glib:nick="x-proxy-client-verb"/> + <member name="x_receding_playlistchange" + value="72" + c:identifier="GST_RTSP_HDR_X_RECEDING_PLAYLISTCHANGE" + glib:nick="x-receding-playlistchange"/> + <member name="x_rtp_info" + value="73" + c:identifier="GST_RTSP_HDR_X_RTP_INFO" + glib:nick="x-rtp-info"/> + <member name="x_startupprofile" + value="74" + c:identifier="GST_RTSP_HDR_X_STARTUPPROFILE" + glib:nick="x-startupprofile"/> + <member name="timestamp" + value="75" + c:identifier="GST_RTSP_HDR_TIMESTAMP" + glib:nick="timestamp"/> + <member name="authentication_info" + value="76" + c:identifier="GST_RTSP_HDR_AUTHENTICATION_INFO" + glib:nick="authentication-info"/> + <member name="host" + value="77" + c:identifier="GST_RTSP_HDR_HOST" + glib:nick="host"/> + <member name="pragma" + value="78" + c:identifier="GST_RTSP_HDR_PRAGMA" + glib:nick="pragma"/> + <member name="x_server_ip_address" + value="79" + c:identifier="GST_RTSP_HDR_X_SERVER_IP_ADDRESS" + glib:nick="x-server-ip-address"/> + <member name="x_sessioncookie" + value="80" + c:identifier="GST_RTSP_HDR_X_SESSIONCOOKIE" + glib:nick="x-sessioncookie"/> + <member name="last" + value="81" + c:identifier="GST_RTSP_HDR_LAST" + glib:nick="last"/> + </enumeration> + <bitfield name="RTSPLowerTrans" + doc="The different transport methods." + glib:type-name="GstRTSPLowerTrans" + glib:get-type="gst_rtsp_lower_trans_get_type" + c:type="GstRTSPLowerTrans"> + <member name="udp_unicast" + value="1" + c:identifier="UDP Unicast Mode" + glib:nick="udp-unicast"/> + <member name="udp_multicast" + value="2" + c:identifier="UDP Multicast Mode" + glib:nick="udp-multicast"/> + <member name="tcp" + value="4" + c:identifier="TCP interleaved mode" + glib:nick="tcp"/> + <member name="http" + value="16" + c:identifier="HTTP tunneled mode" + glib:nick="http"/> + </bitfield> + <record name="RTSPMessage" + c:type="GstRTSPMessage" + doc="An RTSP message containing request, response or data messages. Depending on +the @type, the appropriate structure may be accessed."> + <field name="type" writable="1"> + <type name="RTSPMsgType" c:type="GstRTSPMsgType"/> + </field> + <union name="type_data" c:type="type_data"> + <record name="request" c:type="request"> + <field name="method" writable="1"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </field> + <field name="uri" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="version" writable="1"> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </field> + </record> + <record name="response" c:type="response"> + <field name="code" writable="1"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </field> + <field name="reason" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="version" writable="1"> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </field> + </record> + <record name="data" c:type="data"> + <field name="channel" writable="1"> + <type name="uint8" c:type="guint8"/> + </field> + </record> + </union> + <field name="hdr_fields" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="body" writable="1"> + <type name="any" c:type="guint8*"/> + </field> + <field name="body_size" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <constructor name="new" + c:identifier="gst_rtsp_message_new" + doc="Create a new initialized #GstRTSPMessage. Free with gst_rtsp_message_free()."> + <return-value transfer-ownership="full"> + <type name="RTSPMessage" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_request" + c:identifier="gst_rtsp_message_new_request" + doc="Create a new #GstRTSPMessage with @method and @uri and store the result +request message in @msg. Free with gst_rtsp_message_free()."> + <return-value transfer-ownership="full"> + <type name="RTSPMessage" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + <parameter name="method" transfer-ownership="none"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_response" + c:identifier="gst_rtsp_message_new_response" + doc="Create a new response #GstRTSPMessage with @code and @reason and store the +result message in @msg. Free with gst_rtsp_message_free(). +When @reason is #NULL, the default reason for @code will be used. +When @request is not #NULL, the relevant headers will be copied to the new +response message."> + <return-value transfer-ownership="full"> + <type name="RTSPMessage" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + <parameter name="code" transfer-ownership="none"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + <parameter name="reason" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="request" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </constructor> + <constructor name="new_data" + c:identifier="gst_rtsp_message_new_data" + doc="Create a new data #GstRTSPMessage with @channel and store the +result message in @msg. Free with gst_rtsp_message_free()."> + <return-value transfer-ownership="full"> + <type name="RTSPMessage" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage**"/> + </parameter> + <parameter name="channel" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </constructor> + <method name="init" + c:identifier="gst_rtsp_message_init" + doc="Initialize @msg. This function is mostly used when @msg is allocated on the +stack. The reverse operation of this is gst_rtsp_message_unset()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + <method name="unset" + c:identifier="gst_rtsp_message_unset" + doc="Unset the contents of @msg so that it becomes an uninitialized +#GstRTSPMessage again. This function is mostly used in combination with +gst_rtsp_message_init_request(), gst_rtsp_message_init_response() and +gst_rtsp_message_init_data() on stack allocated #GstRTSPMessage structures."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + <method name="free" + c:identifier="gst_rtsp_message_free" + doc="Free the memory used by @msg."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + <method name="init_request" + c:identifier="gst_rtsp_message_init_request" + doc="Initialize @msg as a request message with @method and @uri. To clear @msg +again, use gst_rtsp_message_unset()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="parse_request" + c:identifier="gst_rtsp_message_parse_request" + doc="Parse the request message @msg and store the values @method, @uri and +value."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="RTSPMethod" c:type="GstRTSPMethod*"/> + </parameter> + <parameter name="uri" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="version" transfer-ownership="none"> + <type name="RTSPVersion" c:type="GstRTSPVersion*"/> + </parameter> + </parameters> + </method> + <method name="init_response" + c:identifier="gst_rtsp_message_init_response" + doc="Initialize @msg with @code and @reason. +When @reason is #NULL, the default reason for @code will be used. +When @request is not #NULL, the relevant headers will be copied to the new +response message."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="code" transfer-ownership="none"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + <parameter name="reason" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="request" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + <method name="parse_response" + c:identifier="gst_rtsp_message_parse_response" + doc="Parse the response message @msg and store the values @code, @reason and +value."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="code" transfer-ownership="none"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode*"/> + </parameter> + <parameter name="reason" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="version" transfer-ownership="none"> + <type name="RTSPVersion" c:type="GstRTSPVersion*"/> + </parameter> + </parameters> + </method> + <method name="init_data" + c:identifier="gst_rtsp_message_init_data" + doc="Initialize a new data #GstRTSPMessage for @channel."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <type name="uint8" c:type="guint8"/> + </parameter> + </parameters> + </method> + <method name="parse_data" + c:identifier="gst_rtsp_message_parse_data" + doc="Parse the data message @msg and store the channel in @channel."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="channel" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + </parameters> + </method> + <method name="add_header" + c:identifier="gst_rtsp_message_add_header" + doc="Add a header with key @field and @value to @msg. This function takes a copy +of @value."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="take_header" + c:identifier="gst_rtsp_message_take_header" + doc="Add a header with key @field and @value to @msg. This function takes +ownership of @value." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="value" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="remove_header" + c:identifier="gst_rtsp_message_remove_header" + doc="Remove the @indx header with key @field from @msg. If @indx equals -1, all +headers will be removed."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="indx" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="get_header" + c:identifier="gst_rtsp_message_get_header" + doc="Get the @indx header value with key @field from @msg. The result in @value +stays valid as long as it remains present in @msg. +was not found."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="indx" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + </parameters> + </method> + <method name="append_headers" + c:identifier="gst_rtsp_message_append_headers" + doc="Append the currently configured headers in @msg to the #GString @str suitable +for transmission."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <type name="GLib.String" c:type="GString*"/> + </parameter> + </parameters> + </method> + <method name="set_body" + c:identifier="gst_rtsp_message_set_body" + doc="Set the body of @msg to a copy of @data."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="take_body" + c:identifier="gst_rtsp_message_take_body" + doc="Set the body of @msg to @data and @size. This method takes ownership of"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_body" + c:identifier="gst_rtsp_message_get_body" + doc="Get the body of @msg. @data remains valid for as long as @msg is valid and +unchanged."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + <parameter name="size" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="steal_body" + c:identifier="gst_rtsp_message_steal_body" + doc="Take the body of @msg and store it in @data and @size. After this method, +the body and size of @msg will be set to #NULL and 0 respectively."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" direction="out" transfer-ownership="full"> + <type name="uint8" c:type="guint8**"/> + </parameter> + <parameter name="size" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="dump" + c:identifier="gst_rtsp_message_dump" + doc="Dump the contents of @msg to stdout."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + </method> + </record> + <bitfield name="RTSPMethod" + doc="The different supported RTSP methods." + glib:type-name="GstRTSPMethod" + glib:get-type="gst_rtsp_method_get_type" + c:type="GstRTSPMethod"> + <member name="invalid" + value="0" + c:identifier="GST_RTSP_INVALID" + glib:nick="invalid"/> + <member name="describe" + value="1" + c:identifier="GST_RTSP_DESCRIBE" + glib:nick="describe"/> + <member name="announce" + value="2" + c:identifier="GST_RTSP_ANNOUNCE" + glib:nick="announce"/> + <member name="get_parameter" + value="4" + c:identifier="GST_RTSP_GET_PARAMETER" + glib:nick="get-parameter"/> + <member name="options" + value="8" + c:identifier="GST_RTSP_OPTIONS" + glib:nick="options"/> + <member name="pause" + value="16" + c:identifier="GST_RTSP_PAUSE" + glib:nick="pause"/> + <member name="play" + value="32" + c:identifier="GST_RTSP_PLAY" + glib:nick="play"/> + <member name="record" + value="64" + c:identifier="GST_RTSP_RECORD" + glib:nick="record"/> + <member name="redirect" + value="128" + c:identifier="GST_RTSP_REDIRECT" + glib:nick="redirect"/> + <member name="setup" + value="256" + c:identifier="GST_RTSP_SETUP" + glib:nick="setup"/> + <member name="set_parameter" + value="512" + c:identifier="GST_RTSP_SET_PARAMETER" + glib:nick="set-parameter"/> + <member name="teardown" + value="1024" + c:identifier="GST_RTSP_TEARDOWN" + glib:nick="teardown"/> + <member name="get" + value="2048" + c:identifier="GST_RTSP_GET" + glib:nick="get"/> + <member name="post" + value="4096" + c:identifier="GST_RTSP_POST" + glib:nick="post"/> + </bitfield> + <enumeration name="RTSPMsgType" + doc="The type of a message." + c:type="GstRTSPMsgType"> + <member name="invalid" + value="0" + c:identifier="GST_RTSP_MESSAGE_INVALID"/> + <member name="request" + value="1" + c:identifier="GST_RTSP_MESSAGE_REQUEST"/> + <member name="response" + value="2" + c:identifier="GST_RTSP_MESSAGE_RESPONSE"/> + <member name="http_request" + value="3" + c:identifier="GST_RTSP_MESSAGE_HTTP_REQUEST"/> + <member name="http_response" + value="4" + c:identifier="GST_RTSP_MESSAGE_HTTP_RESPONSE"/> + <member name="data" value="5" c:identifier="GST_RTSP_MESSAGE_DATA"/> + </enumeration> + <bitfield name="RTSPProfile" + doc="The transfer profile to use." + c:type="GstRTSPProfile"> + <member name="unknown" + value="0" + c:identifier="GST_RTSP_PROFILE_UNKNOWN"/> + <member name="avp" value="1" c:identifier="GST_RTSP_PROFILE_AVP"/> + <member name="savp" value="2" c:identifier="GST_RTSP_PROFILE_SAVP"/> + </bitfield> + <record name="RTSPRange" + c:type="GstRTSPRange" + doc="A type to specify a range."> + <field name="min" writable="1"> + <type name="int" c:type="gint"/> + </field> + <field name="max" writable="1"> + <type name="int" c:type="gint"/> + </field> + </record> + <enumeration name="RTSPRangeUnit" + doc="Different possible time range units." + c:type="GstRTSPRangeUnit"> + <member name="smpte" value="0" c:identifier="GST_RTSP_RANGE_SMPTE"/> + <member name="smpte_30_drop" + value="1" + c:identifier="GST_RTSP_RANGE_SMPTE_30_DROP"/> + <member name="smpte_25" + value="2" + c:identifier="GST_RTSP_RANGE_SMPTE_25"/> + <member name="npt" value="3" c:identifier="GST_RTSP_RANGE_NPT"/> + <member name="clock" value="4" c:identifier="GST_RTSP_RANGE_CLOCK"/> + </enumeration> + <enumeration name="RTSPResult" + doc="Result codes from the RTSP functions." + glib:type-name="GstRTSPResult" + glib:get-type="gst_rtsp_result_get_type" + c:type="GstRTSPResult"> + <member name="ok" value="0" c:identifier="GST_RTSP_OK" glib:nick="ok"/> + <member name="error" + value="-1" + c:identifier="GST_RTSP_ERROR" + glib:nick="error"/> + <member name="einval" + value="-2" + c:identifier="GST_RTSP_EINVAL" + glib:nick="einval"/> + <member name="eintr" + value="-3" + c:identifier="GST_RTSP_EINTR" + glib:nick="eintr"/> + <member name="enomem" + value="-4" + c:identifier="GST_RTSP_ENOMEM" + glib:nick="enomem"/> + <member name="eresolv" + value="-5" + c:identifier="GST_RTSP_ERESOLV" + glib:nick="eresolv"/> + <member name="enotimpl" + value="-6" + c:identifier="GST_RTSP_ENOTIMPL" + glib:nick="enotimpl"/> + <member name="esys" + value="-7" + c:identifier="GST_RTSP_ESYS" + glib:nick="esys"/> + <member name="eparse" + value="-8" + c:identifier="GST_RTSP_EPARSE" + glib:nick="eparse"/> + <member name="ewsastart" + value="-9" + c:identifier="GST_RTSP_EWSASTART" + glib:nick="ewsastart"/> + <member name="ewsaversion" + value="-10" + c:identifier="GST_RTSP_EWSAVERSION" + glib:nick="ewsaversion"/> + <member name="eeof" + value="-11" + c:identifier="GST_RTSP_EEOF" + glib:nick="eeof"/> + <member name="enet" + value="-12" + c:identifier="GST_RTSP_ENET" + glib:nick="enet"/> + <member name="enotip" + value="-13" + c:identifier="GST_RTSP_ENOTIP" + glib:nick="enotip"/> + <member name="etimeout" + value="-14" + c:identifier="GST_RTSP_ETIMEOUT" + glib:nick="etimeout"/> + <member name="etget" + value="-15" + c:identifier="GST_RTSP_ETGET" + glib:nick="etget"/> + <member name="etpost" + value="-16" + c:identifier="GST_RTSP_ETPOST" + glib:nick="etpost"/> + <member name="elast" + value="-17" + c:identifier="GST_RTSP_ELAST" + glib:nick="elast"/> + </enumeration> + <enumeration name="RTSPState" + doc="The different RTSP states." + glib:type-name="GstRTSPState" + glib:get-type="gst_rtsp_state_get_type" + c:type="GstRTSPState"> + <member name="invalid" + value="0" + c:identifier="GST_RTSP_STATE_INVALID" + glib:nick="invalid"/> + <member name="init" + value="1" + c:identifier="GST_RTSP_STATE_INIT" + glib:nick="init"/> + <member name="ready" + value="2" + c:identifier="GST_RTSP_STATE_READY" + glib:nick="ready"/> + <member name="seeking" + value="3" + c:identifier="GST_RTSP_STATE_SEEKING" + glib:nick="seeking"/> + <member name="playing" + value="4" + c:identifier="GST_RTSP_STATE_PLAYING" + glib:nick="playing"/> + <member name="recording" + value="5" + c:identifier="GST_RTSP_STATE_RECORDING" + glib:nick="recording"/> + </enumeration> + <enumeration name="RTSPStatusCode" + glib:type-name="GstRTSPStatusCode" + glib:get-type="gst_rtsp_status_code_get_type" + c:type="GstRTSPStatusCode"> + <member name="invalid" + value="0" + c:identifier="GST_RTSP_STS_INVALID" + glib:nick="invalid"/> + <member name="continue" + value="100" + c:identifier="GST_RTSP_STS_CONTINUE" + glib:nick="continue"/> + <member name="ok" + value="200" + c:identifier="GST_RTSP_STS_OK" + glib:nick="ok"/> + <member name="created" + value="201" + c:identifier="GST_RTSP_STS_CREATED" + glib:nick="created"/> + <member name="low_on_storage" + value="250" + c:identifier="GST_RTSP_STS_LOW_ON_STORAGE" + glib:nick="low-on-storage"/> + <member name="multiple_choices" + value="300" + c:identifier="GST_RTSP_STS_MULTIPLE_CHOICES" + glib:nick="multiple-choices"/> + <member name="moved_permanently" + value="301" + c:identifier="GST_RTSP_STS_MOVED_PERMANENTLY" + glib:nick="moved-permanently"/> + <member name="move_temporarily" + value="302" + c:identifier="GST_RTSP_STS_MOVE_TEMPORARILY" + glib:nick="move-temporarily"/> + <member name="see_other" + value="303" + c:identifier="GST_RTSP_STS_SEE_OTHER" + glib:nick="see-other"/> + <member name="not_modified" + value="304" + c:identifier="GST_RTSP_STS_NOT_MODIFIED" + glib:nick="not-modified"/> + <member name="use_proxy" + value="305" + c:identifier="GST_RTSP_STS_USE_PROXY" + glib:nick="use-proxy"/> + <member name="bad_request" + value="400" + c:identifier="GST_RTSP_STS_BAD_REQUEST" + glib:nick="bad-request"/> + <member name="unauthorized" + value="401" + c:identifier="GST_RTSP_STS_UNAUTHORIZED" + glib:nick="unauthorized"/> + <member name="payment_required" + value="402" + c:identifier="GST_RTSP_STS_PAYMENT_REQUIRED" + glib:nick="payment-required"/> + <member name="forbidden" + value="403" + c:identifier="GST_RTSP_STS_FORBIDDEN" + glib:nick="forbidden"/> + <member name="not_found" + value="404" + c:identifier="GST_RTSP_STS_NOT_FOUND" + glib:nick="not-found"/> + <member name="method_not_allowed" + value="405" + c:identifier="GST_RTSP_STS_METHOD_NOT_ALLOWED" + glib:nick="method-not-allowed"/> + <member name="not_acceptable" + value="406" + c:identifier="GST_RTSP_STS_NOT_ACCEPTABLE" + glib:nick="not-acceptable"/> + <member name="proxy_auth_required" + value="407" + c:identifier="GST_RTSP_STS_PROXY_AUTH_REQUIRED" + glib:nick="proxy-auth-required"/> + <member name="request_timeout" + value="408" + c:identifier="GST_RTSP_STS_REQUEST_TIMEOUT" + glib:nick="request-timeout"/> + <member name="gone" + value="410" + c:identifier="GST_RTSP_STS_GONE" + glib:nick="gone"/> + <member name="length_required" + value="411" + c:identifier="GST_RTSP_STS_LENGTH_REQUIRED" + glib:nick="length-required"/> + <member name="precondition_failed" + value="412" + c:identifier="GST_RTSP_STS_PRECONDITION_FAILED" + glib:nick="precondition-failed"/> + <member name="request_entity_too_large" + value="413" + c:identifier="GST_RTSP_STS_REQUEST_ENTITY_TOO_LARGE" + glib:nick="request-entity-too-large"/> + <member name="request_uri_too_large" + value="414" + c:identifier="GST_RTSP_STS_REQUEST_URI_TOO_LARGE" + glib:nick="request-uri-too-large"/> + <member name="unsupported_media_type" + value="415" + c:identifier="GST_RTSP_STS_UNSUPPORTED_MEDIA_TYPE" + glib:nick="unsupported-media-type"/> + <member name="parameter_not_understood" + value="451" + c:identifier="GST_RTSP_STS_PARAMETER_NOT_UNDERSTOOD" + glib:nick="parameter-not-understood"/> + <member name="conference_not_found" + value="452" + c:identifier="GST_RTSP_STS_CONFERENCE_NOT_FOUND" + glib:nick="conference-not-found"/> + <member name="not_enough_bandwidth" + value="453" + c:identifier="GST_RTSP_STS_NOT_ENOUGH_BANDWIDTH" + glib:nick="not-enough-bandwidth"/> + <member name="session_not_found" + value="454" + c:identifier="GST_RTSP_STS_SESSION_NOT_FOUND" + glib:nick="session-not-found"/> + <member name="method_not_valid_in_this_state" + value="455" + c:identifier="GST_RTSP_STS_METHOD_NOT_VALID_IN_THIS_STATE" + glib:nick="method-not-valid-in-this-state"/> + <member name="header_field_not_valid_for_resource" + value="456" + c:identifier="GST_RTSP_STS_HEADER_FIELD_NOT_VALID_FOR_RESOURCE" + glib:nick="header-field-not-valid-for-resource"/> + <member name="invalid_range" + value="457" + c:identifier="GST_RTSP_STS_INVALID_RANGE" + glib:nick="invalid-range"/> + <member name="parameter_is_readonly" + value="458" + c:identifier="GST_RTSP_STS_PARAMETER_IS_READONLY" + glib:nick="parameter-is-readonly"/> + <member name="aggregate_operation_not_allowed" + value="459" + c:identifier="GST_RTSP_STS_AGGREGATE_OPERATION_NOT_ALLOWED" + glib:nick="aggregate-operation-not-allowed"/> + <member name="only_aggregate_operation_allowed" + value="460" + c:identifier="GST_RTSP_STS_ONLY_AGGREGATE_OPERATION_ALLOWED" + glib:nick="only-aggregate-operation-allowed"/> + <member name="unsupported_transport" + value="461" + c:identifier="GST_RTSP_STS_UNSUPPORTED_TRANSPORT" + glib:nick="unsupported-transport"/> + <member name="destination_unreachable" + value="462" + c:identifier="GST_RTSP_STS_DESTINATION_UNREACHABLE" + glib:nick="destination-unreachable"/> + <member name="internal_server_error" + value="500" + c:identifier="GST_RTSP_STS_INTERNAL_SERVER_ERROR" + glib:nick="internal-server-error"/> + <member name="not_implemented" + value="501" + c:identifier="GST_RTSP_STS_NOT_IMPLEMENTED" + glib:nick="not-implemented"/> + <member name="bad_gateway" + value="502" + c:identifier="GST_RTSP_STS_BAD_GATEWAY" + glib:nick="bad-gateway"/> + <member name="service_unavailable" + value="503" + c:identifier="GST_RTSP_STS_SERVICE_UNAVAILABLE" + glib:nick="service-unavailable"/> + <member name="gateway_timeout" + value="504" + c:identifier="GST_RTSP_STS_GATEWAY_TIMEOUT" + glib:nick="gateway-timeout"/> + <member name="rtsp_version_not_supported" + value="505" + c:identifier="GST_RTSP_STS_RTSP_VERSION_NOT_SUPPORTED" + glib:nick="rtsp-version-not-supported"/> + <member name="option_not_supported" + value="551" + c:identifier="GST_RTSP_STS_OPTION_NOT_SUPPORTED" + glib:nick="option-not-supported"/> + </enumeration> + <record name="RTSPTime" c:type="GstRTSPTime" doc="A time indication."> + <field name="type" writable="1"> + <type name="RTSPTimeType" c:type="GstRTSPTimeType"/> + </field> + <field name="seconds" writable="1"> + <type name="double" c:type="gdouble"/> + </field> + </record> + <record name="RTSPTimeRange" c:type="GstRTSPTimeRange" doc="A time range."> + <field name="unit" writable="1"> + <type name="RTSPRangeUnit" c:type="GstRTSPRangeUnit"/> + </field> + <field name="min" writable="1"> + <type name="RTSPTime" c:type="GstRTSPTime"/> + </field> + <field name="max" writable="1"> + <type name="RTSPTime" c:type="GstRTSPTime"/> + </field> + </record> + <enumeration name="RTSPTimeType" + doc="Possible time types." + c:type="GstRTSPTimeType"> + <member name="seconds" value="0" c:identifier="GST_RTSP_TIME_SECONDS"/> + <member name="now" value="1" c:identifier="GST_RTSP_TIME_NOW"/> + <member name="end" value="2" c:identifier="GST_RTSP_TIME_END"/> + </enumeration> + <bitfield name="RTSPTransMode" + doc="The transfer mode to use." + c:type="GstRTSPTransMode"> + <member name="unknown" value="0" c:identifier="GST_RTSP_TRANS_UNKNOWN"/> + <member name="rtp" value="1" c:identifier="GST_RTSP_TRANS_RTP"/> + <member name="rdt" value="2" c:identifier="GST_RTSP_TRANS_RDT"/> + </bitfield> + <record name="RTSPTransport" c:type="_GstRTSPTransport"> + <field name="trans" writable="1"> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </field> + <field name="profile" writable="1"> + <type name="RTSPProfile" c:type="GstRTSPProfile"/> + </field> + <field name="lower_transport" writable="1"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </field> + <field name="destination" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="source" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="layers" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="mode_play" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="mode_record" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="append" writable="1"> + <type name="boolean" c:type="gboolean"/> + </field> + <field name="interleaved" writable="1"> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="ttl" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="port" writable="1"> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="client_port" writable="1"> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="server_port" writable="1"> + <type name="RTSPRange" c:type="GstRTSPRange"/> + </field> + <field name="ssrc" writable="1"> + <type name="uint" c:type="guint"/> + </field> + </record> + <record name="RTSPUrl" + c:type="GstRTSPUrl" + doc="This structure contains the result of a parsed RTSP URL" + glib:type-name="GstRTSPUrl" + glib:get-type="gst_rtsp_url_get_type"> + <field name="transports" writable="1"> + <type name="RTSPLowerTrans" c:type="GstRTSPLowerTrans"/> + </field> + <field name="family" writable="1"> + <type name="RTSPFamily" c:type="GstRTSPFamily"/> + </field> + <field name="user" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="passwd" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="host" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="port" writable="1"> + <type name="uint16" c:type="guint16"/> + </field> + <field name="abspath" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="query" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <method name="copy" + c:identifier="gst_rtsp_url_copy" + doc="Make a copy of @url." + version="0.10.22"> + <return-value transfer-ownership="full" doc="after usage."> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </return-value> + </method> + <method name="free" + c:identifier="gst_rtsp_url_free" + doc="Free the memory used by @url."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="get_request_uri" + c:identifier="gst_rtsp_url_get_request_uri" + doc="Get a newly allocated string describing the request URI for @url."> + <return-value transfer-ownership="full" doc="after usage."> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_port" + c:identifier="gst_rtsp_url_set_port" + doc="Set the port number in @url to @port."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="port" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + </parameters> + </method> + <method name="get_port" + c:identifier="gst_rtsp_url_get_port" + doc="Get the port number of @url."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="port" direction="out" transfer-ownership="full"> + <type name="uint16" c:type="guint16*"/> + </parameter> + </parameters> + </method> + </record> + <enumeration name="RTSPVersion" + doc="The supported RTSP versions." + glib:type-name="GstRTSPVersion" + glib:get-type="gst_rtsp_version_get_type" + c:type="GstRTSPVersion"> + <member name="invalid" + value="0" + c:identifier="GST_RTSP_VERSION_INVALID" + glib:nick="invalid"/> + <member name="1_0" + value="16" + c:identifier="GST_RTSP_VERSION_1_0" + glib:nick="1-0"/> + <member name="1_1" + value="17" + c:identifier="GST_RTSP_VERSION_1_1" + glib:nick="1-1"/> + </enumeration> + <record name="RTSPWatch" + c:type="GstRTSPWatch" + doc="Opaque RTSP watch object that can be used for asynchronous RTSP +operations."> + <constructor name="new" + c:identifier="gst_rtsp_watch_new" + doc="Create a watch object for @conn. The functions provided in @funcs will be +called with @user_data when activity happened on the watch. +The new watch is usually created so that it can be attached to a +maincontext with gst_rtsp_watch_attach(). +communication. Free with gst_rtsp_watch_unref () after usage." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTSPWatch" c:type="GstRTSPWatch*"/> + </return-value> + <parameters> + <parameter name="conn" transfer-ownership="none"> + <type name="RTSPConnection" c:type="GstRTSPConnection*"/> + </parameter> + <parameter name="funcs" transfer-ownership="none"> + <type name="RTSPWatchFuncs" c:type="GstRTSPWatchFuncs*"/> + </parameter> + <parameter name="user_data" transfer-ownership="none"> + <type name="any" c:type="gpointer"/> + </parameter> + <parameter name="notify" transfer-ownership="none" scope="call"> + <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/> + </parameter> + </parameters> + </constructor> + <method name="reset" + c:identifier="gst_rtsp_watch_reset" + doc="Reset @watch, this is usually called after gst_rtsp_connection_do_tunnel() +when the file descriptors of the connection might have changed." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="unref" + c:identifier="gst_rtsp_watch_unref" + doc="Decreases the reference count of @watch by one. If the resulting reference +count is zero the watch and associated memory will be destroyed." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </method> + <method name="attach" + c:identifier="gst_rtsp_watch_attach" + doc="Adds a #GstRTSPWatch to a context so that it will be executed within that context." + version="0.10.23"> + <return-value transfer-ownership="none" + doc="for the watch within the GMainContext."> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="context" transfer-ownership="none"> + <type name="GLib.MainContext" c:type="GMainContext*"/> + </parameter> + </parameters> + </method> + <method name="write_data" + c:identifier="gst_rtsp_watch_write_data" + doc="Write @data using the connection of the @watch. If it cannot be sent +immediately, it will be queued for transmission in @watch. The contents of +callback. +This function will take ownership of @data and g_free() it after use." + version="0.10.25"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="id" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="send_message" + c:identifier="gst_rtsp_watch_send_message" + doc="Send a @message using the connection of the @watch. If it cannot be sent +immediately, it will be queued for transmission in @watch. The contents of +callback." + version="0.10.25"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + <parameter name="id" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + </parameters> + </method> + <method name="queue_data" + c:identifier="gst_rtsp_watch_queue_data" + doc="Queue @data for transmission in @watch. It will be transmitted when the +connection of the @watch becomes writable. +This function will take ownership of @data and g_free() it after use. +The return value of this function will be used as the id argument in the +message_sent callback." + version="0.10.24" + deprecated="Use gst_rtsp_watch_write_data()"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="queue_message" + c:identifier="gst_rtsp_watch_queue_message" + doc="Queue a @message for transmission in @watch. The contents of this +message will be serialized and transmitted when the connection of the +The return value of this function will be used as the id argument in the +message_sent callback." + version="0.10.23" + deprecated="Use gst_rtsp_watch_send_message()"> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + <parameters> + <parameter name="message" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </method> + </record> + <record name="RTSPWatchFuncs" + c:type="GstRTSPWatchFuncs" + doc="connection must be saved. +you usually pair the tunnelid of this connection with the saved one using +gst_rtsp_connection_do_tunnel(). +the @error callback. Since 0.10.25 +Since 0.10.29 +Callback functions from a #GstRTSPWatch." + version="0.10.23"> + <field name="message_received"> + <type name="any" c:type="pointer"/> + </field> + <field name="message_sent"> + <type name="any" c:type="pointer"/> + </field> + <field name="closed"> + <type name="any" c:type="pointer"/> + </field> + <field name="error"> + <type name="any" c:type="pointer"/> + </field> + <field name="tunnel_start"> + <type name="any" c:type="pointer"/> + </field> + <field name="tunnel_complete"> + <type name="any" c:type="pointer"/> + </field> + <field name="error_full"> + <type name="any" c:type="pointer"/> + </field> + <field name="tunnel_lost"> + <type name="any" c:type="pointer"/> + </field> + <field name="_gst_reserved" writable="1"> + <array zero-terminated="0" c:type="gpointer" fixed-size="2"> + <type name="any"/> + </array> + </field> + </record> + <function name="base64_decode_ip" + c:identifier="gst_rtsp_base64_decode_ip" + doc="Decode the base64 string pointed to by @data in-place. When @len is not #NULL +it will contain the length of the decoded data."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="len" direction="out" transfer-ownership="full"> + <type name="size_t" c:type="gsize*"/> + </parameter> + </parameters> + </function> + <function name="base64_encode" + c:identifier="gst_rtsp_base64_encode" + doc="Encode a sequence of binary data into its Base-64 stringified representation. +representing @data." + deprecated="Use g_base64_encode()"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="len" transfer-ownership="none"> + <type name="size_t" c:type="gsize"/> + </parameter> + </parameters> + </function> + <function name="connection_accept" + c:identifier="gst_rtsp_connection_accept" + doc="Accept a new connection on @sock and create a new #GstRTSPConnection for +handling communication on new socket." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="sock" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="conn" transfer-ownership="none"> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + <function name="connection_create" + c:identifier="gst_rtsp_connection_create" + doc="Create a newly allocated #GstRTSPConnection from @url and store it in @conn. +The connection will not yet attempt to connect to @url, use +gst_rtsp_connection_connect(). +A copy of @url will be made."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl*"/> + </parameter> + <parameter name="conn" transfer-ownership="none"> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + <function name="connection_create_from_fd" + c:identifier="gst_rtsp_connection_create_from_fd" + doc="Create a new #GstRTSPConnection for handling communication on the existing +file descriptor @fd. The @initial_buffer contains any data already read from" + version="0.10.25"> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="fd" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="ip" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="port" transfer-ownership="none"> + <type name="uint16" c:type="guint16"/> + </parameter> + <parameter name="initial_buffer" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="conn" transfer-ownership="none"> + <type name="RTSPConnection" c:type="GstRTSPConnection**"/> + </parameter> + </parameters> + </function> + <function name="find_header_field" + c:identifier="gst_rtsp_find_header_field" + doc="Convert @header to a #GstRTSPHeaderField. +header field is unknown."> + <return-value transfer-ownership="full"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </return-value> + <parameters> + <parameter name="header" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="find_method" + c:identifier="gst_rtsp_find_method" + doc="Convert @method to a #GstRTSPMethod. +method is unknown."> + <return-value transfer-ownership="full"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="header_allow_multiple" + c:identifier="gst_rtsp_header_allow_multiple" + doc="Check whether @field may appear multiple times in a message." + version="0.10.25"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + </parameters> + </function> + <function name="header_as_text" + c:identifier="gst_rtsp_header_as_text" + doc="Convert @field to a string."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="field" transfer-ownership="none"> + <type name="RTSPHeaderField" c:type="GstRTSPHeaderField"/> + </parameter> + </parameters> + </function> + <function name="message_get_type" + c:identifier="gst_rtsp_message_get_type" + doc="Get the message type of @msg."> + <return-value transfer-ownership="full"> + <type name="RTSPMsgType" c:type="GstRTSPMsgType"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="RTSPMessage" c:type="GstRTSPMessage*"/> + </parameter> + </parameters> + </function> + <function name="method_as_text" + c:identifier="gst_rtsp_method_as_text" + doc="Convert @method to a string."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="method" transfer-ownership="none"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + </parameters> + </function> + <function name="options_as_text" + c:identifier="gst_rtsp_options_as_text" + doc="Convert @options to a string." + version="0.10.23"> + <return-value transfer-ownership="full" doc="after usage."> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="options" transfer-ownership="none"> + <type name="RTSPMethod" c:type="GstRTSPMethod"/> + </parameter> + </parameters> + </function> + <function name="range_free" + c:identifier="gst_rtsp_range_free" + doc="Free the memory alocated by @range."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + </parameters> + </function> + <function name="range_parse" + c:identifier="gst_rtsp_range_parse" + doc="Parse @rangestr to a #GstRTSPTimeRange."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="rangestr" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="range" transfer-ownership="none"> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange**"/> + </parameter> + </parameters> + </function> + <function name="range_to_string" + c:identifier="gst_rtsp_range_to_string" + doc="Convert @range into a string representation." + version="0.10.23"> + <return-value transfer-ownership="full" doc="after usage."> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="range" transfer-ownership="none"> + <type name="RTSPTimeRange" c:type="GstRTSPTimeRange*"/> + </parameter> + </parameters> + </function> + <function name="status_as_text" + c:identifier="gst_rtsp_status_as_text" + doc="Convert @code to a string."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="code" transfer-ownership="none"> + <type name="RTSPStatusCode" c:type="GstRTSPStatusCode"/> + </parameter> + </parameters> + </function> + <function name="strresult" + c:identifier="gst_rtsp_strresult" + doc="Convert @result in a human readable string."> + <return-value transfer-ownership="full" doc="after usage."> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="result" transfer-ownership="none"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </parameter> + </parameters> + </function> + <function name="transport_as_text" + c:identifier="gst_rtsp_transport_as_text" + doc="Convert @transport into a string that can be used to signal the transport in +an RTSP SETUP response. +is invalid."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="transport" transfer-ownership="none"> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="transport_free" + c:identifier="gst_rtsp_transport_free" + doc="Free the memory used by @transport."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" transfer-ownership="none"> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="transport_get_manager" + c:identifier="gst_rtsp_transport_get_manager" + doc="Get the #GStreamer element that can handle the buffers transported over +It is possible that there are several managers available, use @option to +selected one. +needed/available for @trans."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </parameter> + <parameter name="manager" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="option" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="transport_get_mime" + c:identifier="gst_rtsp_transport_get_mime" + doc="Get the mime type of the transport mode @trans. This mime type is typically +used to generate #GstCaps on buffers."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="trans" transfer-ownership="none"> + <type name="RTSPTransMode" c:type="GstRTSPTransMode"/> + </parameter> + <parameter name="mime" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="transport_init" + c:identifier="gst_rtsp_transport_init" + doc="Initialize @transport so that it can be used."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" transfer-ownership="none"> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="transport_new" + c:identifier="gst_rtsp_transport_new" + doc="Allocate a new initialized #GstRTSPTransport. Use gst_rtsp_transport_free() +after usage."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="transport" transfer-ownership="none"> + <type name="RTSPTransport" c:type="GstRTSPTransport**"/> + </parameter> + </parameters> + </function> + <function name="transport_parse" + c:identifier="gst_rtsp_transport_parse" + doc="Parse the RTSP transport string @str into @transport."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="str" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="transport" transfer-ownership="none"> + <type name="RTSPTransport" c:type="GstRTSPTransport*"/> + </parameter> + </parameters> + </function> + <function name="url_parse" + c:identifier="gst_rtsp_url_parse" + doc="Parse the RTSP @urlstr into a newly allocated #GstRTSPUrl. Free after usage +with gst_rtsp_url_free()."> + <return-value transfer-ownership="full"> + <type name="RTSPResult" c:type="GstRTSPResult"/> + </return-value> + <parameters> + <parameter name="urlstr" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="url" transfer-ownership="none"> + <type name="RTSPUrl" c:type="GstRTSPUrl**"/> + </parameter> + </parameters> + </function> + <function name="version_as_text" + c:identifier="gst_rtsp_version_as_text" + doc="Convert @version to a string."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <type name="RTSPVersion" c:type="GstRTSPVersion"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/rtsp/ffi/ffi.factor b/basis/gstreamer/rtsp/ffi/ffi.factor new file mode 100644 index 0000000000..a3989d7747 --- /dev/null +++ b/basis/gstreamer/rtsp/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/rtsp/rtsp.factor b/basis/gstreamer/rtsp/rtsp.factor new file mode 100644 index 0000000000..72069f606b --- /dev/null +++ b/basis/gstreamer/rtsp/rtsp.factor @@ -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 + diff --git a/basis/gstreamer/sdp/GstSdp-0.10.gir b/basis/gstreamer/sdp/GstSdp-0.10.gir new file mode 100644 index 0000000000..16f62f6f58 --- /dev/null +++ b/basis/gstreamer/sdp/GstSdp-0.10.gir @@ -0,0 +1,1056 @@ +<?xml version="1.0"?> +<!-- This file was automatically generated from C sources - DO NOT EDIT! +To affect the contents of this file, edit the original C definitions, +and/or use gtk-doc annotations. --> +<repository version="1.0" + xmlns="http://www.gtk.org/introspection/core/1.0" + xmlns:c="http://www.gtk.org/introspection/c/1.0" + xmlns:glib="http://www.gtk.org/introspection/glib/1.0"> + <include name="GLib" version="2.0"/> + <include name="GModule" version="2.0"/> + <include name="GObject" version="2.0"/> + <include name="Gst" version="0.10"/> + <include name="libxml2" version="2.0"/> + <package name="gstreamer-0.10"/> + <c:include name="gst/audio/gstsdp.h"/> + <c:include name="gst/audio/gstsdpmessage.h"/> + <namespace name="GstSdp" + version="0.10" + shared-library="libgstsdp-0.10.so.0" + c:prefix="Gst"> + <constant name="BWTYPE_AS" value="AS"> + <type name="utf8"/> + </constant> + <constant name="BWTYPE_CT" value="CT"> + <type name="utf8"/> + </constant> + <constant name="BWTYPE_EXT_PREFIX" value="X-"> + <type name="utf8"/> + </constant> + <constant name="BWTYPE_RS" value="RS"> + <type name="utf8"/> + </constant> + <record name="SDPAttribute" + c:type="GstSDPAttribute" + doc="The contents of the SDP "a=" field which contains a key/value pair."> + <field name="key" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="value" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <record name="SDPBandwidth" + c:type="GstSDPBandwidth" + doc="The contents of the SDP "b=" field which specifies the proposed bandwidth to +be used by the session or media."> + <field name="bwtype" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="bandwidth" writable="1"> + <type name="uint" c:type="guint"/> + </field> + </record> + <record name="SDPConnection" + c:type="GstSDPConnection" + doc=""Internet". +The contents of the SDP "c=" field which contains connection data."> + <field name="nettype" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="addrtype" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="address" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="ttl" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="addr_number" writable="1"> + <type name="uint" c:type="guint"/> + </field> + </record> + <record name="SDPKey" + c:type="GstSDPKey" + doc="The contents of the SDP "k=" field which is used to convey encryption +keys."> + <field name="type" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="data" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <record name="SDPMedia" + c:type="GstSDPMedia" + doc="The contents of the SDP "m=" field with all related fields."> + <field name="media" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="port" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="num_ports" writable="1"> + <type name="uint" c:type="guint"/> + </field> + <field name="proto" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="fmts" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="information" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="connections" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="bandwidths" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="key" writable="1"> + <type name="SDPKey" c:type="GstSDPKey"/> + </field> + <field name="attributes" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <constructor name="new" + c:identifier="gst_sdp_media_new" + doc="Allocate a new GstSDPMedia and store the result in @media."> + <return-value transfer-ownership="full"> + <type name="SDPMedia" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="SDPMedia" c:type="GstSDPMedia**"/> + </parameter> + </parameters> + </constructor> + <method name="init" + c:identifier="gst_sdp_media_init" + doc="Initialize @media so that its contents are as if it was freshly allocated +with gst_sdp_media_new(). This function is mostly used to initialize a media +allocated on the stack. gst_sdp_media_uninit() undoes this operation. +When this function is invoked on newly allocated data (with malloc or on the +stack), its contents should be set to 0 before calling this function."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + <method name="uninit" + c:identifier="gst_sdp_media_uninit" + doc="Free all resources allocated in @media. @media should not be used anymore after +this function. This function should be used when @media was allocated on the +stack and initialized with gst_sdp_media_init()."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + <method name="free" + c:identifier="gst_sdp_media_free" + doc="Free all resources allocated by @media. @media should not be used anymore after +this function. This function should be used when @media was dynamically +allocated with gst_sdp_media_new()."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + <method name="as_text" + c:identifier="gst_sdp_media_as_text" + doc="Convert the contents of @media to a text string."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="get_media" + c:identifier="gst_sdp_media_get_media" + doc="Get the media description of @media."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_media" + c:identifier="gst_sdp_media_set_media" + doc="Set the media description of @media to @med."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="med" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_port" + c:identifier="gst_sdp_media_get_port" + doc="Get the port number for @media."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_num_ports" + c:identifier="gst_sdp_media_get_num_ports" + doc="Get the number of ports for @media."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="set_port_info" + c:identifier="gst_sdp_media_set_port_info" + doc="Set the port information in @media."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="port" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="num_ports" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_proto" + c:identifier="gst_sdp_media_get_proto" + doc="Get the transport protocol of @media"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_proto" + c:identifier="gst_sdp_media_set_proto" + doc="Set the media transport protocol of @media to @proto."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="proto" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="formats_len" + c:identifier="gst_sdp_media_formats_len" + doc="Get the number of formats in @media."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_format" + c:identifier="gst_sdp_media_get_format" + doc="Get the format information at position @idx in @media."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_format" + c:identifier="gst_sdp_media_add_format" + doc="Add the format information to @media."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_information" + c:identifier="gst_sdp_media_get_information" + doc="Get the information of @media"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_information" + c:identifier="gst_sdp_media_set_information" + doc="Set the media information of @media to @information."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="information" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="connections_len" + c:identifier="gst_sdp_media_connections_len" + doc="Get the number of connection fields in @media."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_connection" + c:identifier="gst_sdp_media_get_connection" + doc="Get the connection at position @idx in @media."> + <return-value transfer-ownership="none"> + <type name="SDPConnection" c:type="GstSDPConnection*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_connection" + c:identifier="gst_sdp_media_add_connection" + doc=""Internet". +Add the given connection parameters to @media."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="nettype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="addrtype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="address" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="ttl" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="addr_number" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="bandwidths_len" + c:identifier="gst_sdp_media_bandwidths_len" + doc="Get the number of bandwidth fields in @media."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_bandwidth" + c:identifier="gst_sdp_media_get_bandwidth" + doc="Get the bandwidth at position @idx in @media."> + <return-value transfer-ownership="none"> + <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_bandwidth" + c:identifier="gst_sdp_media_add_bandwidth" + doc="Add the bandwidth information with @bwtype and @bandwidth to @media."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="bwtype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="bandwidth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_key" + c:identifier="gst_sdp_media_get_key" + doc="Get the encryption information from @media."> + <return-value transfer-ownership="none"> + <type name="SDPKey" c:type="GstSDPKey*"/> + </return-value> + </method> + <method name="set_key" + c:identifier="gst_sdp_media_set_key" + doc="Adds the encryption information to @media."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="attributes_len" + c:identifier="gst_sdp_media_attributes_len" + doc="Get the number of attribute fields in @media."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_attribute" + c:identifier="gst_sdp_media_get_attribute" + doc="Get the attribute at position @idx in @media."> + <return-value transfer-ownership="none"> + <type name="SDPAttribute" c:type="GstSDPAttribute*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_attribute_val" + c:identifier="gst_sdp_media_get_attribute_val" + doc="Get the first attribute value for @key in @media."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_attribute_val_n" + c:identifier="gst_sdp_media_get_attribute_val_n" + doc="Get the @nth attribute value for @key in @media."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_attribute" + c:identifier="gst_sdp_media_add_attribute" + doc="Add the attribute with @key and @value to @media."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + </record> + <record name="SDPMessage" + c:type="GstSDPMessage" + doc="The contents of the SDP message."> + <field name="version" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="origin" writable="1"> + <type name="SDPOrigin" c:type="GstSDPOrigin"/> + </field> + <field name="session_name" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="information" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="uri" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="emails" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="phones" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="connection" writable="1"> + <type name="SDPConnection" c:type="GstSDPConnection"/> + </field> + <field name="bandwidths" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="times" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="zones" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="key" writable="1"> + <type name="SDPKey" c:type="GstSDPKey"/> + </field> + <field name="attributes" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <field name="medias" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + <constructor name="new" + c:identifier="gst_sdp_message_new" + doc="Allocate a new GstSDPMessage and store the result in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPMessage" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="msg" transfer-ownership="none"> + <type name="SDPMessage" c:type="GstSDPMessage**"/> + </parameter> + </parameters> + </constructor> + <method name="init" + c:identifier="gst_sdp_message_init" + doc="Initialize @msg so that its contents are as if it was freshly allocated +with gst_sdp_message_new(). This function is mostly used to initialize a message +allocated on the stack. gst_sdp_message_uninit() undoes this operation. +When this function is invoked on newly allocated data (with malloc or on the +stack), its contents should be set to 0 before calling this function."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + <method name="uninit" + c:identifier="gst_sdp_message_uninit" + doc="Free all resources allocated in @msg. @msg should not be used anymore after +this function. This function should be used when @msg was allocated on the +stack and initialized with gst_sdp_message_init()."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + <method name="free" + c:identifier="gst_sdp_message_free" + doc="Free all resources allocated by @msg. @msg should not be used anymore after +this function. This function should be used when @msg was dynamically +allocated with gst_sdp_message_new()."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + <method name="as_text" + c:identifier="gst_sdp_message_as_text" + doc="Convert the contents of @msg to a text string."> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="get_version" + c:identifier="gst_sdp_message_get_version" + doc="Get the version in @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_version" + c:identifier="gst_sdp_message_set_version" + doc="Set the version in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="version" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_origin" + c:identifier="gst_sdp_message_get_origin" + doc="Get the origin of @msg."> + <return-value transfer-ownership="none"> + <type name="SDPOrigin" c:type="GstSDPOrigin*"/> + </return-value> + </method> + <method name="set_origin" + c:identifier="gst_sdp_message_set_origin" + doc="Configure the SDP origin in @msg with the given parameters."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="username" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="sess_id" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="sess_version" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="nettype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="addrtype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="addr" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_session_name" + c:identifier="gst_sdp_message_get_session_name" + doc="Get the session name in @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_session_name" + c:identifier="gst_sdp_message_set_session_name" + doc="Set the session name in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="session_name" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_information" + c:identifier="gst_sdp_message_get_information" + doc="Get the information in @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_information" + c:identifier="gst_sdp_message_set_information" + doc="Set the information in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="information" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_uri" + c:identifier="gst_sdp_message_get_uri" + doc="Get the URI in @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + </method> + <method name="set_uri" + c:identifier="gst_sdp_message_set_uri" + doc="Set the URI in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="uri" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="emails_len" + c:identifier="gst_sdp_message_emails_len" + doc="Get the number of emails in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_email" + c:identifier="gst_sdp_message_get_email" + doc="Get the email with number @idx from @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_email" + c:identifier="gst_sdp_message_add_email" + doc="Add @email to the list of emails in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="email" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="phones_len" + c:identifier="gst_sdp_message_phones_len" + doc="Get the number of phones in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_phone" + c:identifier="gst_sdp_message_get_phone" + doc="Get the phone with number @idx from @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_phone" + c:identifier="gst_sdp_message_add_phone" + doc="Add @phone to the list of phones in @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="phone" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_connection" + c:identifier="gst_sdp_message_get_connection" + doc="Get the connection of @msg."> + <return-value transfer-ownership="none"> + <type name="SDPConnection" c:type="GstSDPConnection*"/> + </return-value> + </method> + <method name="set_connection" + c:identifier="gst_sdp_message_set_connection" + doc=""Internet". +Configure the SDP connection in @msg with the given parameters."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="nettype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="addrtype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="address" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="ttl" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="addr_number" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="bandwidths_len" + c:identifier="gst_sdp_message_bandwidths_len" + doc="Get the number of bandwidth information in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_bandwidth" + c:identifier="gst_sdp_message_get_bandwidth" + doc="Get the bandwidth at index @idx from @msg."> + <return-value transfer-ownership="none"> + <type name="SDPBandwidth" c:type="GstSDPBandwidth*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_bandwidth" + c:identifier="gst_sdp_message_add_bandwidth" + doc="Add the specified bandwidth information to @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="bwtype" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="bandwidth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="times_len" + c:identifier="gst_sdp_message_times_len" + doc="Get the number of time information entries in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_time" + c:identifier="gst_sdp_message_get_time" + doc="Get time information with index @idx from @msg."> + <return-value transfer-ownership="none"> + <type name="SDPTime" c:type="GstSDPTime*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_time" + c:identifier="gst_sdp_message_add_time" + doc="Add time information @start and @stop to @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="start" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="stop" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="repeat" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </method> + <method name="zones_len" + c:identifier="gst_sdp_message_zones_len" + doc="Get the number of time zone information entries in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_zone" + c:identifier="gst_sdp_message_get_zone" + doc="Get time zone information with index @idx from @msg."> + <return-value transfer-ownership="none"> + <type name="SDPZone" c:type="GstSDPZone*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_zone" + c:identifier="gst_sdp_message_add_zone" + doc="Add time zone information to @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="adj_time" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="typed_time" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_key" + c:identifier="gst_sdp_message_get_key" + doc="Get the encryption information from @msg."> + <return-value transfer-ownership="none"> + <type name="SDPKey" c:type="GstSDPKey*"/> + </return-value> + </method> + <method name="set_key" + c:identifier="gst_sdp_message_set_key" + doc="Adds the encryption information to @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="data" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="attributes_len" + c:identifier="gst_sdp_message_attributes_len" + doc="Get the number of attributes in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_attribute" + c:identifier="gst_sdp_message_get_attribute" + doc="Get the attribute at position @idx in @msg."> + <return-value transfer-ownership="none"> + <type name="SDPAttribute" c:type="GstSDPAttribute*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="get_attribute_val" + c:identifier="gst_sdp_message_get_attribute_val" + doc="Get the first attribute with key @key in @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="get_attribute_val_n" + c:identifier="gst_sdp_message_get_attribute_val_n" + doc="Get the @nth attribute with key @key in @msg."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="nth" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_attribute" + c:identifier="gst_sdp_message_add_attribute" + doc="Add the attribute with @key and @value to @msg."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="key" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="value" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </method> + <method name="medias_len" + c:identifier="gst_sdp_message_medias_len" + doc="Get the number of media descriptions in @msg."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </method> + <method name="get_media" + c:identifier="gst_sdp_message_get_media" + doc="Get the media description at index @idx in @msg."> + <return-value transfer-ownership="none"> + <type name="SDPMedia" c:type="GstSDPMedia*"/> + </return-value> + <parameters> + <parameter name="idx" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </method> + <method name="add_media" + c:identifier="gst_sdp_message_add_media" + doc="Adds @media to the array of medias in @msg. This function takes ownership of +the contents of @media so that @media will have to be reinitialized with +gst_media_init() before it can be used again."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="media" transfer-ownership="none"> + <type name="SDPMedia" c:type="GstSDPMedia*"/> + </parameter> + </parameters> + </method> + <method name="dump" + c:identifier="gst_sdp_message_dump" + doc="Dump the parsed contents of @msg to stdout."> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + </method> + </record> + <record name="SDPOrigin" + c:type="GstSDPOrigin" + doc="if the originating host does not support the concept of user ids. +session. +"Internet". +created. +The contents of the SDP "o=" field which gives the originator of the session +(their username and the address of the user's host) plus a session id and +session version number."> + <field name="username" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="sess_id" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="sess_version" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="nettype" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="addrtype" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="addr" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <enumeration name="SDPResult" + doc="Return values for the SDP functions." + c:type="GstSDPResult"> + <member name="ok" value="0" c:identifier="GST_SDP_OK"/> + <member name="einval" value="-1" c:identifier="GST_SDP_EINVAL"/> + </enumeration> + <record name="SDPTime" + c:type="GstSDPTime" + doc="representation of Network Time Protocol (NTP) time values in seconds +representation of Network Time Protocol (NTP) time values in seconds +The contents of the SDP "t=" field which specify the start and stop times for +a conference session."> + <field name="start" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="stop" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="repeat" writable="1"> + <type name="GLib.Array" c:type="GArray*"/> + </field> + </record> + <record name="SDPZone" + c:type="GstSDPZone" + doc="The contents of the SDP "z=" field which allows the sender to +specify a list of time zone adjustments and offsets from the base +time."> + <field name="time" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + <field name="typed_time" writable="1"> + <type name="utf8" c:type="gchar*"/> + </field> + </record> + <function name="message_parse_buffer" + c:identifier="gst_sdp_message_parse_buffer" + doc="Parse the contents of @size bytes pointed to by @data and store the result in"> + <return-value transfer-ownership="full"> + <type name="SDPResult" c:type="GstSDPResult"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="msg" transfer-ownership="none"> + <type name="SDPMessage" c:type="GstSDPMessage*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/sdp/ffi/ffi.factor b/basis/gstreamer/sdp/ffi/ffi.factor new file mode 100644 index 0000000000..f023bb271c --- /dev/null +++ b/basis/gstreamer/sdp/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/sdp/sdp.factor b/basis/gstreamer/sdp/sdp.factor new file mode 100644 index 0000000000..1cfdbfede2 --- /dev/null +++ b/basis/gstreamer/sdp/sdp.factor @@ -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 + diff --git a/basis/gstreamer/tag/GstTag-0.10.gir b/basis/gstreamer/tag/GstTag-0.10.gir new file mode 100644 index 0000000000..f5714599bb --- /dev/null +++ b/basis/gstreamer/tag/GstTag-0.10.gir @@ -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's caps structure)" + version="0.10.9" + glib:type-name="GstTagImageType" + glib:get-type="gst_tag_image_type_get_type" + c:type="GstTagImageType"> + <member name="none" + value="-1" + c:identifier="GST_TAG_IMAGE_TYPE_NONE" + glib:nick="none"/> + <member name="undefined" + value="0" + c:identifier="GST_TAG_IMAGE_TYPE_UNDEFINED" + glib:nick="undefined"/> + <member name="front_cover" + value="1" + c:identifier="GST_TAG_IMAGE_TYPE_FRONT_COVER" + glib:nick="front-cover"/> + <member name="back_cover" + value="2" + c:identifier="GST_TAG_IMAGE_TYPE_BACK_COVER" + glib:nick="back-cover"/> + <member name="leaflet_page" + value="3" + c:identifier="GST_TAG_IMAGE_TYPE_LEAFLET_PAGE" + glib:nick="leaflet-page"/> + <member name="medium" + value="4" + c:identifier="GST_TAG_IMAGE_TYPE_MEDIUM" + glib:nick="medium"/> + <member name="lead_artist" + value="5" + c:identifier="GST_TAG_IMAGE_TYPE_LEAD_ARTIST" + glib:nick="lead-artist"/> + <member name="artist" + value="6" + c:identifier="GST_TAG_IMAGE_TYPE_ARTIST" + glib:nick="artist"/> + <member name="conductor" + value="7" + c:identifier="GST_TAG_IMAGE_TYPE_CONDUCTOR" + glib:nick="conductor"/> + <member name="band_orchestra" + value="8" + c:identifier="GST_TAG_IMAGE_TYPE_BAND_ORCHESTRA" + glib:nick="band-orchestra"/> + <member name="composer" + value="9" + c:identifier="GST_TAG_IMAGE_TYPE_COMPOSER" + glib:nick="composer"/> + <member name="lyricist" + value="10" + c:identifier="GST_TAG_IMAGE_TYPE_LYRICIST" + glib:nick="lyricist"/> + <member name="recording_location" + value="11" + c:identifier="GST_TAG_IMAGE_TYPE_RECORDING_LOCATION" + glib:nick="recording-location"/> + <member name="during_recording" + value="12" + c:identifier="GST_TAG_IMAGE_TYPE_DURING_RECORDING" + glib:nick="during-recording"/> + <member name="during_performance" + value="13" + c:identifier="GST_TAG_IMAGE_TYPE_DURING_PERFORMANCE" + glib:nick="during-performance"/> + <member name="video_capture" + value="14" + c:identifier="GST_TAG_IMAGE_TYPE_VIDEO_CAPTURE" + glib:nick="video-capture"/> + <member name="fish" + value="15" + c:identifier="GST_TAG_IMAGE_TYPE_FISH" + glib:nick="fish"/> + <member name="illustration" + value="16" + c:identifier="GST_TAG_IMAGE_TYPE_ILLUSTRATION" + glib:nick="illustration"/> + <member name="artist_logo" + value="17" + c:identifier="GST_TAG_IMAGE_TYPE_BAND_ARTIST_LOGO" + glib:nick="artist-logo"/> + <member name="publisher_studio_logo" + value="18" + c:identifier="GST_TAG_IMAGE_TYPE_PUBLISHER_STUDIO_LOGO" + glib:nick="publisher-studio-logo"/> + </enumeration> + <function name="freeform_string_to_utf8" + c:identifier="gst_tag_freeform_string_to_utf8" + doc="or NULL +Convenience function to read a string with unknown character encoding. If +the string is already in UTF-8 encoding, it will be returned right away. +If not it tries to detect byte-order-mark for UTF-16/32 cases and use that. +Otherwise, the environment will be searched for a number of environment +variables (whose names are specified in the NULL-terminated string array +are specified, the current locale will be tried. If that also doesn't work, +ISO-8859-1 is assumed (which will almost always succeed)." + version="0.10.13"> + <return-value transfer-ownership="full"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="size" transfer-ownership="none"> + <type name="int" c:type="gint"/> + </parameter> + <parameter name="env_vars" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="from_id3_tag" + c:identifier="gst_tag_from_id3_tag" + doc="Looks up the GStreamer tag for a ID3v2 tag."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="id3_tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_id3_user_tag" + c:identifier="gst_tag_from_id3_user_tag" + doc="Looks up the GStreamer tag for an ID3v2 user tag (e.g. description in +TXXX frame or owner in UFID frame)."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="type" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="id3_user_tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="from_vorbis_tag" + c:identifier="gst_tag_from_vorbis_tag" + doc="Looks up the GStreamer tag for a vorbiscomment tag."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="vorbis_tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_language_code_iso_639_1" + c:identifier="gst_tag_get_language_code_iso_639_1" + doc="Returns two-letter ISO-639-1 language code given a three-letter ISO-639-2 +language code or two-letter ISO-639-1 language code (both are accepted for +convenience). +Language codes are case-sensitive and expected to be lower case. +or NULL if no mapping is known. The returned string must not be +modified or freed." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="lang_code" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_language_code_iso_639_2B" + c:identifier="gst_tag_get_language_code_iso_639_2B" + doc="Returns three-letter ISO-639-2 "bibliographic" language code given a +two-letter ISO-639-1 language code or a three-letter ISO-639-2 language +code (both are accepted for convenience). +The "bibliographic" code is derived from the English name of the language +(e.g. "ger" for German instead of "de" or "deu"). In most scenarios, the +"terminological" codes are prefered. +Language codes are case-sensitive and expected to be lower case. +or NULL if no mapping is known. The returned string must not be +modified or freed." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="lang_code" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_language_code_iso_639_2T" + c:identifier="gst_tag_get_language_code_iso_639_2T" + doc="Returns three-letter ISO-639-2 "terminological" language code given a +two-letter ISO-639-1 language code or a three-letter ISO-639-2 language +code (both are accepted for convenience). +The "terminological" code is derived from the local name of the language +(e.g. "deu" for German instead of "ger"). In most scenarios, the +"terminological" codes are prefered over the "bibliographic" ones. +Language codes are case-sensitive and expected to be lower case. +or NULL if no mapping is known. The returned string must not be +modified or freed." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="lang_code" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="get_language_codes" + c:identifier="gst_tag_get_language_codes" + doc="Returns a list of known language codes (in form of two-letter ISO-639-1 +codes). This is useful for UIs to build a list of available languages for +tagging purposes (e.g. to tag an audio track appropriately in a video or +audio editor). +with g_strfreev() when no longer needed." + version="0.10.26"> + <return-value transfer-ownership="full"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </return-value> + </function> + <function name="get_language_name" + c:identifier="gst_tag_get_language_name" + doc="Returns the name of the language given an ISO-639 language code, such +as often found in a GST_TAG_LANGUAGE tag. The name will be translated +according to the current locale (if the library was built against the +iso-codes package, otherwise the English name will be returned). +Language codes are case-sensitive and expected to be lower case. +not be mapped to a language name. The returned string must not be +modified and does not need to freed; it will stay valid until the +application is terminated." + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="language_code" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="id3_genre_count" + c:identifier="gst_tag_id3_genre_count" + doc="Gets the number of ID3v1 genres that can be identified. Winamp genres are +included."> + <return-value transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </return-value> + </function> + <function name="id3_genre_get" + c:identifier="gst_tag_id3_genre_get" + doc="Gets the ID3v1 genre name for a given ID."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="id" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="image_data_to_image_buffer" + c:identifier="gst_tag_image_data_to_image_buffer" + doc="#GST_TAG_IMAGE_TYPE_NONE if no image type should be set at all (e.g. +for preview images) +Helper function for tag-reading plugins to create a #GstBuffer suitable to +add to a #GstTagList as an image tag (such as #GST_TAG_IMAGE or +#GST_TAG_PREVIEW_IMAGE) from the encoded image data and an (optional) image +type. +blob of binary image data, often accompanied by a MIME type or some other +content type string (e.g. 'png', 'jpeg', 'jpg'). Sometimes there is also an +'image type' to indicate what kind of image this is (e.g. front cover, +back cover, artist, etc.). The image data may also be an URI to the image +rather than the image itself. +In GStreamer, image tags are #GstBuffer<!-- -->s containing the raw image +data, with the buffer caps describing the content type of the image +(e.g. image/jpeg, image/png, text/uri-list). The buffer caps may contain +an additional 'image-type' field of #GST_TYPE_TAG_IMAGE_TYPE to describe +the type of image (front cover, back cover etc.). #GST_TAG_PREVIEW_IMAGE +tags should not carry an image type, their type is already indicated via +the special tag name. +This function will do various checks and typefind the encoded image +data (we can't trust the declared mime type)." + version="0.10.20"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="image_data" transfer-ownership="none" doc="image"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="image_data_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="image_type" transfer-ownership="none"> + <type name="TagImageType" c:type="GstTagImageType"/> + </parameter> + </parameters> + </function> + <function name="list_add_id3_image" + c:identifier="gst_tag_list_add_id3_image" + doc="the APIC frame (0 = unknown/other) +Adds an image from an ID3 APIC frame (or similar, such as used in FLAC) +to the given tag list. Also see gst_tag_image_data_to_image_buffer() for +more information on image tags in GStreamer." + version="0.10.20"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="tag_list" transfer-ownership="none"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="image_data" transfer-ownership="none" doc="image"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="image_data_len" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="id3_picture_type" + transfer-ownership="none" + doc="specification for"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="list_from_vorbiscomment_buffer" + c:identifier="gst_tag_list_from_vorbiscomment_buffer" + doc="of this vorbis comment or NULL if you don't need it. +Creates a new tag list that contains the information parsed out of a +vorbiscomment packet. +given vorbiscomment buffer or NULL on error."> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + <parameter name="id_data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="id_data_length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="vendor_string" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + </parameters> + </function> + <function name="list_from_xmp_buffer" + c:identifier="gst_tag_list_from_xmp_buffer" + doc="Parse a xmp packet into a taglist." + version="0.10.29"> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="buffer" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </function> + <function name="list_new_from_id3v1" + c:identifier="gst_tag_list_new_from_id3v1" + doc="Parses the data containing an ID3v1 tag and returns a #GstTagList from the +parsed data."> + <return-value transfer-ownership="full"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </return-value> + <parameters> + <parameter name="data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + </parameters> + </function> + <function name="list_to_vorbiscomment_buffer" + c:identifier="gst_tag_list_to_vorbiscomment_buffer" + doc="Creates a new vorbiscomment buffer from a tag list. +that could be converted from the given tag list."> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="id_data" transfer-ownership="none"> + <array c:type="guint8*"> + <type name="uint8"/> + </array> + </parameter> + <parameter name="id_data_length" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="vendor_string" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="list_to_xmp_buffer" + c:identifier="gst_tag_list_to_xmp_buffer" + doc="Formats a taglist as a xmp packet." + version="0.10.29"> + <return-value transfer-ownership="full"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="read_only" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="parse_extended_comment" + c:identifier="gst_tag_parse_extended_comment" + doc="Convenience function to parse a GST_TAG_EXTENDED_COMMENT string and +separate it into its components. +If successful, @key, @lang and/or @value will be set to newly allocated +strings that you need to free with g_free() when done. @key and @lang +may also be set to NULL by this function if there is no key or no language +code in the extended comment string." + version="0.10.10"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="ext_comment" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="key" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="lang" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="value" transfer-ownership="none"> + <array c:type="gchar**"> + <type name="utf8"/> + </array> + </parameter> + <parameter name="fail_if_no_key" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="register_musicbrainz_tags" + c:identifier="gst_tag_register_musicbrainz_tags"> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + </function> + <function name="to_id3_tag" + c:identifier="gst_tag_to_id3_tag" + doc="Looks up the ID3v2 tag for a GStreamer tag."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="gst_tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_vorbis_comments" + c:identifier="gst_tag_to_vorbis_comments" + doc="Creates a new tag list that contains the information parsed out of a +vorbiscomment packet. +g_list_foreach (list, (GFunc) g_free, NULL) plus g_list_free (list)"> + <return-value transfer-ownership="full"> + <type name="GLib.List" c:type="GList*"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="to_vorbis_tag" + c:identifier="gst_tag_to_vorbis_tag" + doc="Looks up the vorbiscomment tag for a GStreamer tag."> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </return-value> + <parameters> + <parameter name="gst_tag" transfer-ownership="none"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + <function name="vorbis_tag_add" + c:identifier="gst_vorbis_tag_add" + doc="Convenience function using gst_tag_from_vorbis_tag(), parsing +a vorbis comment string into the right type and adding it to the +given taglist @list. +Unknown vorbiscomment tags will be added to the tag list in form +of a #GST_TAG_EXTENDED_COMMENT (since 0.10.10 at least)."> + <return-value transfer-ownership="none"> + <type name="none" c:type="void"/> + </return-value> + <parameters> + <parameter name="list" transfer-ownership="none"> + <type name="Gst.TagList" c:type="GstTagList*"/> + </parameter> + <parameter name="tag" + transfer-ownership="none" + doc="must be valid UTF-8"> + <type name="utf8" c:type="gchar*"/> + </parameter> + <parameter name="value" + transfer-ownership="none" + doc="must be valid UTF-8"> + <type name="utf8" c:type="gchar*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/tag/ffi/ffi.factor b/basis/gstreamer/tag/ffi/ffi.factor new file mode 100644 index 0000000000..28eda35e8a --- /dev/null +++ b/basis/gstreamer/tag/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/tag/tag.factor b/basis/gstreamer/tag/tag.factor new file mode 100644 index 0000000000..30c6c97ed5 --- /dev/null +++ b/basis/gstreamer/tag/tag.factor @@ -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 + diff --git a/basis/gstreamer/tags.txt b/basis/gstreamer/tags.txt index bb863cf9a0..be30e2cdd4 100755 --- a/basis/gstreamer/tags.txt +++ b/basis/gstreamer/tags.txt @@ -1 +1,3 @@ bindings +audio +video diff --git a/basis/gstreamer/video/GstVideo-0.10.gir b/basis/gstreamer/video/GstVideo-0.10.gir new file mode 100644 index 0000000000..ff905a0d8f --- /dev/null +++ b/basis/gstreamer/video/GstVideo-0.10.gir @@ -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 'show-preroll-frame' property is set to #FALSE. +The video sink class structure. Derived classes should override the" + version="0.10.25"> + <field name="parent_class"> + <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/> + </field> + <field name="show_frame"> + <callback name="show_frame" c:type="show_frame"> + <return-value transfer-ownership="full"> + <type name="Gst.FlowReturn" c:type="GstFlowReturn"/> + </return-value> + <parameters> + <parameter name="video_sink" transfer-ownership="none"> + <type name="VideoSink" c:type="GstVideoSink*"/> + </parameter> + <parameter name="buf" transfer-ownership="none"> + <type name="Gst.Buffer" c:type="GstBuffer*"/> + </parameter> + </parameters> + </callback> + </field> + <field name="_gst_reserved"> + <array zero-terminated="0" c:type="gpointer" fixed-size="3"> + <type name="any"/> + </array> + </field> + </record> + <record name="VideoSinkPrivate" c:type="GstVideoSinkPrivate"> + </record> + <function name="calculate_display_ratio" + c:identifier="gst_video_calculate_display_ratio" + doc="Given the Pixel Aspect Ratio and size of an input video frame, and the +pixel aspect ratio of the intended display device, calculates the actual +display ratio the video will be rendered with. +dar_n and dar_d parameters. +The return value is FALSE in the case of integer overflow or other error." + version="0.10.7"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="dar_n" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + <parameter name="dar_d" direction="out" transfer-ownership="full"> + <type name="uint" c:type="guint*"/> + </parameter> + <parameter name="video_width" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="video_height" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="video_par_n" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="video_par_d" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="display_par_n" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + <parameter name="display_par_d" transfer-ownership="none"> + <type name="uint" c:type="guint"/> + </parameter> + </parameters> + </function> + <function name="event_new_still_frame" + c:identifier="gst_video_event_new_still_frame" + doc="Creates a new Still Frame event. If @in_still is %TRUE, then the event +represents the start of a still frame sequence. If it is %FALSE, then +the event ends a still frame sequence. +To parse an event created by gst_video_event_new_still_frame() use +gst_video_event_parse_still_frame()." + version="0.10.26"> + <return-value transfer-ownership="full"> + <type name="Gst.Event" c:type="GstEvent*"/> + </return-value> + <parameters> + <parameter name="in_still" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="event_parse_still_frame" + c:identifier="gst_video_event_parse_still_frame" + doc="Parse a #GstEvent, identify if it is a Still Frame event, and +return the still-frame state from the event if it is. +If the event represents the start of a still frame, the in_still +variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the +in_still variable order to just check whether the event is a valid still-frame +event. +Create a still frame event using gst_video_event_new_still_frame()" + version="0.10.26"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="event" transfer-ownership="none"> + <type name="Gst.Event" c:type="GstEvent*"/> + </parameter> + <parameter name="in_still" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="format_convert" + c:identifier="gst_video_format_convert" + doc="Converts among various #GstFormat types. This function handles +GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For +raw video, GST_FORMAT_DEFAULT corresponds to video frames. This +function can be to handle pad queries of the type GST_QUERY_CONVERT." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="fps_n" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="fps_d" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="src_format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="src_value" transfer-ownership="none"> + <type name="int64" c:type="gint64"/> + </parameter> + <parameter name="dest_format" transfer-ownership="none"> + <type name="Gst.Format" c:type="GstFormat"/> + </parameter> + <parameter name="dest_value" direction="out" transfer-ownership="full"> + <type name="int64" c:type="gint64*"/> + </parameter> + </parameters> + </function> + <function name="format_from_fourcc" + c:identifier="gst_video_format_from_fourcc" + doc="Converts a FOURCC value into the corresponding #GstVideoFormat. +If the FOURCC cannot be represented by #GstVideoFormat, +#GST_VIDEO_FORMAT_UNKNOWN is returned." + version="0.10.16"> + <return-value transfer-ownership="full"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </return-value> + <parameters> + <parameter name="fourcc" transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </parameter> + </parameters> + </function> + <function name="format_get_component_height" + c:identifier="gst_video_format_get_component_height" + doc="Calculates the height of the component. See +of the component index." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="component" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_get_component_offset" + c:identifier="gst_video_format_get_component_offset" + doc="Calculates the offset (in bytes) of the first pixel of the component +with index @component. For packed formats, this will typically be a +small integer (0, 1, 2, 3). For planar formats, this will be a +(relatively) large offset to the beginning of the second or third +component planes. See @gst_video_format_get_row_stride for a description +of the component index." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="component" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_get_component_width" + c:identifier="gst_video_format_get_component_width" + doc="Calculates the width of the component. See +of the component index." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="component" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_get_pixel_stride" + c:identifier="gst_video_format_get_pixel_stride" + doc="Calculates the pixel stride (number of bytes from one pixel to the +pixel to its immediate left) for the video component with an index +of @component. See @gst_video_format_get_row_stride for a description +of the component index." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="component" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_get_row_stride" + c:identifier="gst_video_format_get_row_stride" + doc="Calculates the row stride (number of bytes from one row of pixels to +the next) for the video component with an index of @component. For +YUV video, Y, U, and V have component indices of 0, 1, and 2, +respectively. For RGB video, R, G, and B have component indicies of +0, 1, and 2, respectively. Alpha channels, if present, have a component +index of 3. The @width parameter always represents the width of the +video, not the component." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="component" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_get_size" + c:identifier="gst_video_format_get_size" + doc="Calculates the total number of bytes in the raw video format. This +number should be used when allocating a buffer for raw video." + version="0.10.16"> + <return-value transfer-ownership="none" doc="of raw video format"> + <type name="int" c:type="int"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_has_alpha" + c:identifier="gst_video_format_has_alpha" + doc="Returns TRUE or FALSE depending on if the video format provides an +alpha channel." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + </parameters> + </function> + <function name="format_is_gray" + c:identifier="gst_video_format_is_gray" + doc="Determine whether the video format is a grayscale format." + version="0.10.29"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + </parameters> + </function> + <function name="format_is_rgb" + c:identifier="gst_video_format_is_rgb" + doc="Determine whether the video format is an RGB format." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + </parameters> + </function> + <function name="format_is_yuv" + c:identifier="gst_video_format_is_yuv" + doc="Determine whether the video format is a YUV format." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + </parameters> + </function> + <function name="format_new_caps" + c:identifier="gst_video_format_new_caps" + doc="Creates a new #GstCaps object based on the parameters provided." + version="0.10.16"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="framerate_n" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="framerate_d" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="par_n" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="par_d" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + </parameters> + </function> + <function name="format_new_caps_interlaced" + c:identifier="gst_video_format_new_caps_interlaced" + doc="Creates a new #GstCaps object based on the parameters provided." + version="0.10.23"> + <return-value transfer-ownership="full"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + <parameter name="width" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="height" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="framerate_n" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="framerate_d" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="par_n" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="par_d" transfer-ownership="none"> + <type name="int" c:type="int"/> + </parameter> + <parameter name="interlaced" transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </parameter> + </parameters> + </function> + <function name="format_parse_caps" + c:identifier="gst_video_format_parse_caps" + doc="Determines the #GstVideoFormat of @caps and places it in the location +pointed to by @format. Extracts the size of the video and places it +in the location pointed to by @width and @height. If @caps does not +represent one of the raw video formats listed in #GstVideoFormat, the +function will fail and return FALSE." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat*"/> + </parameter> + <parameter name="width" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + <parameter name="height" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + </parameters> + </function> + <function name="format_parse_caps_interlaced" + c:identifier="gst_video_format_parse_caps_interlaced" + doc="Extracts whether the caps represents interlaced content or not and places it +in @interlaced." + version="0.10.23"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="interlaced" direction="out" transfer-ownership="full"> + <type name="boolean" c:type="gboolean*"/> + </parameter> + </parameters> + </function> + <function name="format_to_fourcc" + c:identifier="gst_video_format_to_fourcc" + doc="Converts a #GstVideoFormat value into the corresponding FOURCC. Only +a few YUV formats have corresponding FOURCC values. If @format has +no corresponding FOURCC value, 0 is returned." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="uint32" c:type="guint32"/> + </return-value> + <parameters> + <parameter name="format" transfer-ownership="none"> + <type name="VideoFormat" c:type="GstVideoFormat"/> + </parameter> + </parameters> + </function> + <function name="frame_rate" + c:identifier="gst_video_frame_rate" + doc="A convenience function to retrieve a GValue holding the framerate +from the caps on a pad. +The pad needs to have negotiated caps containing a framerate property. +do not contain a framerate."> + <return-value transfer-ownership="none"> + <type name="GObject.Value" c:type="GValue*"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + </parameters> + </function> + <function name="get_size" + c:identifier="gst_video_get_size" + doc="Inspect the caps of the provided pad and retrieve the width and height of +the video frames it is configured for. +The pad needs to have negotiated caps containing width and height properties."> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="pad" transfer-ownership="none"> + <type name="Gst.Pad" c:type="GstPad*"/> + </parameter> + <parameter name="width" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + <parameter name="height" direction="out" transfer-ownership="full"> + <type name="int" c:type="gint*"/> + </parameter> + </parameters> + </function> + <function name="parse_caps_chroma_site" + c:identifier="gst_video_parse_caps_chroma_site" + doc="Extracts the chroma site used by the caps. Possible values are +"mpeg2" for MPEG-2 style chroma siting (co-sited horizontally, +halfway-sited vertically), "jpeg" for JPEG and Theora style +chroma siting (halfway-sited both horizontally and vertically). +Other chroma site values are possible, but uncommon. +When no chroma site is specified in the caps, it should be assumed +to be "mpeg2". +determined." + version="0.10.29"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="parse_caps_color_matrix" + c:identifier="gst_video_parse_caps_color_matrix" + doc="Extracts the color matrix used by the caps. Possible values are +"sdtv" for the standard definition color matrix (as specified in +Rec. ITU-R BT.470-6) or "hdtv" for the high definition color +matrix (as specified in Rec. ITU-R BT.709) +determined." + version="0.10.29"> + <return-value transfer-ownership="none"> + <type name="utf8" c:type="char*"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + </parameters> + </function> + <function name="parse_caps_framerate" + c:identifier="gst_video_parse_caps_framerate" + doc="Extracts the frame rate from @caps and places the values in the locations +pointed to by @fps_n and @fps_d. Returns TRUE if the values could be +parsed correctly, FALSE if not. +This function can be used with #GstCaps that have any media type; it +is not limited to formats handled by #GstVideoFormat." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="fps_n" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + <parameter name="fps_d" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + </parameters> + </function> + <function name="parse_caps_pixel_aspect_ratio" + c:identifier="gst_video_parse_caps_pixel_aspect_ratio" + doc="Extracts the pixel aspect ratio from @caps and places the values in +the locations pointed to by @par_n and @par_d. Returns TRUE if the +values could be parsed correctly, FALSE if not. +This function can be used with #GstCaps that have any media type; it +is not limited to formats handled by #GstVideoFormat." + version="0.10.16"> + <return-value transfer-ownership="none"> + <type name="boolean" c:type="gboolean"/> + </return-value> + <parameters> + <parameter name="caps" transfer-ownership="none"> + <type name="Gst.Caps" c:type="GstCaps*"/> + </parameter> + <parameter name="par_n" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + <parameter name="par_d" direction="out" transfer-ownership="full"> + <type name="int" c:type="int*"/> + </parameter> + </parameters> + </function> + </namespace> +</repository> diff --git a/basis/gstreamer/video/ffi/ffi.factor b/basis/gstreamer/video/ffi/ffi.factor new file mode 100644 index 0000000000..474c48b0b3 --- /dev/null +++ b/basis/gstreamer/video/ffi/ffi.factor @@ -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 + diff --git a/basis/gstreamer/video/video.factor b/basis/gstreamer/video/video.factor new file mode 100644 index 0000000000..fde33e9131 --- /dev/null +++ b/basis/gstreamer/video/video.factor @@ -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 +