summaryrefslogtreecommitdiff
path: root/girs/GstApp-1.0.gir
diff options
context:
space:
mode:
authorThibault Saunier <tsaunier@igalia.com>2018-05-17 12:15:46 -0400
committerThibault Saunier <tsaunier@igalia.com>2018-06-05 10:33:49 -0400
commitd3ad9cdfe4b1714ce0d9fb7b282add048e985d3c (patch)
treed8908faf614064ab99bc02280dc07b1d2b59f290 /girs/GstApp-1.0.gir
parent10f0476c9fd0bcb94062ca4776d87d9857747dd0 (diff)
downloadgstreamer-d3ad9cdfe4b1714ce0d9fb7b282add048e985d3c.tar.gz
Checkout gir files
Diffstat (limited to 'girs/GstApp-1.0.gir')
-rw-r--r--girs/GstApp-1.0.gir1935
1 files changed, 1935 insertions, 0 deletions
diff --git a/girs/GstApp-1.0.gir b/girs/GstApp-1.0.gir
new file mode 100644
index 0000000000..9913b72d62
--- /dev/null
+++ b/girs/GstApp-1.0.gir
@@ -0,0 +1,1935 @@
+<?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.2"
+ 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="Gst" version="1.0"/>
+ <include name="GstBase" version="1.0"/>
+ <package name="gstreamer-app-1.0"/>
+ <c:include name="gst/app/app.h"/>
+ <namespace name="GstApp"
+ version="1.0"
+ shared-library="libgstapp-1.0.so.0"
+ c:identifier-prefixes="Gst"
+ c:symbol-prefixes="gst">
+ <class name="AppSink"
+ c:symbol-prefix="app_sink"
+ c:type="GstAppSink"
+ parent="GstBase.BaseSink"
+ glib:type-name="GstAppSink"
+ glib:get-type="gst_app_sink_get_type"
+ glib:type-struct="AppSinkClass">
+ <doc xml:space="preserve">Appsink is a sink plugin that supports many different methods for making
+the application get a handle on the GStreamer data in a pipeline. Unlike
+most GStreamer elements, Appsink provides external API functions.
+
+appsink can be used by linking to the gstappsink.h header file to access the
+methods or by using the appsink action signals and properties.
+
+The normal way of retrieving samples from appsink is by using the
+gst_app_sink_pull_sample() and gst_app_sink_pull_preroll() methods.
+These methods block until a sample becomes available in the sink or when the
+sink is shut down or reaches EOS. There are also timed variants of these
+methods, gst_app_sink_try_pull_sample() and gst_app_sink_try_pull_preroll(),
+which accept a timeout parameter to limit the amount of time to wait.
+
+Appsink will internally use a queue to collect buffers from the streaming
+thread. If the application is not pulling samples fast enough, this queue
+will consume a lot of memory over time. The "max-buffers" property can be
+used to limit the queue size. The "drop" property controls whether the
+streaming thread blocks or if older buffers are dropped when the maximum
+queue size is reached. Note that blocking the streaming thread can negatively
+affect real-time performance and should be avoided.
+
+If a blocking behaviour is not desirable, setting the "emit-signals" property
+to %TRUE will make appsink emit the "new-sample" and "new-preroll" signals
+when a sample can be pulled without blocking.
+
+The "caps" property on appsink can be used to control the formats that
+appsink can receive. This property can contain non-fixed caps, the format of
+the pulled samples can be obtained by getting the sample caps.
+
+If one of the pull-preroll or pull-sample methods return %NULL, the appsink
+is stopped or in the EOS state. You can check for the EOS state with the
+"eos" property or with the gst_app_sink_is_eos() method.
+
+The eos signal can also be used to be informed when the EOS state is reached
+to avoid polling.</doc>
+ <implements name="Gst.URIHandler"/>
+ <virtual-method name="eos">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="new_preroll">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="new_sample">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="pull_preroll" invoker="pull_preroll">
+ <doc xml:space="preserve">Get the last preroll sample in @appsink. This was the sample that caused the
+appsink to preroll in the PAUSED state.
+
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the sample right
+after the seek position.
+
+Calling this function will clear the internal reference to the preroll
+buffer.
+
+Note that the preroll sample will also be returned as the first sample
+when calling gst_app_sink_pull_sample().
+
+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 sample or EOS is received or the appsink
+element is set to the READY/NULL state.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="pull_sample" invoker="pull_sample">
+ <doc xml:space="preserve">This function blocks until a sample or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+
+This function will only return samples when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull samples at its own rate. Note that when the application does not
+pull samples 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.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="try_pull_preroll"
+ invoker="try_pull_preroll"
+ version="1.10">
+ <doc xml:space="preserve">Get the last preroll sample in @appsink. This was the sample that caused the
+appsink to preroll in the PAUSED state.
+
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the sample right
+after the seek position.
+
+Calling this function will clear the internal reference to the preroll
+buffer.
+
+Note that the preroll sample will also be returned as the first sample
+when calling gst_app_sink_pull_sample().
+
+If an EOS event was received before any buffers or the timeout expires,
+this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS
+condition.
+
+This function blocks until a preroll sample or EOS is received, the appsink
+element is set to the READY/NULL state, or the timeout expires.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for the preroll sample</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="try_pull_sample"
+ invoker="try_pull_sample"
+ version="1.10">
+ <doc xml:space="preserve">This function blocks until a sample or EOS becomes available or the appsink
+element is set to the READY/NULL state or the timeout expires.
+
+This function will only return samples when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull samples at its own rate. Note that when the application does not
+pull samples 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 or the timeout expires,
+this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS
+condition.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.
+Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for a sample</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="get_buffer_list_support"
+ c:identifier="gst_app_sink_get_buffer_list_support"
+ version="1.12">
+ <doc xml:space="preserve">Check if @appsink supports buffer lists.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if @appsink supports buffer lists.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_caps" c:identifier="gst_app_sink_get_caps">
+ <doc xml:space="preserve">Get the configured caps on @appsink.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the #GstCaps accepted by the sink. gst_caps_unref() after usage.</doc>
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_drop" c:identifier="gst_app_sink_get_drop">
+ <doc xml:space="preserve">Check if @appsink will drop old buffers when the maximum amount of queued
+buffers is reached.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if @appsink is dropping old buffers when the queue is
+filled.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_emit_signals"
+ c:identifier="gst_app_sink_get_emit_signals">
+ <doc xml:space="preserve">Check if appsink will emit the "new-preroll" and "new-sample" signals.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if @appsink is emiting the "new-preroll" and "new-sample"
+signals.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_max_buffers"
+ c:identifier="gst_app_sink_get_max_buffers">
+ <doc xml:space="preserve">Get the maximum amount of buffers that can be queued in @appsink.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The maximum amount of buffers that can be queued.</doc>
+ <type name="guint" c:type="guint"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_wait_on_eos"
+ c:identifier="gst_app_sink_get_wait_on_eos">
+ <doc xml:space="preserve">Check if @appsink will wait for all buffers to be consumed when an EOS is
+received.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if @appsink will wait for all buffers to be consumed when an
+EOS is received.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="is_eos" c:identifier="gst_app_sink_is_eos">
+ <doc xml:space="preserve">Check if @appsink is EOS, which is when no more samples 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.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if no more samples can be pulled and the appsink is EOS.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="pull_preroll" c:identifier="gst_app_sink_pull_preroll">
+ <doc xml:space="preserve">Get the last preroll sample in @appsink. This was the sample that caused the
+appsink to preroll in the PAUSED state.
+
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the sample right
+after the seek position.
+
+Calling this function will clear the internal reference to the preroll
+buffer.
+
+Note that the preroll sample will also be returned as the first sample
+when calling gst_app_sink_pull_sample().
+
+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 sample or EOS is received or the appsink
+element is set to the READY/NULL state.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="pull_sample" c:identifier="gst_app_sink_pull_sample">
+ <doc xml:space="preserve">This function blocks until a sample or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+
+This function will only return samples when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull samples at its own rate. Note that when the application does not
+pull samples 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.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="set_buffer_list_support"
+ c:identifier="gst_app_sink_set_buffer_list_support"
+ version="1.12">
+ <doc xml:space="preserve">Instruct @appsink to enable or disable buffer list support.
+
+For backwards-compatibility reasons applications need to opt in
+to indicate that they will be able to handle buffer lists.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="enable_lists" transfer-ownership="none">
+ <doc xml:space="preserve">enable or disable buffer list support</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_callbacks"
+ c:identifier="gst_app_sink_set_callbacks"
+ introspectable="0">
+ <doc xml:space="preserve">Set callbacks which will be executed for each new preroll, new sample 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 emitted for performance
+reasons.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="callbacks" transfer-ownership="none">
+ <doc xml:space="preserve">the callbacks</doc>
+ <type name="AppSinkCallbacks" c:type="GstAppSinkCallbacks*"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">a user_data argument for the callbacks</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="async">
+ <doc xml:space="preserve">a destroy notify function</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_caps" c:identifier="gst_app_sink_set_caps">
+ <doc xml:space="preserve">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, or incomplete,
+you must check the caps on the samples to get the actual used caps.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">caps to set</doc>
+ <type name="Gst.Caps" c:type="const GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_drop" c:identifier="gst_app_sink_set_drop">
+ <doc xml:space="preserve">Instruct @appsink to drop old buffers when the maximum amount of queued
+buffers is reached.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="drop" transfer-ownership="none">
+ <doc xml:space="preserve">the new state</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_emit_signals"
+ c:identifier="gst_app_sink_set_emit_signals">
+ <doc xml:space="preserve">Make appsink emit the "new-preroll" and "new-sample" signals. This option is
+by default disabled because signal emission is expensive and unneeded when
+the application prefers to operate in pull mode.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="emit" transfer-ownership="none">
+ <doc xml:space="preserve">the new state</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_max_buffers"
+ c:identifier="gst_app_sink_set_max_buffers">
+ <doc xml:space="preserve">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 sample is pulled from @appsink.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="max" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum number of buffers to queue</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_wait_on_eos"
+ c:identifier="gst_app_sink_set_wait_on_eos">
+ <doc xml:space="preserve">Instruct @appsink to wait for all buffers to be consumed when an EOS is received.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="wait" transfer-ownership="none">
+ <doc xml:space="preserve">the new state</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="try_pull_preroll"
+ c:identifier="gst_app_sink_try_pull_preroll"
+ version="1.10">
+ <doc xml:space="preserve">Get the last preroll sample in @appsink. This was the sample that caused the
+appsink to preroll in the PAUSED state.
+
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the sample right
+after the seek position.
+
+Calling this function will clear the internal reference to the preroll
+buffer.
+
+Note that the preroll sample will also be returned as the first sample
+when calling gst_app_sink_pull_sample().
+
+If an EOS event was received before any buffers or the timeout expires,
+this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS
+condition.
+
+This function blocks until a preroll sample or EOS is received, the appsink
+element is set to the READY/NULL state, or the timeout expires.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for the preroll sample</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="try_pull_sample"
+ c:identifier="gst_app_sink_try_pull_sample"
+ version="1.10">
+ <doc xml:space="preserve">This function blocks until a sample or EOS becomes available or the appsink
+element is set to the READY/NULL state or the timeout expires.
+
+This function will only return samples when the appsink is in the PLAYING
+state. All rendered buffers will be put in a queue so that the application
+can pull samples at its own rate. Note that when the application does not
+pull samples 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 or the timeout expires,
+this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS
+condition.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.
+Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </instance-parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for a sample</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="buffer-list" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="caps" writable="1" transfer-ownership="none">
+ <type name="Gst.Caps"/>
+ </property>
+ <property name="drop" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="emit-signals" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="eos" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="max-buffers" writable="1" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </property>
+ <property name="wait-on-eos" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <field name="basesink">
+ <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
+ </field>
+ <field name="priv" readable="0" private="1">
+ <type name="AppSinkPrivate" c:type="GstAppSinkPrivate*"/>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ <glib:signal name="eos" when="last">
+ <doc xml:space="preserve">Signal that the end-of-stream has been reached. This signal is emitted from
+the streaming thread.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="new-preroll" when="last">
+ <doc xml:space="preserve">Signal that a new preroll sample is available.
+
+This signal is emitted from the streaming thread and only when the
+"emit-signals" property is %TRUE.
+
+The new preroll sample 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 emitted when the "emit-signals" property is
+set to %TRUE, which it is not by default for performance reasons.</doc>
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="new-sample" when="last">
+ <doc xml:space="preserve">Signal that a new sample is available.
+
+This signal is emitted from the streaming thread and only when the
+"emit-signals" property is %TRUE.
+
+The new sample can be retrieved with the "pull-sample" action
+signal or gst_app_sink_pull_sample() either from this signal callback
+or from any other thread.
+
+Note that this signal is only emitted when the "emit-signals" property is
+set to %TRUE, which it is not by default for performance reasons.</doc>
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="pull-preroll" when="last" action="1">
+ <doc xml:space="preserve">Get the last preroll sample in @appsink. This was the sample that caused the
+appsink to preroll in the PAUSED state.
+
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the sample right
+after the seek position.
+
+Calling this function will clear the internal reference to the preroll
+buffer.
+
+Note that the preroll sample will also be returned as the first sample
+when calling gst_app_sink_pull_sample() or the "pull-sample" 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 sample or EOS is received or the appsink
+element is set to the READY/NULL state.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.</doc>
+ <type name="Gst.Sample"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="pull-sample" when="last" action="1">
+ <doc xml:space="preserve">This function blocks until a sample or EOS becomes available or the appsink
+element is set to the READY/NULL state.
+
+This function will only return samples when the appsink is in the PLAYING
+state. All rendered samples will be put in a queue so that the application
+can pull samples at its own rate.
+
+Note that when the application does not pull samples fast enough, the
+queued samples 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.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.</doc>
+ <type name="Gst.Sample"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="try-pull-preroll"
+ when="last"
+ action="1"
+ version="1.10">
+ <doc xml:space="preserve">Get the last preroll sample in @appsink. This was the sample that caused the
+appsink to preroll in the PAUSED state.
+
+This function is typically used when dealing with a pipeline in the PAUSED
+state. Calling this function after doing a seek will give the sample right
+after the seek position.
+
+Calling this function will clear the internal reference to the preroll
+buffer.
+
+Note that the preroll sample will also be returned as the first sample
+when calling gst_app_sink_pull_sample() or the "pull-sample" action signal.
+
+If an EOS event was received before any buffers or the timeout expires,
+this function returns %NULL. Use gst_app_sink_is_eos () to check for the EOS
+condition.
+
+This function blocks until a preroll sample or EOS is received, the appsink
+element is set to the READY/NULL state, or the timeout expires.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.</doc>
+ <type name="Gst.Sample"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for the preroll sample</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="try-pull-sample"
+ when="last"
+ action="1"
+ version="1.10">
+ <doc xml:space="preserve">This function blocks until a sample or EOS becomes available or the appsink
+element is set to the READY/NULL state or the timeout expires.
+
+This function will only return samples when the appsink is in the PLAYING
+state. All rendered samples will be put in a queue so that the application
+can pull samples at its own rate.
+
+Note that when the application does not pull samples fast enough, the
+queued samples 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 or the timeout expires,
+this function returns %NULL. Use gst_app_sink_is_eos () to check
+for the EOS condition.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.</doc>
+ <type name="Gst.Sample"/>
+ </return-value>
+ <parameters>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for a sample</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="AppSinkCallbacks"
+ c:type="GstAppSinkCallbacks"
+ introspectable="0">
+ <doc xml:space="preserve">A set of callbacks that can be installed on the appsink with
+gst_app_sink_set_callbacks().</doc>
+ <field name="eos">
+ <callback name="eos">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ closure="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_preroll">
+ <callback name="new_preroll">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ closure="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_sample">
+ <callback name="new_sample">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ closure="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="gpointer" c:type="gpointer"/>
+ </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">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_preroll">
+ <callback name="new_preroll">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="new_sample">
+ <callback name="new_sample">
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pull_preroll">
+ <callback name="pull_preroll">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="pull_sample">
+ <callback name="pull_sample">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="try_pull_preroll">
+ <callback name="try_pull_preroll">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.
+ Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for the preroll sample</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="try_pull_sample">
+ <callback name="try_pull_sample">
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">a #GstSample or NULL when the appsink is stopped or EOS or the timeout expires.
+Call gst_sample_unref() after usage.</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsink" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSink</doc>
+ <type name="AppSink" c:type="GstAppSink*"/>
+ </parameter>
+ <parameter name="timeout" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum amount of time to wait for a sample</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ </record>
+ <record name="AppSinkPrivate" c:type="GstAppSinkPrivate" disguised="1">
+ </record>
+ <class name="AppSrc"
+ c:symbol-prefix="app_src"
+ c:type="GstAppSrc"
+ parent="GstBase.BaseSrc"
+ glib:type-name="GstAppSrc"
+ glib:get-type="gst_app_src_get_type"
+ glib:type-struct="AppSrcClass">
+ <doc xml:space="preserve">The appsrc element can be used by applications to insert data into a
+GStreamer pipeline. Unlike most GStreamer elements, appsrc provides
+external API functions.
+
+appsrc can be used by linking with the libgstapp library to access the
+methods directly or by using the appsrc action signals.
+
+Before operating appsrc, the caps property must be set to fixed caps
+describing the format of the data that will be pushed with appsrc. An
+exception to this is when pushing buffers with unknown caps, in which case no
+caps should be set. This is typically true of file-like sources that push raw
+byte buffers. If you don't want to explicitly set the caps, you can use
+gst_app_src_push_sample. This method gets the caps associated with the
+sample and sets them on the appsrc replacing any previously set caps (if
+different from sample's caps).
+
+The main way of handing data to the appsrc element is by calling the
+gst_app_src_push_buffer() method or by emitting the push-buffer action signal.
+This will put the buffer onto a queue from which appsrc will read from in its
+streaming thread. It is important to note that data transport will not happen
+from the thread that performed the push-buffer call.
+
+The "max-bytes" property controls how much data can be queued in appsrc
+before appsrc considers the queue full. A filled internal queue will always
+signal the "enough-data" signal, which signals the application that it should
+stop pushing data into appsrc. The "block" property will cause appsrc to
+block the push-buffer method until free data becomes available again.
+
+When the internal queue is running out of data, the "need-data" signal is
+emitted, which signals the application that it should start pushing more data
+into appsrc.
+
+In addition to the "need-data" and "enough-data" signals, appsrc can emit the
+"seek-data" signal when the "stream-mode" property is set to "seekable" or
+"random-access". The signal argument will contain the new desired position in
+the stream expressed in the unit set with the "format" property. After
+receiving the seek-data signal, the application should push-buffers from the
+new position.
+
+These signals allow the application to operate the appsrc in two different
+ways:
+
+The push mode, in which the application repeatedly calls the push-buffer/push-sample
+method with a new buffer/sample. Optionally, the queue size in the appsrc
+can be controlled with the enough-data and need-data signals by respectively
+stopping/starting the push-buffer/push-sample calls. This is a typical
+mode of operation for the stream-type "stream" and "seekable". Use this
+mode when implementing various network protocols or hardware devices.
+
+The pull mode, in which the need-data signal triggers the next push-buffer call.
+This mode is typically used in the "random-access" stream-type. Use this
+mode for file access or other randomly accessable sources. In this mode, a
+buffer of exactly the amount of bytes given by the need-data signal should be
+pushed into appsrc.
+
+In all modes, the size property on appsrc should contain the total stream
+size in bytes. Setting this property is mandatory in the random-access mode.
+For the stream and seekable modes, setting this property is optional but
+recommended.
+
+When the application has finished pushing data into appsrc, it should call
+gst_app_src_end_of_stream() or emit the end-of-stream action signal. After
+this call, no more buffers can be pushed into appsrc until a flushing seek
+occurs or the state of the appsrc has gone through READY.</doc>
+ <implements name="Gst.URIHandler"/>
+ <virtual-method name="end_of_stream" invoker="end_of_stream">
+ <doc xml:space="preserve">Indicates to the appsrc element that the last buffer queued in the
+element is the last buffer of the stream.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the EOS was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="enough_data">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="need_data">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="push_buffer" invoker="push_buffer">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="buffer" transfer-ownership="full">
+ <doc xml:space="preserve">a #GstBuffer to push</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="push_buffer_list"
+ invoker="push_buffer_list"
+ version="1.14">
+ <doc xml:space="preserve">Adds a buffer list to the queue of buffers and buffer lists that the
+appsrc element will push to its source pad. This function takes ownership
+of @buffer_list.
+
+When the block property is TRUE, this function can block until free
+space becomes available in the queue.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer list was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="buffer_list" transfer-ownership="full">
+ <doc xml:space="preserve">a #GstBufferList to push</doc>
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="push_sample" invoker="push_sample" version="1.6">
+ <doc xml:space="preserve">Extract a buffer from the provided sample and adds it to the queue of
+buffers that the appsrc element will push to its source pad. Any
+previous caps that were set on appsrc will be replaced by the caps
+associated with the sample if not equal.
+
+When the block property is TRUE, this function can block until free
+space becomes available in the queue.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstSample from which buffer and caps may be
+extracted</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <virtual-method name="seek_data">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </virtual-method>
+ <method name="end_of_stream" c:identifier="gst_app_src_end_of_stream">
+ <doc xml:space="preserve">Indicates to the appsrc element that the last buffer queued in the
+element is the last buffer of the stream.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the EOS was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_caps" c:identifier="gst_app_src_get_caps">
+ <doc xml:space="preserve">Get the configured caps on @appsrc.</doc>
+ <return-value transfer-ownership="full">
+ <doc xml:space="preserve">the #GstCaps produced by the source. gst_caps_unref() after usage.</doc>
+ <type name="Gst.Caps" c:type="GstCaps*"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_current_level_bytes"
+ c:identifier="gst_app_src_get_current_level_bytes"
+ version="1.2">
+ <doc xml:space="preserve">Get the number of currently queued bytes inside @appsrc.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The number of currently queued bytes.</doc>
+ <type name="guint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_duration"
+ c:identifier="gst_app_src_get_duration"
+ version="1.10">
+ <doc xml:space="preserve">Get the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
+not known.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">the duration of the stream previously set with gst_app_src_set_duration();</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_emit_signals"
+ c:identifier="gst_app_src_get_emit_signals">
+ <doc xml:space="preserve">Check if appsrc will emit the "new-preroll" and "new-buffer" signals.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if @appsrc is emitting the "new-preroll" and "new-buffer"
+signals.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_latency" c:identifier="gst_app_src_get_latency">
+ <doc xml:space="preserve">Retrieve the min and max latencies in @min and @max respectively.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="min"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">the min latency</doc>
+ <type name="guint64" c:type="guint64*"/>
+ </parameter>
+ <parameter name="max"
+ direction="out"
+ caller-allocates="0"
+ transfer-ownership="full">
+ <doc xml:space="preserve">the max latency</doc>
+ <type name="guint64" c:type="guint64*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="get_max_bytes" c:identifier="gst_app_src_get_max_bytes">
+ <doc xml:space="preserve">Get the maximum amount of bytes that can be queued in @appsrc.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">The maximum amount of bytes that can be queued.</doc>
+ <type name="guint64" c:type="guint64"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_size" c:identifier="gst_app_src_get_size">
+ <doc xml:space="preserve">Get the size of the stream in bytes. A value of -1 means that the size is
+not known.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">the size of the stream previously set with gst_app_src_set_size();</doc>
+ <type name="gint64" c:type="gint64"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="get_stream_type"
+ c:identifier="gst_app_src_get_stream_type">
+ <doc xml:space="preserve">Get the stream type. Control the stream type of @appsrc
+with gst_app_src_set_stream_type().</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">the stream type.</doc>
+ <type name="AppStreamType" c:type="GstAppStreamType"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ </parameters>
+ </method>
+ <method name="push_buffer" c:identifier="gst_app_src_push_buffer">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="buffer" transfer-ownership="full">
+ <doc xml:space="preserve">a #GstBuffer to push</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push_buffer_list"
+ c:identifier="gst_app_src_push_buffer_list"
+ version="1.14">
+ <doc xml:space="preserve">Adds a buffer list to the queue of buffers and buffer lists that the
+appsrc element will push to its source pad. This function takes ownership
+of @buffer_list.
+
+When the block property is TRUE, this function can block until free
+space becomes available in the queue.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer list was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="buffer_list" transfer-ownership="full">
+ <doc xml:space="preserve">a #GstBufferList to push</doc>
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="push_sample"
+ c:identifier="gst_app_src_push_sample"
+ version="1.6">
+ <doc xml:space="preserve">Extract a buffer from the provided sample and adds it to the queue of
+buffers that the appsrc element will push to its source pad. Any
+previous caps that were set on appsrc will be replaced by the caps
+associated with the sample if not equal.
+
+When the block property is TRUE, this function can block until free
+space becomes available in the queue.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstSample from which buffer and caps may be
+extracted</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_callbacks"
+ c:identifier="gst_app_src_set_callbacks"
+ introspectable="0">
+ <doc xml:space="preserve">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 emitted for performance
+reasons.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="callbacks" transfer-ownership="none">
+ <doc xml:space="preserve">the callbacks</doc>
+ <type name="AppSrcCallbacks" c:type="GstAppSrcCallbacks*"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1">
+ <doc xml:space="preserve">a user_data argument for the callbacks</doc>
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ <parameter name="notify" transfer-ownership="none" scope="async">
+ <doc xml:space="preserve">a destroy notify function</doc>
+ <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_caps" c:identifier="gst_app_src_set_caps">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="caps" transfer-ownership="none">
+ <doc xml:space="preserve">caps to set</doc>
+ <type name="Gst.Caps" c:type="const GstCaps*"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_duration"
+ c:identifier="gst_app_src_set_duration"
+ version="1.10">
+ <doc xml:space="preserve">Set the duration of the stream in nanoseconds. A value of GST_CLOCK_TIME_NONE means that the duration is
+not known.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="duration" transfer-ownership="none">
+ <doc xml:space="preserve">the duration to set</doc>
+ <type name="Gst.ClockTime" c:type="GstClockTime"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_emit_signals"
+ c:identifier="gst_app_src_set_emit_signals">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="emit" transfer-ownership="none">
+ <doc xml:space="preserve">the new state</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_latency" c:identifier="gst_app_src_set_latency">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="min" transfer-ownership="none">
+ <doc xml:space="preserve">the min latency</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="max" transfer-ownership="none">
+ <doc xml:space="preserve">the max latency</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_max_bytes" c:identifier="gst_app_src_set_max_bytes">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="max" transfer-ownership="none">
+ <doc xml:space="preserve">the maximum number of bytes to queue</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_size" c:identifier="gst_app_src_set_size">
+ <doc xml:space="preserve">Set the size of the stream in bytes. A value of -1 means that the size is
+not known.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="size" transfer-ownership="none">
+ <doc xml:space="preserve">the size to set</doc>
+ <type name="gint64" c:type="gint64"/>
+ </parameter>
+ </parameters>
+ </method>
+ <method name="set_stream_type"
+ c:identifier="gst_app_src_set_stream_type">
+ <doc xml:space="preserve">Set the stream type on @appsrc. For seekable streams, the "seek" signal must
+be connected to.
+
+A stream_type stream</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <instance-parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </instance-parameter>
+ <parameter name="type" transfer-ownership="none">
+ <doc xml:space="preserve">the new state</doc>
+ <type name="AppStreamType" c:type="GstAppStreamType"/>
+ </parameter>
+ </parameters>
+ </method>
+ <property name="block" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="caps" writable="1" transfer-ownership="none">
+ <type name="Gst.Caps"/>
+ </property>
+ <property name="current-level-bytes" transfer-ownership="none">
+ <type name="guint64" c:type="guint64"/>
+ </property>
+ <property name="duration" writable="1" transfer-ownership="none">
+ <type name="guint64" c:type="guint64"/>
+ </property>
+ <property name="emit-signals" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="format" writable="1" transfer-ownership="none">
+ <type name="Gst.Format"/>
+ </property>
+ <property name="is-live" writable="1" transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </property>
+ <property name="max-bytes" writable="1" transfer-ownership="none">
+ <type name="guint64" c:type="guint64"/>
+ </property>
+ <property name="max-latency" writable="1" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ <property name="min-latency" writable="1" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ <property name="min-percent" writable="1" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </property>
+ <property name="size" writable="1" transfer-ownership="none">
+ <type name="gint64" c:type="gint64"/>
+ </property>
+ <property name="stream-type" writable="1" transfer-ownership="none">
+ <type name="AppStreamType"/>
+ </property>
+ <field name="basesrc">
+ <type name="GstBase.BaseSrc" c:type="GstBaseSrc"/>
+ </field>
+ <field name="priv" readable="0" private="1">
+ <type name="AppSrcPrivate" c:type="GstAppSrcPrivate*"/>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ <glib:signal name="end-of-stream" when="last" action="1">
+ <doc xml:space="preserve">Notify @appsrc that no more buffer are available.</doc>
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="enough-data" when="last">
+ <doc xml:space="preserve">Signal that the source has enough data. It is recommended that the
+application stops calling push-buffer until the need-data signal is
+emitted again to avoid excessive buffer queueing.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ </glib:signal>
+ <glib:signal name="need-data" when="last">
+ <doc xml:space="preserve">Signal that the source needs more data. In the callback or from another
+thread you should call push-buffer or end-of-stream.
+
+@length is just a hint and when it is set to -1, any number of bytes can be
+pushed into @appsrc.
+
+You can call push-buffer multiple times until the enough-data signal is
+fired.</doc>
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="length" transfer-ownership="none">
+ <doc xml:space="preserve">the amount of bytes needed.</doc>
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="push-buffer" when="last" action="1">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer" transfer-ownership="none">
+ <doc xml:space="preserve">a buffer to push</doc>
+ <type name="Gst.Buffer"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="push-buffer-list"
+ when="last"
+ action="1"
+ version="1.14">
+ <doc xml:space="preserve">Adds a buffer list to the queue of buffers and buffer lists that the
+appsrc element will push to its source pad. This function does not take
+ownership of the buffer list so the buffer list 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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="buffer_list" transfer-ownership="none">
+ <doc xml:space="preserve">a buffer list to push</doc>
+ <type name="Gst.BufferList"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="push-sample" when="last" action="1" version="1.6">
+ <doc xml:space="preserve">Extract a buffer from the provided sample and adds the extracted buffer
+to the queue of buffers that the appsrc element will
+push to its source pad. This function set the appsrc caps based on the caps
+in the sample and reset the caps if they change.
+Only the caps and the buffer of the provided sample are used and not
+for example the segment in the sample.
+This function does not take ownership of the
+sample so the sample 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.</doc>
+ <return-value transfer-ownership="none">
+ <type name="Gst.FlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">a sample from which extract buffer to push</doc>
+ <type name="Gst.Sample"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ <glib:signal name="seek-data" when="last">
+ <doc xml:space="preserve">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.</doc>
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">%TRUE if the seek succeeded.</doc>
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="offset" transfer-ownership="none">
+ <doc xml:space="preserve">the offset to seek to</doc>
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </glib:signal>
+ </class>
+ <record name="AppSrcCallbacks"
+ c:type="GstAppSrcCallbacks"
+ introspectable="0">
+ <doc xml:space="preserve">A set of callbacks that can be installed on the appsrc with
+gst_app_src_set_callbacks().</doc>
+ <field name="need_data">
+ <callback name="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="guint" c:type="guint"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ closure="2">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="enough_data">
+ <callback name="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>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ closure="1">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="seek_data">
+ <callback name="seek_data">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" 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="guint64" c:type="guint64"/>
+ </parameter>
+ <parameter name="user_data"
+ transfer-ownership="none"
+ nullable="1"
+ allow-none="1"
+ closure="2">
+ <type name="gpointer" c:type="gpointer"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="4">
+ <type name="gpointer" c:type="gpointer"/>
+ </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">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="length" transfer-ownership="none">
+ <type name="guint" c:type="guint"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="enough_data">
+ <callback name="enough_data">
+ <return-value transfer-ownership="none">
+ <type name="none" c:type="void"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="seek_data">
+ <callback name="seek_data">
+ <return-value transfer-ownership="none">
+ <type name="gboolean" c:type="gboolean"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="offset" transfer-ownership="none">
+ <type name="guint64" c:type="guint64"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="push_buffer">
+ <callback name="push_buffer">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="buffer" transfer-ownership="full">
+ <doc xml:space="preserve">a #GstBuffer to push</doc>
+ <type name="Gst.Buffer" c:type="GstBuffer*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="end_of_stream">
+ <callback name="end_of_stream">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the EOS was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="push_sample">
+ <callback name="push_sample">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="sample" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstSample from which buffer and caps may be
+extracted</doc>
+ <type name="Gst.Sample" c:type="GstSample*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="push_buffer_list">
+ <callback name="push_buffer_list">
+ <return-value transfer-ownership="none">
+ <doc xml:space="preserve">#GST_FLOW_OK when the buffer list was successfuly queued.
+#GST_FLOW_FLUSHING when @appsrc is not PAUSED or PLAYING.
+#GST_FLOW_EOS when EOS occured.</doc>
+ <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
+ </return-value>
+ <parameters>
+ <parameter name="appsrc" transfer-ownership="none">
+ <doc xml:space="preserve">a #GstAppSrc</doc>
+ <type name="AppSrc" c:type="GstAppSrc*"/>
+ </parameter>
+ <parameter name="buffer_list" transfer-ownership="full">
+ <doc xml:space="preserve">a #GstBufferList to push</doc>
+ <type name="Gst.BufferList" c:type="GstBufferList*"/>
+ </parameter>
+ </parameters>
+ </callback>
+ </field>
+ <field name="_gst_reserved" readable="0" private="1">
+ <array zero-terminated="0" c:type="gpointer" fixed-size="2">
+ <type name="gpointer" c:type="gpointer"/>
+ </array>
+ </field>
+ </record>
+ <record name="AppSrcPrivate" c:type="GstAppSrcPrivate" disguised="1">
+ </record>
+ <enumeration name="AppStreamType"
+ glib:type-name="GstAppStreamType"
+ glib:get-type="gst_app_stream_type_get_type"
+ c:type="GstAppStreamType">
+ <doc xml:space="preserve">The stream type.</doc>
+ <member name="stream"
+ value="0"
+ c:identifier="GST_APP_STREAM_TYPE_STREAM"
+ glib:nick="stream">
+ <doc xml:space="preserve">No seeking is supported in the stream, such as a
+live stream.</doc>
+ </member>
+ <member name="seekable"
+ value="1"
+ c:identifier="GST_APP_STREAM_TYPE_SEEKABLE"
+ glib:nick="seekable">
+ <doc xml:space="preserve">The stream is seekable but seeking might not
+be very fast, such as data from a webserver.</doc>
+ </member>
+ <member name="random_access"
+ value="2"
+ c:identifier="GST_APP_STREAM_TYPE_RANDOM_ACCESS"
+ glib:nick="random-access">
+ <doc xml:space="preserve">The stream is seekable and seeking is fast,
+such as in a local file.</doc>
+ </member>
+ </enumeration>
+ </namespace>
+</repository>