diff options
author | Thibault Saunier <tsaunier@igalia.com> | 2018-05-17 12:15:46 -0400 |
---|---|---|
committer | Thibault Saunier <tsaunier@igalia.com> | 2018-06-05 10:33:49 -0400 |
commit | d3ad9cdfe4b1714ce0d9fb7b282add048e985d3c (patch) | |
tree | d8908faf614064ab99bc02280dc07b1d2b59f290 /girs/GstApp-1.0.gir | |
parent | 10f0476c9fd0bcb94062ca4776d87d9857747dd0 (diff) | |
download | gstreamer-d3ad9cdfe4b1714ce0d9fb7b282add048e985d3c.tar.gz |
Checkout gir files
Diffstat (limited to 'girs/GstApp-1.0.gir')
-rw-r--r-- | girs/GstApp-1.0.gir | 1935 |
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> |