12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511 |
- <?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.
- 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 sample can be pulled many times
- and remains available to the application even after EOS.
- This function is typically used when dealing with a pipeline in the PAUSED
- state. Calling this function after doing a seek will give the sample right
- after the seek position.
- 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>
- <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 sample can be pulled many times
- and remains available to the application even after EOS.
- This function is typically used when dealing with a pipeline in the PAUSED
- state. Calling this function after doing a seek will give the sample right
- after the seek position.
- 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_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>
- <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 sample can be pulled many times
- and remains available to the application even after EOS.
- This function is typically used when dealing with a pipeline in the PAUSED
- state. Calling this function after doing a seek will give the sample right
- after the seek position.
- 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>
- </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="_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="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_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_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" 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 min 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_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_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 min 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="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-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="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="3">
- <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>
|