1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661 |
- <?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"/>
- <package name="gstreamer-check-1.0"/>
- <c:include name="gst/check/check.h"/>
- <namespace name="GstCheck"
- version="1.0"
- shared-library="libgstcheck-1.0.so.0"
- c:identifier-prefixes="Gst"
- c:symbol-prefixes="gst">
- <record name="CheckABIStruct" c:type="GstCheckABIStruct">
- <field name="name" writable="1">
- <type name="utf8" c:type="const char*"/>
- </field>
- <field name="size" writable="1">
- <type name="gint" c:type="int"/>
- </field>
- <field name="abi_size" writable="1">
- <type name="gint" c:type="int"/>
- </field>
- </record>
- <record name="Harness" c:type="GstHarness" version="1.6">
- <doc xml:space="preserve">#GstHarness is meant to make writing unit test for GStreamer much easier.
- It can be thought of as a way of treating a #GstElement as a black box,
- deterministically feeding it data, and controlling what data it outputs.
- The basic structure of #GstHarness is two "floating" #GstPads that connect
- to the harnessed #GstElement src and sink #GstPads like so:
- <programlisting>
- __________________________
- _____ | _____ _____ | _____
- | | | | | | | | | |
- | src |--+-| sink| Element | src |-+--| sink|
- |_____| | |_____| |_____| | |_____|
- |__________________________|
- </programlisting>
- With this, you can now simulate any environment the #GstElement might find
- itself in. By specifying the #GstCaps of the harness #GstPads, using
- functions like gst_harness_set_src_caps() or gst_harness_set_sink_caps_str(),
- you can test how the #GstElement interacts with different caps sets.
- Your harnessed #GstElement can of course also be a bin, and using
- gst_harness_new_parse() supporting standard gst-launch syntax, you can
- easily test a whole pipeline instead of just one element.
- You can then go on to push #GstBuffers and #GstEvents on to the srcpad,
- using functions like gst_harness_push() and gst_harness_push_event(), and
- then pull them out to examine them with gst_harness_pull() and
- gst_harness_pull_event().
- <example>
- <title>A simple buffer-in buffer-out example</title>
- <programlisting language="c">
- #include &lt;gst/gst.h&gt;
- #include &lt;gst/check/gstharness.h&gt;
- GstHarness *h;
- GstBuffer *in_buf;
- GstBuffer *out_buf;
- // attach the harness to the src and sink pad of GstQueue
- h = gst_harness_new ("queue");
- // we must specify a caps before pushing buffers
- gst_harness_set_src_caps_str (h, "mycaps");
- // create a buffer of size 42
- in_buf = gst_harness_create_buffer (h, 42);
- // push the buffer into the queue
- gst_harness_push (h, in_buf);
- // pull the buffer from the queue
- out_buf = gst_harness_pull (h);
- // validate the buffer in is the same as buffer out
- fail_unless (in_buf == out_buf);
- // cleanup
- gst_buffer_unref (out_buf);
- gst_harness_teardown (h);
- </programlisting>
- </example>
- Another main feature of the #GstHarness is its integration with the
- #GstTestClock. Operating the #GstTestClock can be very challenging, but
- #GstHarness simplifies some of the most desired actions a lot, like wanting
- to manually advance the clock while at the same time releasing a #GstClockID
- that is waiting, with functions like gst_harness_crank_single_clock_wait().
- #GstHarness also supports sub-harnesses, as a way of generating and
- validating data. A sub-harness is another #GstHarness that is managed by
- the "parent" harness, and can either be created by using the standard
- gst_harness_new type functions directly on the (GstHarness *)->src_harness,
- or using the much more convenient gst_harness_add_src() or
- gst_harness_add_sink_parse(). If you have a decoder-element you want to test,
- (like vp8dec) it can be very useful to add a src-harness with both a
- src-element (videotestsrc) and an encoder (vp8enc) to feed the decoder data
- with different configurations, by simply doing:
- <example>
- <programlisting language="c">
- GstHarness * h = gst_harness_new (h, "vp8dec");
- gst_harness_add_src_parse (h, "videotestsrc is-live=1 ! vp8enc", TRUE);
- </programlisting>
- </example>
- and then feeding it data with:
- <example>
- <programlisting language="c">
- gst_harness_push_from_src (h);
- </programlisting>
- </example></doc>
- <field name="element" writable="1">
- <doc xml:space="preserve">the element inside the harness</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </field>
- <field name="srcpad" writable="1">
- <doc xml:space="preserve">the internal harness source pad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </field>
- <field name="sinkpad" writable="1">
- <doc xml:space="preserve">the internal harness sink pad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </field>
- <field name="src_harness" writable="1">
- <doc xml:space="preserve">the source (input) harness (if any)</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </field>
- <field name="sink_harness" writable="1">
- <doc xml:space="preserve">the sink (output) harness (if any)</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="HarnessPrivate" c:type="GstHarnessPrivate*"/>
- </field>
- <method name="add_element_full"
- c:identifier="gst_harness_add_element_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Adds a #GstElement to an empty #GstHarness
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to add to the harness (transfer none)</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="hsrc"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness srcpad.
- %NULL will not create a harness srcpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. Can be a static or request
- or a sometimes pad that has been added. %NULL will not get/request a sinkpad
- from the element. (Like if the element is a src.)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="hsink"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness sinkpad.
- %NULL will not create a harness sinkpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad, similar to the
- @element_sinkpad_name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_element_sink_pad"
- c:identifier="gst_harness_add_element_sink_pad"
- version="1.6">
- <doc xml:space="preserve">Links the specifed #GstPad the @GstHarness srcpad.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="sinkpad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to link to the harness srcpad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_element_src_pad"
- c:identifier="gst_harness_add_element_src_pad"
- version="1.6">
- <doc xml:space="preserve">Links the specifed #GstPad the @GstHarness sinkpad. This can be useful if
- perhaps the srcpad did not exist at the time of creating the harness,
- like a demuxer that provides a sometimes-pad after receiving data.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPad to link to the harness sinkpad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_parse"
- c:identifier="gst_harness_add_parse"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Parses the @launchline and puts that in a #GstBin,
- and then attches the supplied #GstHarness to the bin.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="launchline" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing a gst-launch type line</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_probe"
- c:identifier="gst_harness_add_probe"
- version="1.6">
- <doc xml:space="preserve">A convenience function to allows you to call gst_pad_add_probe on a
- #GstPad of a #GstElement that are residing inside the #GstHarness,
- by using normal gst_pad_add_probe syntax
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with a #GstElementFactory name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="pad_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with the name of the pad to attach the probe to</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="mask" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadProbeType (see gst_pad_add_probe)</doc>
- <type name="Gst.PadProbeType" c:type="GstPadProbeType"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="4"
- destroy="5">
- <doc xml:space="preserve">a #GstPadProbeCallback (see gst_pad_add_probe)</doc>
- <type name="Gst.PadProbeCallback" c:type="GstPadProbeCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer (see gst_pad_add_probe)</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_data"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">a #GDestroyNotify (see gst_pad_add_probe)</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_sink"
- c:identifier="gst_harness_add_sink"
- version="1.6">
- <doc xml:space="preserve">Similar to gst_harness_add_sink_harness, this is a convenience to
- directly create a sink-harness using the @sink_element_name name specified.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="sink_element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with the name of a #GstElement</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_sink_harness"
- c:identifier="gst_harness_add_sink_harness"
- version="1.6">
- <doc xml:space="preserve">Similar to gst_harness_add_src, this allows you to send the data coming out
- of your harnessed #GstElement to a sink-element, allowing to test different
- responses the element output might create in sink elements. An example might
- be an existing sink providing some analytical data on the input it receives that
- can be useful to your testing. If the goal is to test a sink-element itself,
- this is better acheived using gst_harness_new directly on the sink.
- If a sink-harness already exists it will be replaced.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="sink_harness" transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness to be added as a sink-harness.</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_sink_parse"
- c:identifier="gst_harness_add_sink_parse"
- version="1.6">
- <doc xml:space="preserve">Similar to gst_harness_add_sink, this allows you to specify a launch-line
- instead of just an element name. See gst_harness_add_src_parse for details.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="launchline" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with the name of a #GstElement</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_src" c:identifier="gst_harness_add_src" version="1.6">
- <doc xml:space="preserve">Similar to gst_harness_add_src_harness, this is a convenience to
- directly create a src-harness using the @src_element_name name specified.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="src_element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with the name of a #GstElement</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="has_clock_wait" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean specifying if the #GstElement uses
- gst_clock_wait_id internally.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_src_harness"
- c:identifier="gst_harness_add_src_harness"
- version="1.6">
- <doc xml:space="preserve">A src-harness is a great way of providing the #GstHarness with data.
- By adding a src-type #GstElement, it is then easy to use functions like
- gst_harness_push_from_src or gst_harness_src_crank_and_push_many
- to provide your harnessed element with input. The @has_clock_wait variable
- is a greate way to control you src-element with, in that you can have it
- produce a buffer for you by simply cranking the clock, and not have it
- spin out of control producing buffers as fast as possible.
- If a src-harness already exists it will be replaced.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="src_harness" transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness to be added as a src-harness.</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </parameter>
- <parameter name="has_clock_wait" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean specifying if the #GstElement uses
- gst_clock_wait_id internally.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="add_src_parse"
- c:identifier="gst_harness_add_src_parse"
- version="1.6">
- <doc xml:space="preserve">Similar to gst_harness_add_src, this allows you to specify a launch-line,
- which can be useful for both having more then one #GstElement acting as your
- src (Like a src producing raw buffers, and then an encoder, providing encoded
- data), but also by allowing you to set properties like "is-live" directly on
- the elements.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="launchline" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing a gst-launch type line</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="has_clock_wait" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean specifying if the #GstElement uses
- gst_clock_wait_id internally.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="buffers_in_queue"
- c:identifier="gst_harness_buffers_in_queue"
- version="1.6">
- <doc xml:space="preserve">The number of #GstBuffers currently in the #GstHarness sinkpad #GAsyncQueue
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint number of buffers in the queue</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="buffers_received"
- c:identifier="gst_harness_buffers_received"
- version="1.6">
- <doc xml:space="preserve">The total number of #GstBuffers that has arrived on the #GstHarness sinkpad.
- This number includes buffers that have been dropped as well as buffers
- that have already been pulled out.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint number of buffers received</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="crank_multiple_clock_waits"
- c:identifier="gst_harness_crank_multiple_clock_waits"
- version="1.6">
- <doc xml:space="preserve">Similar to gst_harness_crank_single_clock_wait(), this is the function to use
- if your harnessed element(s) are using more then one gst_clock_id_wait.
- Failing to do so can (and will) make it racy which #GstClockID you actually
- are releasing, where as this function will process all the waits at the
- same time, ensuring that one thread can't register another wait before
- both are released.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a @gboolean %TRUE if the "crank" was successful, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="waits" transfer-ownership="none">
- <doc xml:space="preserve">a #guint describing the number of #GstClockIDs to crank</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="crank_single_clock_wait"
- c:identifier="gst_harness_crank_single_clock_wait"
- version="1.6">
- <doc xml:space="preserve">A "crank" consists of three steps:
- 1: Wait for a #GstClockID to be registered with the #GstTestClock.
- 2: Advance the #GstTestClock to the time the #GstClockID is waiting for.
- 3: Release the #GstClockID wait.
- Together, this provides an easy way to not have to think about the details
- around clocks and time, but still being able to write deterministic tests
- that are dependant on this. A "crank" can be though of as the notion of
- manually driving the clock forward to its next logical step.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a @gboolean %TRUE if the "crank" was successful, %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="create_buffer"
- c:identifier="gst_harness_create_buffer"
- version="1.6">
- <doc xml:space="preserve">Allocates a buffer using a #GstBufferPool if present, or else using the
- configured #GstAllocator and #GstAllocationParams
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer of size @size</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">a #gsize specifying the size of the buffer</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="dump_to_file"
- c:identifier="gst_harness_dump_to_file"
- version="1.6">
- <doc xml:space="preserve">Allows you to dump the #GstBuffers the #GstHarness sinkpad #GAsyncQueue
- to a file.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="filename" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with a the name of a file</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="events_in_queue"
- c:identifier="gst_harness_events_in_queue"
- version="1.6">
- <doc xml:space="preserve">The number of #GstEvents currently in the #GstHarness sinkpad #GAsyncQueue
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint number of events in the queue</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="events_received"
- c:identifier="gst_harness_events_received"
- version="1.6">
- <doc xml:space="preserve">The total number of #GstEvents that has arrived on the #GstHarness sinkpad
- This number includes events handled by the harness as well as events
- that have already been pulled out.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint number of events received</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="find_element"
- c:identifier="gst_harness_find_element"
- version="1.6">
- <doc xml:space="preserve">Most useful in conjunction with gst_harness_new_parse, this will scan the
- #GstElements inside the #GstHarness, and check if any of them matches
- @element_name. Typical usecase being that you need to access one of the
- harnessed elements for properties and/or signals.
- MT safe.</doc>
- <return-value transfer-ownership="full" nullable="1">
- <doc xml:space="preserve">a #GstElement or %NULL if not found</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with a #GstElementFactory name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get"
- c:identifier="gst_harness_get"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">A convenience function to allows you to call g_object_get on a #GstElement
- that are residing inside the #GstHarness, by using normal g_object_get
- syntax.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with a #GstElementFactory name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with the first property name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">return location for the first property, followed optionally by more
- name/return location pairs, followed by %NULL</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="get_allocator"
- c:identifier="gst_harness_get_allocator"
- version="1.6">
- <doc xml:space="preserve">Gets the @allocator and its @params that has been decided to use after an
- allocation query.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="allocator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="none"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstAllocator used</doc>
- <type name="Gst.Allocator" c:type="GstAllocator**"/>
- </parameter>
- <parameter name="params"
- direction="out"
- caller-allocates="1"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstAllocationParams of
- @allocator</doc>
- <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_last_pushed_timestamp"
- c:identifier="gst_harness_get_last_pushed_timestamp"
- version="1.6">
- <doc xml:space="preserve">Get the timestamp of the last #GstBuffer pushed on the #GstHarness srcpad,
- typically with gst_harness_push or gst_harness_push_from_src.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime with the timestamp or %GST_CLOCK_TIME_NONE if no
- #GstBuffer has been pushed on the #GstHarness srcpad</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_testclock"
- c:identifier="gst_harness_get_testclock"
- version="1.6">
- <doc xml:space="preserve">Get the #GstTestClock. Useful if specific operations on the testclock is
- needed.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstTestClock, or %NULL if the testclock is not
- present.</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="play" c:identifier="gst_harness_play" version="1.6">
- <doc xml:space="preserve">This will set the harnessed #GstElement to %GST_STATE_PLAYING.
- #GstElements without a sink-#GstPad and with the %GST_ELEMENT_FLAG_SOURCE
- flag set is concidered a src #GstElement
- Non-src #GstElements (like sinks and filters) are automatically set to
- playing by the #GstHarness, but src #GstElements are not to avoid them
- starting to produce buffers.
- Hence, for src #GstElement you must call gst_harness_play() explicitly.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pull" c:identifier="gst_harness_pull" version="1.6">
- <doc xml:space="preserve">Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. The pull
- will timeout in 60 seconds. This is the standard way of getting a buffer
- from a harnessed #GstElement.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer or %NULL if timed out.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pull_event"
- c:identifier="gst_harness_pull_event"
- version="1.6">
- <doc xml:space="preserve">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness sinkpad.
- Timeouts after 60 seconds similar to gst_harness_pull.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstEvent or %NULL if timed out.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="pull_upstream_event"
- c:identifier="gst_harness_pull_upstream_event"
- version="1.6">
- <doc xml:space="preserve">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness srcpad.
- Timeouts after 60 seconds similar to gst_harness_pull.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstEvent or %NULL if timed out.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="push" c:identifier="gst_harness_push" version="1.6">
- <doc xml:space="preserve">Pushes a #GstBuffer on the #GstHarness srcpad. The standard way of
- interacting with an harnessed element.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn with the result from the push</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer to push</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_and_pull"
- c:identifier="gst_harness_push_and_pull"
- version="1.6">
- <doc xml:space="preserve">Basically a gst_harness_push and a gst_harness_pull in one line. Reflects
- the fact that you often want to do exactly this in your test: Push one buffer
- in, and inspect the outcome.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer or %NULL if timed out.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer to push</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_event"
- c:identifier="gst_harness_push_event"
- version="1.6">
- <doc xml:space="preserve">Pushes an #GstEvent on the #GstHarness srcpad.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean with the result from the push</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEvent to push</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="push_from_src"
- c:identifier="gst_harness_push_from_src"
- version="1.6">
- <doc xml:space="preserve">Transfer data from the src-#GstHarness to the main-#GstHarness. It consists
- of 4 steps:
- 1: Make sure the src is started. (see: gst_harness_play)
- 2: Crank the clock (see: gst_harness_crank_single_clock_wait)
- 3: Pull a #GstBuffer from the src-#GstHarness (see: gst_harness_pull)
- 4: Push the same #GstBuffer into the main-#GstHarness (see: gst_harness_push)
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn with the result of the push</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="push_to_sink"
- c:identifier="gst_harness_push_to_sink"
- version="1.6">
- <doc xml:space="preserve">Transfer one #GstBuffer from the main-#GstHarness to the sink-#GstHarness.
- See gst_harness_push_from_src for details.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn with the result of the push</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="push_upstream_event"
- c:identifier="gst_harness_push_upstream_event"
- version="1.6">
- <doc xml:space="preserve">Pushes an #GstEvent on the #GstHarness sinkpad.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean with the result from the push</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEvent to push</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </method>
- <method name="query_latency"
- c:identifier="gst_harness_query_latency"
- version="1.6">
- <doc xml:space="preserve">Get the min latency reported by any harnessed #GstElement.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime with min latency</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set"
- c:identifier="gst_harness_set"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">A convenience function to allows you to call g_object_set on a #GstElement
- that are residing inside the #GstHarness, by using normal g_object_set
- syntax.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with a #GstElementFactory name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="first_property_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar with the first property name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">value for the first property, followed optionally by more
- name/value pairs, followed by %NULL</doc>
- <varargs/>
- </parameter>
- </parameters>
- </method>
- <method name="set_blocking_push_mode"
- c:identifier="gst_harness_set_blocking_push_mode"
- version="1.6">
- <doc xml:space="preserve">Setting this will make the harness block in the chain-function, and
- then release when gst_harness_pull() or gst_harness_try_pull() is called.
- Can be useful when wanting to control a src-element that is not implementing
- gst_clock_id_wait() so it can't be controlled by the #GstTestClock, since
- it otherwise would produce buffers as fast as possible.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_caps"
- c:identifier="gst_harness_set_caps"
- version="1.6">
- <doc xml:space="preserve">Sets the @GstHarness srcpad and sinkpad caps.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="in" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to set on the harness srcpad</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="out" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to set on the harness sinkpad</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_caps_str"
- c:identifier="gst_harness_set_caps_str"
- version="1.6">
- <doc xml:space="preserve">Sets the @GstHarness srcpad and sinkpad caps using strings.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="in" transfer-ownership="none">
- <doc xml:space="preserve">a @gchar describing a #GstCaps to set on the harness srcpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="out" transfer-ownership="none">
- <doc xml:space="preserve">a @gchar describing a #GstCaps to set on the harness sinkpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_drop_buffers"
- c:identifier="gst_harness_set_drop_buffers"
- version="1.6">
- <doc xml:space="preserve">When set to %TRUE, instead of placing the buffers arriving from the harnessed
- #GstElement inside the sinkpads #GAsyncQueue, they are instead unreffed.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="drop_buffers" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean specifying to drop outgoing buffers or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_forwarding"
- c:identifier="gst_harness_set_forwarding"
- version="1.6">
- <doc xml:space="preserve">As a convenience, a src-harness will forward %GST_EVENT_STREAM_START,
- %GST_EVENT_CAPS and %GST_EVENT_SEGMENT to the main-harness if forwarding
- is enabled, and forward any sticky-events from the main-harness to
- the sink-harness. It will also forward the %GST_QUERY_ALLOCATION.
- If forwarding is disabled, the user will have to either manually push
- these events from the src-harness using gst_harness_src_push_event(), or
- create and push them manually. While this will allow full control and
- inspection of these events, for the most cases having forwarding enabled
- will be sufficient when writing a test where the src-harness' main function
- is providing data for the main-harness.
- Forwarding is enabled by default.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="forwarding" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean to enable/disable forwarding</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_propose_allocator"
- c:identifier="gst_harness_set_propose_allocator"
- version="1.6">
- <doc xml:space="preserve">Sets the @allocator and @params to propose when receiving an allocation
- query.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="allocator"
- transfer-ownership="full"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocator</doc>
- <type name="Gst.Allocator" c:type="GstAllocator*"/>
- </parameter>
- <parameter name="params"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstAllocationParams</doc>
- <type name="Gst.AllocationParams"
- c:type="const GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_sink_caps"
- c:identifier="gst_harness_set_sink_caps"
- version="1.6">
- <doc xml:space="preserve">Sets the @GstHarness sinkpad caps.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to set on the harness sinkpad</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_sink_caps_str"
- c:identifier="gst_harness_set_sink_caps_str"
- version="1.6">
- <doc xml:space="preserve">Sets the @GstHarness sinkpad caps using a string.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="str" transfer-ownership="none">
- <doc xml:space="preserve">a @gchar describing a #GstCaps to set on the harness sinkpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_src_caps"
- c:identifier="gst_harness_set_src_caps"
- version="1.6">
- <doc xml:space="preserve">Sets the @GstHarness srcpad caps. This must be done before any buffers
- can legally be pushed from the harness to the element.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps to set on the harness srcpad</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_src_caps_str"
- c:identifier="gst_harness_set_src_caps_str"
- version="1.6">
- <doc xml:space="preserve">Sets the @GstHarness srcpad caps using a string. This must be done before
- any buffers can legally be pushed from the harness to the element.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="str" transfer-ownership="none">
- <doc xml:space="preserve">a @gchar describing a #GstCaps to set on the harness srcpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_time"
- c:identifier="gst_harness_set_time"
- version="1.6">
- <doc xml:space="preserve">Advance the #GstTestClock to a specific time.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a @gboolean %TRUE if the time could be set. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="time" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime to advance the clock to</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_upstream_latency"
- c:identifier="gst_harness_set_upstream_latency"
- version="1.6">
- <doc xml:space="preserve">Sets the min latency reported by #GstHarness when receiving a latency-query
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="latency" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime specifying the latency</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="sink_push_many"
- c:identifier="gst_harness_sink_push_many"
- version="1.6">
- <doc xml:space="preserve">Convenience that calls gst_harness_push_to_sink @pushes number of times.
- Will abort the pushing if any one push fails.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn with the result of the push</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="pushes" transfer-ownership="none">
- <doc xml:space="preserve">a #gint with the number of calls to gst_harness_push_to_sink</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="src_crank_and_push_many"
- c:identifier="gst_harness_src_crank_and_push_many"
- version="1.6">
- <doc xml:space="preserve">Transfer data from the src-#GstHarness to the main-#GstHarness. Similar to
- gst_harness_push_from_src, this variant allows you to specify how many cranks
- and how many pushes to perform. This can be useful for both moving a lot
- of data at the same time, as well as cases when one crank does not equal one
- buffer to push and v.v.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn with the result of the push</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="cranks" transfer-ownership="none">
- <doc xml:space="preserve">a #gint with the number of calls to gst_harness_crank_single_clock_wait</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="pushes" transfer-ownership="none">
- <doc xml:space="preserve">a #gint with the number of calls to gst_harness_push</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="src_push_event"
- c:identifier="gst_harness_src_push_event"
- version="1.6">
- <doc xml:space="preserve">Similar to what gst_harness_src_push does with #GstBuffers, this transfers
- a #GstEvent from the src-#GstHarness to the main-#GstHarness. Note that
- some #GstEvents are being transferred automagically. Look at sink_forward_pad
- for details.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean with the result of the push</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="stress_custom_start"
- c:identifier="gst_harness_stress_custom_start"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Start a custom stress-thread that will call your @callback for every
- iteration allowing you to do something nasty.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="init"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GFunc that is called initially and only once</doc>
- <type name="GLib.Func" c:type="GFunc"/>
- </parameter>
- <parameter name="callback" transfer-ownership="none" closure="2">
- <doc xml:space="preserve">a #GFunc that is called as often as possible</doc>
- <type name="GLib.Func" c:type="GFunc"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer with custom data to pass to the @callback function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each call to the @callback</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_property_start_full"
- c:identifier="gst_harness_stress_property_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Call g_object_set with @name and @value in intervals of @sleep microseconds
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar specifying a property name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">a #GValue to set the property to</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each g_object_set with @name and @value</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_push_buffer_start_full"
- c:identifier="gst_harness_stress_push_buffer_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Push a #GstBuffer in intervals of @sleep microseconds.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps for the #GstBuffer</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Gst.Segment" c:type="const GstSegment*"/>
- </parameter>
- <parameter name="buf" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer to push</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each call to gst_pad_push</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_push_buffer_with_cb_start_full"
- c:identifier="gst_harness_stress_push_buffer_with_cb_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Push a #GstBuffer returned by @func in intervals of @sleep microseconds.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps for the #GstBuffer</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="segment" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSegment</doc>
- <type name="Gst.Segment" c:type="const GstSegment*"/>
- </parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="3"
- destroy="4">
- <doc xml:space="preserve">a #GstHarnessPrepareBufferFunc function called before every iteration
- to prepare / create a #GstBuffer for pushing</doc>
- <type name="HarnessPrepareBufferFunc"
- c:type="GstHarnessPrepareBufferFunc"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer with data to the #GstHarnessPrepareBufferFunc function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GDestroyNotify that is called when thread is stopped</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each call to gst_pad_push</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_push_event_start_full"
- c:identifier="gst_harness_stress_push_event_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Push the @event onto the harnessed #GstElement sinkpad in intervals of
- @sleep microseconds
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEvent to push</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each gst_event_push with @event</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_push_event_with_cb_start_full"
- c:identifier="gst_harness_stress_push_event_with_cb_start_full"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Push a #GstEvent returned by @func onto the harnessed #GstElement sinkpad
- in intervals of @sleep microseconds.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GstHarnessPrepareEventFunc function called before every iteration
- to prepare / create a #GstEvent for pushing</doc>
- <type name="HarnessPrepareEventFunc"
- c:type="GstHarnessPrepareEventFunc"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer with data to the #GstHarnessPrepareEventFunc function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GDestroyNotify that is called when thread is stopped</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each call to gst_pad_push</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_push_upstream_event_start_full"
- c:identifier="gst_harness_stress_push_upstream_event_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Push the @event onto the harnessed #GstElement srcpad in intervals of
- @sleep microseconds.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">a #GstEvent to push</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each gst_event_push with @event</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_push_upstream_event_with_cb_start_full"
- c:identifier="gst_harness_stress_push_upstream_event_with_cb_start_full"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Push a #GstEvent returned by @func onto the harnessed #GstElement srcpad
- in intervals of @sleep microseconds.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="func"
- transfer-ownership="none"
- scope="notified"
- closure="1"
- destroy="2">
- <doc xml:space="preserve">a #GstHarnessPrepareEventFunc function called before every iteration
- to prepare / create a #GstEvent for pushing</doc>
- <type name="HarnessPrepareEventFunc"
- c:type="GstHarnessPrepareEventFunc"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gpointer with data to the #GstHarnessPrepareEventFunc function</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify" transfer-ownership="none" scope="async">
- <doc xml:space="preserve">a #GDestroyNotify that is called when thread is stopped</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each call to gst_pad_push</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_requestpad_start_full"
- c:identifier="gst_harness_stress_requestpad_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Call gst_element_request_pad in intervals of @sleep microseconds
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="templ" transfer-ownership="none">
- <doc xml:space="preserve">a #GstPadTemplate</doc>
- <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="release" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each gst_element_request_pad</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="stress_statechange_start_full"
- c:identifier="gst_harness_stress_statechange_start_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Change the state of your harnessed #GstElement from NULL to PLAYING and
- back again, only pausing for @sleep microseconds every time.
- MT safe.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="sleep" transfer-ownership="none">
- <doc xml:space="preserve">a #gulong specifying how long to sleep in (microseconds) for
- each state-change</doc>
- <type name="gulong" c:type="gulong"/>
- </parameter>
- </parameters>
- </method>
- <method name="teardown"
- c:identifier="gst_harness_teardown"
- version="1.6">
- <doc xml:space="preserve">Tears down a @GstHarness, freeing all resources allocated using it.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="try_pull"
- c:identifier="gst_harness_try_pull"
- version="1.6">
- <doc xml:space="preserve">Pulls a #GstBuffer from the #GAsyncQueue on the #GstHarness sinkpad. Unlike
- gst_harness_pull this will not wait for any buffers if not any are present,
- and return %NULL straight away.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstBuffer or %NULL if no buffers are present in the #GAsyncQueue</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="try_pull_event"
- c:identifier="gst_harness_try_pull_event"
- version="1.6">
- <doc xml:space="preserve">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness sinkpad.
- See gst_harness_try_pull for details.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstEvent or %NULL if no buffers are present in the #GAsyncQueue</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="try_pull_upstream_event"
- c:identifier="gst_harness_try_pull_upstream_event"
- version="1.6">
- <doc xml:space="preserve">Pulls an #GstEvent from the #GAsyncQueue on the #GstHarness srcpad.
- See gst_harness_try_pull for details.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstEvent or %NULL if no buffers are present in the #GAsyncQueue</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="upstream_events_in_queue"
- c:identifier="gst_harness_upstream_events_in_queue"
- version="1.6">
- <doc xml:space="preserve">The number of #GstEvents currently in the #GstHarness srcpad #GAsyncQueue
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint number of events in the queue</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="upstream_events_received"
- c:identifier="gst_harness_upstream_events_received"
- version="1.6">
- <doc xml:space="preserve">The total number of #GstEvents that has arrived on the #GstHarness srcpad
- This number includes events handled by the harness as well as events
- that have already been pulled out.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #guint number of events received</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="use_systemclock"
- c:identifier="gst_harness_use_systemclock"
- version="1.6">
- <doc xml:space="preserve">Sets the system #GstClock on the @GstHarness #GstElement
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="use_testclock"
- c:identifier="gst_harness_use_testclock"
- version="1.6">
- <doc xml:space="preserve">Sets the #GstTestClock on the #GstHarness #GstElement
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="wait_for_clock_id_waits"
- c:identifier="gst_harness_wait_for_clock_id_waits"
- version="1.6">
- <doc xml:space="preserve">Waits for @timeout seconds until @waits number of #GstClockID waits is
- registered with the #GstTestClock. Useful for writing deterministic tests,
- where you want to make sure that an expected number of waits have been
- reached.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a @gboolean %TRUE if the waits have been registered, %FALSE if not.
- (Could be that it timed out waiting or that more waits then waits was found)</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </instance-parameter>
- <parameter name="waits" transfer-ownership="none">
- <doc xml:space="preserve">a #guint describing the numbers of #GstClockID registered with
- the #GstTestClock</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">a #guint describing how many seconds to wait for @waits to be true</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <function name="new"
- c:identifier="gst_harness_new"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness. Works like gst_harness_new_with_padnames(), except it
- assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing the #GstElement name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_empty"
- c:identifier="gst_harness_new_empty"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Creates a new empty harness. Use gst_harness_add_element_full() to add
- an #GstElement to it.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- </function>
- <function name="new_full"
- c:identifier="gst_harness_new_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to attach the harness to (transfer none)</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="hsrc"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness srcpad.
- %NULL will not create a harness srcpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. Can be a static or request
- or a sometimes pad that has been added. %NULL will not get/request a sinkpad
- from the element. (Like if the element is a src.)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="hsink"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness sinkpad.
- %NULL will not create a harness sinkpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad, similar to the
- @element_sinkpad_name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_parse"
- c:identifier="gst_harness_new_parse"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness, parsing the @launchline and putting that in a #GstBin,
- and then attches the harness to the bin.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="launchline" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing a gst-launch type line</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_with_element"
- c:identifier="gst_harness_new_with_element"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness. Works in the same way as gst_harness_new_full(), only
- that generic padtemplates are used for the harness src and sinkpads, which
- will be sufficient in most usecases.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to attach the harness to (transfer none)</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. %NULL does not attach a
- sinkpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad. %NULL does not attach a
- srcpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_with_padnames"
- c:identifier="gst_harness_new_with_padnames"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness. Works like gst_harness_new_with_element(),
- except you specify the factoryname of the #GstElement
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing the #GstElement name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. %NULL does not attach a
- sinkpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad. %NULL does not attach a
- srcpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="new_with_templates"
- c:identifier="gst_harness_new_with_templates"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness, like gst_harness_new_full(), except it
- assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing the #GstElement name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="hsrc"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness srcpad.
- %NULL will not create a harness srcpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="hsink"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness sinkpad.
- %NULL will not create a harness sinkpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="stress_thread_stop"
- c:identifier="gst_harness_stress_thread_stop"
- version="1.6">
- <doc xml:space="preserve">Stop the running #GstHarnessThread
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="t" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <callback name="HarnessPrepareBufferFunc"
- c:type="GstHarnessPrepareBufferFunc"
- version="1.6">
- <return-value transfer-ownership="full">
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="HarnessPrepareEventFunc"
- c:type="GstHarnessPrepareEventFunc"
- version="1.8">
- <return-value transfer-ownership="full">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarness</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="HarnessPrivate" c:type="GstHarnessPrivate" disguised="1">
- </record>
- <record name="HarnessThread"
- c:type="GstHarnessThread"
- disguised="1"
- version="1.6">
- <doc xml:space="preserve">Opaque handle representing a GstHarness stress testing thread.</doc>
- </record>
- <record name="StreamConsistency"
- c:type="GstStreamConsistency"
- disguised="1">
- <doc xml:space="preserve">Opaque consistency checker handle.</doc>
- </record>
- <class name="TestClock"
- c:symbol-prefix="test_clock"
- c:type="GstTestClock"
- version="1.2"
- parent="Gst.Clock"
- glib:type-name="GstTestClock"
- glib:get-type="gst_test_clock_get_type"
- glib:type-struct="TestClockClass">
- <doc xml:space="preserve">GstTestClock is an implementation of #GstClock which has different
- behaviour compared to #GstSystemClock. Time for #GstSystemClock advances
- according to the system time, while time for #GstTestClock changes only
- when gst_test_clock_set_time() or gst_test_clock_advance_time() are
- called. #GstTestClock provides unit tests with the possibility to
- precisely advance the time in a deterministic manner, independent of the
- system time or any other external factors.
- <example>
- <title>Advancing the time of a #GstTestClock</title>
- <programlisting language="c">
- #include &lt;gst/gst.h&gt;
- #include &lt;gst/check/gsttestclock.h&gt;
- GstClock *clock;
- GstTestClock *test_clock;
- clock = gst_test_clock_new ();
- test_clock = GST_TEST_CLOCK (clock);
- GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
- gst_test_clock_advance_time ( test_clock, 1 * GST_SECOND);
- GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
- g_usleep (10 * G_USEC_PER_SEC);
- GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
- gst_test_clock_set_time (test_clock, 42 * GST_SECOND);
- GST_INFO ("Time: %" GST_TIME_FORMAT, GST_TIME_ARGS (gst_clock_get_time (clock)));
- ...
- </programlisting>
- </example>
- #GstClock allows for setting up single shot or periodic clock notifications
- as well as waiting for these notifications synchronously (using
- gst_clock_id_wait()) or asynchronously (using gst_clock_id_wait_async() or
- gst_clock_id_wait_async()). This is used by many GStreamer elements,
- among them #GstBaseSrc and #GstBaseSink.
- #GstTestClock keeps track of these clock notifications. By calling
- gst_test_clock_wait_for_next_pending_id() or
- gst_test_clock_wait_for_multiple_pending_ids() a unit tests may wait for the
- next one or several clock notifications to be requested. Additionally unit
- tests may release blocked waits in a controlled fashion by calling
- gst_test_clock_process_next_clock_id(). This way a unit test can control the
- inaccuracy (jitter) of clock notifications, since the test can decide to
- release blocked waits when the clock time has advanced exactly to, or past,
- the requested clock notification time.
- There are also interfaces for determining if a notification belongs to a
- #GstTestClock or not, as well as getting the number of requested clock
- notifications so far.
- N.B.: When a unit test waits for a certain amount of clock notifications to
- be requested in gst_test_clock_wait_for_next_pending_id() or
- gst_test_clock_wait_for_multiple_pending_ids() then these functions may block
- for a long time. If they block forever then the expected clock notifications
- were never requested from #GstTestClock, and so the assumptions in the code
- of the unit test are wrong. The unit test case runner in gstcheck is
- expected to catch these cases either by the default test case timeout or the
- one set for the unit test by calling tcase_set_timeout\(\).
- The sample code below assumes that the element under test will delay a
- buffer pushed on the source pad by some latency until it arrives on the sink
- pad. Moreover it is assumed that the element will at some point call
- gst_clock_id_wait() to synchronously wait for a specific time. The first
- buffer sent will arrive exactly on time only delayed by the latency. The
- second buffer will arrive a little late (7ms) due to simulated jitter in the
- clock notification.
- <example>
- <title>Demonstration of how to work with clock notifications and #GstTestClock</title>
- <programlisting language="c">
- #include &lt;gst/gst.h&gt;
- #include &lt;gst/check/gstcheck.h&gt;
- #include &lt;gst/check/gsttestclock.h&gt;
- GstClockTime latency;
- GstElement *element;
- GstPad *srcpad;
- GstClock *clock;
- GstTestClock *test_clock;
- GstBuffer buf;
- GstClockID pending_id;
- GstClockID processed_id;
- latency = 42 * GST_MSECOND;
- element = create_element (latency, ...);
- srcpad = get_source_pad (element);
- clock = gst_test_clock_new ();
- test_clock = GST_TEST_CLOCK (clock);
- gst_element_set_clock (element, clock);
- GST_INFO ("Set time, create and push the first buffer\n");
- gst_test_clock_set_time (test_clock, 0);
- buf = create_test_buffer (gst_clock_get_time (clock), ...);
- gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
- GST_INFO ("Block until element is waiting for a clock notification\n");
- gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
- GST_INFO ("Advance to the requested time of the clock notification\n");
- gst_test_clock_advance_time (test_clock, latency);
- GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
- processed_id = gst_test_clock_process_next_clock_id (test_clock);
- g_assert (processed_id == pending_id);
- g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
- gst_clock_id_unref (pending_id);
- gst_clock_id_unref (processed_id);
- GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
- g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
- buf = get_buffer_pushed_by_element (element, ...);
- g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==, latency);
- gst_buffer_unref (buf);
- GST_INFO ("Check that element does not wait for any clock notification\n");
- g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
- GST_INFO ("Set time, create and push the second buffer\n");
- gst_test_clock_advance_time (test_clock, 10 * GST_SECOND);
- buf = create_test_buffer (gst_clock_get_time (clock), ...);
- gst_assert_cmpint (gst_pad_push (srcpad, buf), ==, GST_FLOW_OK);
- GST_INFO ("Block until element is waiting for a new clock notification\n");
- (gst_test_clock_wait_for_next_pending_id (test_clock, &pending_id);
- GST_INFO ("Advance past 7ms beyond the requested time of the clock notification\n");
- gst_test_clock_advance_time (test_clock, latency + 7 * GST_MSECOND);
- GST_INFO ("Release the next blocking wait and make sure it is the one from element\n");
- processed_id = gst_test_clock_process_next_clock_id (test_clock);
- g_assert (processed_id == pending_id);
- g_assert_cmpint (GST_CLOCK_ENTRY_STATUS (processed_id), ==, GST_CLOCK_OK);
- gst_clock_id_unref (pending_id);
- gst_clock_id_unref (processed_id);
- GST_INFO ("Validate that element produced an output buffer and check its timestamp\n");
- g_assert_cmpint (get_number_of_output_buffer (...), ==, 1);
- buf = get_buffer_pushed_by_element (element, ...);
- g_assert_cmpint (GST_BUFFER_TIMESTAMP (buf), ==,
- 10 * GST_SECOND + latency + 7 * GST_MSECOND);
- gst_buffer_unref (buf);
- GST_INFO ("Check that element does not wait for any clock notification\n");
- g_assert (!gst_test_clock_peek_next_pending_id (test_clock, NULL));
- ...
- </programlisting>
- </example>
- Since #GstTestClock is only supposed to be used in unit tests it calls
- g_assert(), g_assert_cmpint() or g_assert_cmpuint() to validate all function
- arguments. This will highlight any issues with the unit test code itself.</doc>
- <constructor name="new" c:identifier="gst_test_clock_new" version="1.2">
- <doc xml:space="preserve">Creates a new test clock with its time set to zero.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstTestClock cast to #GstClock.</doc>
- <type name="Gst.Clock" c:type="GstClock*"/>
- </return-value>
- </constructor>
- <constructor name="new_with_start_time"
- c:identifier="gst_test_clock_new_with_start_time"
- version="1.2">
- <doc xml:space="preserve">Creates a new test clock with its time set to the specified time.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstTestClock cast to #GstClock.</doc>
- <type name="Gst.Clock" c:type="GstClock*"/>
- </return-value>
- <parameters>
- <parameter name="start_time" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime set to the desired start time of the clock.</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </constructor>
- <function name="id_list_get_latest_time"
- c:identifier="gst_test_clock_id_list_get_latest_time"
- version="1.4">
- <doc xml:space="preserve">Finds the latest time inside the list.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <parameter name="pending_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">List
- of of pending #GstClockIDs</doc>
- <type name="GLib.List" c:type="const GList*">
- <type name="Gst.ClockID"/>
- </type>
- </parameter>
- </parameters>
- </function>
- <method name="advance_time"
- c:identifier="gst_test_clock_advance_time"
- version="1.2">
- <doc xml:space="preserve">Advances the time of the @test_clock by the amount given by @delta. The
- time of @test_clock is monotonically increasing, therefore providing a
- @delta which is negative or zero is a programming error.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock for which to increase the time</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="delta" transfer-ownership="none">
- <doc xml:space="preserve">a positive #GstClockTimeDiff to be added to the time of the clock</doc>
- <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </parameter>
- </parameters>
- </method>
- <method name="crank" c:identifier="gst_test_clock_crank" version="1.8">
- <doc xml:space="preserve">A "crank" consists of three steps:
- 1: Wait for a #GstClockID to be registered with the #GstTestClock.
- 2: Advance the #GstTestClock to the time the #GstClockID is waiting for.
- 3: Release the #GstClockID wait.
- A "crank" can be though of as the notion of
- manually driving the clock forward to its next logical step.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the crank was successful, %FALSE otherwise.
- MT safe.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">#GstTestClock to crank</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_next_entry_time"
- c:identifier="gst_test_clock_get_next_entry_time"
- version="1.2">
- <doc xml:space="preserve">Retrieve the requested time for the next pending clock notification.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime set to the time of the next pending clock
- notification. If no clock notifications have been requested
- %GST_CLOCK_TIME_NONE will be returned.</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock to fetch the next clock notification time for</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="has_id" c:identifier="gst_test_clock_has_id" version="1.2">
- <doc xml:space="preserve">Checks whether @test_clock was requested to provide the clock notification
- given by @id.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the clock has been asked to provide the given clock
- notification, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock to ask if it provided the notification</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockID clock notification</doc>
- <type name="Gst.ClockID" c:type="GstClockID"/>
- </parameter>
- </parameters>
- </method>
- <method name="peek_id_count"
- c:identifier="gst_test_clock_peek_id_count"
- version="1.2">
- <doc xml:space="preserve">Determine the number of pending clock notifications that have been
- requested from the @test_clock.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of pending clock notifications.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock for which to count notifications</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="peek_next_pending_id"
- c:identifier="gst_test_clock_peek_next_pending_id"
- version="1.2">
- <doc xml:space="preserve">Determines if the @pending_id is the next clock notification scheduled to
- be triggered given the current time of the @test_clock.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @pending_id is the next clock notification to be
- triggered, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock to check the clock notifications for</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="pending_id"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstClockID clock
- notification to look for</doc>
- <type name="Gst.ClockID" c:type="GstClockID*"/>
- </parameter>
- </parameters>
- </method>
- <method name="process_id_list"
- c:identifier="gst_test_clock_process_id_list"
- version="1.4">
- <doc xml:space="preserve">Processes and releases the pending IDs in the list.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">#GstTestClock for which to process the pending IDs</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="pending_list"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">List
- of pending #GstClockIDs</doc>
- <type name="GLib.List" c:type="const GList*">
- <type name="Gst.ClockID"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="process_next_clock_id"
- c:identifier="gst_test_clock_process_next_clock_id"
- version="1.2">
- <doc xml:space="preserve">MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstClockID containing the next pending clock
- notification.</doc>
- <type name="Gst.ClockID" c:type="GstClockID"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock for which to retrieve the next pending clock
- notification</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_time"
- c:identifier="gst_test_clock_set_time"
- version="1.2">
- <doc xml:space="preserve">Sets the time of @test_clock to the time given by @new_time. The time of
- @test_clock is monotonically increasing, therefore providing a @new_time
- which is earlier or equal to the time of the clock as given by
- gst_clock_get_time() is a programming error.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">a #GstTestClock of which to set the time</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="new_time" transfer-ownership="none">
- <doc xml:space="preserve">a #GstClockTime later than that returned by gst_clock_get_time()</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_for_multiple_pending_ids"
- c:identifier="gst_test_clock_wait_for_multiple_pending_ids"
- version="1.4">
- <doc xml:space="preserve">Blocks until at least @count clock notifications have been requested from
- @test_clock. There is no timeout for this wait, see the main description of
- #GstTestClock.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">#GstTestClock for which to await having enough pending clock</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of pending clock notifications to wait for</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="pending_list"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Address
- of a #GList pointer variable to store the list of pending #GstClockIDs
- that expired, or %NULL</doc>
- <type name="GLib.List" c:type="GList**">
- <type name="Gst.ClockID"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="wait_for_next_pending_id"
- c:identifier="gst_test_clock_wait_for_next_pending_id"
- version="1.2">
- <doc xml:space="preserve">Waits until a clock notification is requested from @test_clock. There is no
- timeout for this wait, see the main description of #GstTestClock. A reference
- to the pending clock notification is stored in @pending_id.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">#GstTestClock for which to get the pending clock notification</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="pending_id"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">#GstClockID
- with information about the pending clock notification</doc>
- <type name="Gst.ClockID" c:type="GstClockID*"/>
- </parameter>
- </parameters>
- </method>
- <method name="wait_for_pending_id_count"
- c:identifier="gst_test_clock_wait_for_pending_id_count"
- version="1.2"
- deprecated="1">
- <doc xml:space="preserve">Blocks until at least @count clock notifications have been requested from
- @test_clock. There is no timeout for this wait, see the main description of
- #GstTestClock.</doc>
- <doc-deprecated xml:space="preserve">use gst_test_clock_wait_for_multiple_pending_ids() instead.</doc-deprecated>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="test_clock" transfer-ownership="none">
- <doc xml:space="preserve">#GstTestClock for which to await having enough pending clock</doc>
- <type name="TestClock" c:type="GstTestClock*"/>
- </instance-parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">the number of pending clock notifications to wait for</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <property name="start-time"
- writable="1"
- construct-only="1"
- transfer-ownership="none">
- <doc xml:space="preserve">When a #GstTestClock is constructed it will have a certain start time set.
- If the clock was created using gst_test_clock_new_with_start_time() then
- this property contains the value of the @start_time argument. If
- gst_test_clock_new() was called the clock started at time zero, and thus
- this property contains the value 0.</doc>
- <type name="guint64" c:type="guint64"/>
- </property>
- <field name="parent">
- <type name="Gst.Clock" c:type="GstClock"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="TestClockPrivate" c:type="GstTestClockPrivate*"/>
- </field>
- </class>
- <record name="TestClockClass"
- c:type="GstTestClockClass"
- glib:is-gtype-struct-for="TestClock"
- version="1.2">
- <doc xml:space="preserve">The class of a #GstTestClock, which has no virtual methods to override.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent class structure</doc>
- <type name="Gst.ClockClass" c:type="GstClockClass"/>
- </field>
- </record>
- <record name="TestClockPrivate" c:type="GstTestClockPrivate" disguised="1">
- </record>
- <function name="buffer_straw_get_buffer"
- c:identifier="gst_buffer_straw_get_buffer">
- <doc xml:space="preserve">Get one buffer from @pad. Implemented via buffer probes. This function will
- block until the pipeline passes a buffer over @pad, so for robust behavior
- in unit tests, you need to use check's timeout to fail out in the case that a
- buffer never arrives.
- You must have previously called gst_buffer_straw_start_pipeline() on
- @pipeline and @pad.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the captured #GstBuffer.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">the pipeline previously started via gst_buffer_straw_start_pipeline()</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the pad previously passed to gst_buffer_straw_start_pipeline()</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_straw_start_pipeline"
- c:identifier="gst_buffer_straw_start_pipeline">
- <doc xml:space="preserve">Sets up a pipeline for buffer sucking. This will allow you to call
- gst_buffer_straw_get_buffer() to access buffers as they pass over @pad.
- This function is normally used in unit tests that want to verify that a
- particular element is outputting correct buffers. For example, you would make
- a pipeline via gst_parse_launch(), pull out the pad you want to monitor, then
- call gst_buffer_straw_get_buffer() to get the buffers that pass through @pad.
- The pipeline will block until you have sucked off the buffers.
- This function will set the state of @bin to PLAYING; to clean up, be sure to
- call gst_buffer_straw_stop_pipeline().
- Note that you may not start two buffer straws at the same time. This function
- is intended for unit tests, not general API use. In fact it calls fail_if
- from libcheck, so you cannot use it outside unit tests.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">the pipeline to run</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">a pad on an element in @bin</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_straw_stop_pipeline"
- c:identifier="gst_buffer_straw_stop_pipeline">
- <doc xml:space="preserve">Set @bin to #GST_STATE_NULL and release resource allocated in
- gst_buffer_straw_start_pipeline().
- You must have previously called gst_buffer_straw_start_pipeline() on
- @pipeline and @pad.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="bin" transfer-ownership="none">
- <doc xml:space="preserve">the pipeline previously started via gst_buffer_straw_start_pipeline()</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">the pad previously passed to gst_buffer_straw_start_pipeline()</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_abi_list" c:identifier="gst_check_abi_list">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="list" transfer-ownership="none">
- <type name="CheckABIStruct" c:type="GstCheckABIStruct"/>
- </parameter>
- <parameter name="have_abi_sizes" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_buffer_data" c:identifier="gst_check_buffer_data">
- <doc xml:space="preserve">Compare the buffer contents with @data and @size.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">buffer to compare</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">data to compare to</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of data to compare</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_caps_equal" c:identifier="gst_check_caps_equal">
- <doc xml:space="preserve">Compare two caps with gst_caps_is_equal and fail unless they are
- equal.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="caps1" transfer-ownership="none">
- <doc xml:space="preserve">first caps to compare</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="caps2" transfer-ownership="none">
- <doc xml:space="preserve">second caps to compare</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_chain_func" c:identifier="gst_check_chain_func">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="parent" transfer-ownership="none">
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_drop_buffers" c:identifier="gst_check_drop_buffers">
- <doc xml:space="preserve">Unref and remove all buffers that are in the global @buffers GList,
- emptying the list.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- </function>
- <function name="check_element_push_buffer"
- c:identifier="gst_check_element_push_buffer">
- <doc xml:space="preserve">Create an element using the factory providing the @element_name and
- push the @buffer_in to this element. The element should create one buffer
- and this will be compared with @buffer_out. We only check the caps
- and the data of the buffers. This function unrefs the buffers.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the element that needs to be created</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="buffer_in" transfer-ownership="none">
- <doc xml:space="preserve">push this buffer to the element</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="caps_in" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps expected of the sinkpad of the element</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="buffer_out" transfer-ownership="none">
- <doc xml:space="preserve">compare the result with this buffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="caps_out" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps expected of the srcpad of the element</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_element_push_buffer_list"
- c:identifier="gst_check_element_push_buffer_list">
- <doc xml:space="preserve">Create an element using the factory providing the @element_name and push the
- buffers in @buffer_in to this element. The element should create the buffers
- equal to the buffers in @buffer_out. We only check the size and the data of
- the buffers. This function unrefs the buffers in the two lists.
- The last_flow_return parameter indicates the expected flow return value from
- pushing the final buffer in the list.
- This can be used to set up a test which pushes some buffers and then an
- invalid buffer, when the final buffer is expected to fail, for example.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">name of the element that needs to be created</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="buffer_in" transfer-ownership="full">
- <doc xml:space="preserve">a list of buffers that needs to be
- pushed to the element</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Gst.Buffer"/>
- </type>
- </parameter>
- <parameter name="caps_in" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps expected of the sinkpad of the element</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="buffer_out" transfer-ownership="full">
- <doc xml:space="preserve">a list of buffers that we expect from
- the element</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Gst.Buffer"/>
- </type>
- </parameter>
- <parameter name="caps_out" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps expected of the srcpad of the element</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="last_flow_return" transfer-ownership="none">
- <doc xml:space="preserve">the last buffer push needs to give this GstFlowReturn</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_init" c:identifier="gst_check_init">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="argc" transfer-ownership="none">
- <type name="gint" c:type="int*"/>
- </parameter>
- <parameter name="argv" transfer-ownership="none">
- <type name="utf8" c:type="char**"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_message_error"
- c:identifier="gst_check_message_error">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="type" transfer-ownership="none">
- <type name="Gst.MessageType" c:type="GstMessageType"/>
- </parameter>
- <parameter name="domain" transfer-ownership="none">
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="code" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_object_destroyed_on_unref"
- c:identifier="gst_check_object_destroyed_on_unref"
- version="1.6">
- <doc xml:space="preserve">Unrefs @object_to_unref and checks that is has properly been
- destroyed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_to_unref"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GObject to unref</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_objects_destroyed_on_unref"
- c:identifier="gst_check_objects_destroyed_on_unref"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Unrefs @object_to_unref and checks that is has properly been
- destroyed, also checks that the other objects passed in
- parametter have been destroyed as a concequence of
- unrefing @object_to_unref. Last variable argument should be NULL.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="object_to_unref"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The #GObject to unref</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="first_object"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">The first object that should be destroyed as a
- concequence of unrefing @object_to_unref.</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">Additional object that should have been destroyed.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="check_run_suite"
- c:identifier="gst_check_run_suite"
- introspectable="0">
- <return-value transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="suite" transfer-ownership="none">
- <type c:type="Suite*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="fname" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_element"
- c:identifier="gst_check_setup_element">
- <doc xml:space="preserve">setup an element for a filter test with mysrcpad and mysinkpad</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new element</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </return-value>
- <parameters>
- <parameter name="factory" transfer-ownership="none">
- <doc xml:space="preserve">factory</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_events" c:identifier="gst_check_setup_events">
- <doc xml:space="preserve">Push stream-start, caps and segment event, which consist of the minimum
- required events to allow streaming. Caps is optional to allow raw src
- testing. If @element has more than one src or sink pad, use
- gst_check_setup_events_with_stream_id() instead.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">The src #GstPad to push on</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">The #GstElement use to create the stream id</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GstCaps in case caps event must be sent</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The #GstFormat of the default segment to send</doc>
- <type name="Gst.Format" c:type="GstFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_events_with_stream_id"
- c:identifier="gst_check_setup_events_with_stream_id">
- <doc xml:space="preserve">Push stream-start, caps and segment event, which consist of the minimum
- required events to allow streaming. Caps is optional to allow raw src
- testing.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="srcpad" transfer-ownership="none">
- <doc xml:space="preserve">The src #GstPad to push on</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">The #GstElement use to create the stream id</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">#GstCaps in case caps event must be sent</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">The #GstFormat of the default segment to send</doc>
- <type name="Gst.Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="stream_id" transfer-ownership="none">
- <doc xml:space="preserve">A unique identifier for the stream</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_sink_pad"
- c:identifier="gst_check_setup_sink_pad">
- <doc xml:space="preserve">Does the same as #gst_check_setup_sink_pad_by_name with the <emphasis> name </emphasis> parameter equal to "src".</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new pad that can be used to check the output of @element</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_sink_pad_by_name"
- c:identifier="gst_check_setup_sink_pad_by_name">
- <doc xml:space="preserve">Creates a new sink pad (based on the given @tmpl) and links it to the given @element src pad
- (the pad that matches the given @name).
- You can set event/chain/query functions on this pad to check the output of the @element.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new pad that can be used to check the output of @element</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">Name of the @element src pad that will be linked to the sink pad that will be setup</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_sink_pad_by_name_from_template"
- c:identifier="gst_check_setup_sink_pad_by_name_from_template"
- version="1.4">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new pad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_sink_pad_from_template"
- c:identifier="gst_check_setup_sink_pad_from_template"
- version="1.4">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new pad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_src_pad"
- c:identifier="gst_check_setup_src_pad">
- <doc xml:space="preserve">Does the same as #gst_check_setup_src_pad_by_name with the <emphasis> name </emphasis> parameter equal to "sink".</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new pad that can be used to inject data on @element</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_src_pad_by_name"
- c:identifier="gst_check_setup_src_pad_by_name">
- <doc xml:space="preserve">Creates a new src pad (based on the given @tmpl) and links it to the given @element sink pad (the pad that matches the given @name).
- Before using the src pad to push data on @element you need to call #gst_check_setup_events on the created src pad.
- Example of how to push a buffer on @element:
- |[<!-- language="C" -->
- static GstStaticPadTemplate sinktemplate = GST_STATIC_PAD_TEMPLATE ("sink",
- GST_PAD_SINK,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
- );
- static GstStaticPadTemplate srctemplate = GST_STATIC_PAD_TEMPLATE ("src",
- GST_PAD_SRC,
- GST_PAD_ALWAYS,
- GST_STATIC_CAPS (YOUR_CAPS_TEMPLATE_STRING)
- );
- GstElement * element = gst_check_setup_element ("element");
- GstPad * mysrcpad = gst_check_setup_src_pad (element, &srctemplate);
- GstPad * mysinkpad = gst_check_setup_sink_pad (element, &sinktemplate);
- gst_pad_set_active (mysrcpad, TRUE);
- gst_pad_set_active (mysinkpad, TRUE);
- fail_unless (gst_element_set_state (element, GST_STATE_PLAYING) == GST_STATE_CHANGE_SUCCESS, "could not set to playing");
- GstCaps * caps = gst_caps_from_string (YOUR_DESIRED_SINK_CAPS);
- gst_check_setup_events (mysrcpad, element, caps, GST_FORMAT_TIME);
- gst_caps_unref (caps);
- fail_unless (gst_pad_push (mysrcpad, gst_buffer_new_and_alloc(2)) == GST_FLOW_OK);
- ]|
- For very simple input/output test scenarios checkout #gst_check_element_push_buffer_list and #gst_check_element_push_buffer.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">A new pad that can be used to inject data on @element</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup src pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">Name of the @element sink pad that will be linked to the src pad that will be setup</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_src_pad_by_name_from_template"
- c:identifier="gst_check_setup_src_pad_by_name_from_template"
- version="1.4">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new pad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <doc xml:space="preserve">name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_setup_src_pad_from_template"
- c:identifier="gst_check_setup_src_pad_from_template"
- version="1.4">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new pad</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">element to setup pad on</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="tmpl" transfer-ownership="none">
- <doc xml:space="preserve">pad template</doc>
- <type name="Gst.PadTemplate" c:type="GstPadTemplate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_teardown_element"
- c:identifier="gst_check_teardown_element">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_teardown_pad_by_name"
- c:identifier="gst_check_teardown_pad_by_name">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="name" transfer-ownership="none">
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_teardown_sink_pad"
- c:identifier="gst_check_teardown_sink_pad">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </function>
- <function name="check_teardown_src_pad"
- c:identifier="gst_check_teardown_src_pad">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- </parameters>
- </function>
- <function name="consistency_checker_add_pad"
- c:identifier="gst_consistency_checker_add_pad">
- <doc xml:space="preserve">Sets up a data probe on the given pad which will raise assertions if the
- data flow is inconsistent.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the pad was added</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="consist" transfer-ownership="none">
- <doc xml:space="preserve">The #GstStreamConsistency handle</doc>
- <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
- </parameter>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">The #GstPad on which the dataflow will be checked.</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </function>
- <function name="consistency_checker_free"
- c:identifier="gst_consistency_checker_free">
- <doc xml:space="preserve">Frees the allocated data and probes associated with @consist.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="consist" transfer-ownership="none">
- <doc xml:space="preserve">The #GstStreamConsistency to free.</doc>
- <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
- </parameter>
- </parameters>
- </function>
- <function name="consistency_checker_new"
- c:identifier="gst_consistency_checker_new"
- introspectable="0">
- <doc xml:space="preserve">Sets up a data probe on the given pad which will raise assertions if the
- data flow is inconsistent.</doc>
- <return-value>
- <doc xml:space="preserve">A #GstStreamConsistency structure used to track data flow.</doc>
- <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
- </return-value>
- <parameters>
- <parameter name="pad" transfer-ownership="none">
- <doc xml:space="preserve">The #GstPad on which the dataflow will be checked.</doc>
- <type name="Gst.Pad" c:type="GstPad*"/>
- </parameter>
- </parameters>
- </function>
- <function name="consistency_checker_reset"
- c:identifier="gst_consistency_checker_reset">
- <doc xml:space="preserve">Reset the stream checker's internal variables.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="consist" transfer-ownership="none">
- <doc xml:space="preserve">The #GstStreamConsistency to reset.</doc>
- <type name="StreamConsistency" c:type="GstStreamConsistency*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_new"
- c:identifier="gst_harness_new"
- moved-to="Harness.new"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness. Works like gst_harness_new_with_padnames(), except it
- assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing the #GstElement name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_new_empty"
- c:identifier="gst_harness_new_empty"
- moved-to="Harness.new_empty"
- version="1.8"
- introspectable="0">
- <doc xml:space="preserve">Creates a new empty harness. Use gst_harness_add_element_full() to add
- an #GstElement to it.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- </function>
- <function name="harness_new_full"
- c:identifier="gst_harness_new_full"
- moved-to="Harness.new_full"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to attach the harness to (transfer none)</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="hsrc"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness srcpad.
- %NULL will not create a harness srcpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. Can be a static or request
- or a sometimes pad that has been added. %NULL will not get/request a sinkpad
- from the element. (Like if the element is a src.)</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="hsink"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness sinkpad.
- %NULL will not create a harness sinkpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad, similar to the
- @element_sinkpad_name.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_new_parse"
- c:identifier="gst_harness_new_parse"
- moved-to="Harness.new_parse"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness, parsing the @launchline and putting that in a #GstBin,
- and then attches the harness to the bin.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="launchline" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing a gst-launch type line</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_new_with_element"
- c:identifier="gst_harness_new_with_element"
- moved-to="Harness.new_with_element"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness. Works in the same way as gst_harness_new_full(), only
- that generic padtemplates are used for the harness src and sinkpads, which
- will be sufficient in most usecases.
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element" transfer-ownership="none">
- <doc xml:space="preserve">a #GstElement to attach the harness to (transfer none)</doc>
- <type name="Gst.Element" c:type="GstElement*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. %NULL does not attach a
- sinkpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad. %NULL does not attach a
- srcpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_new_with_padnames"
- c:identifier="gst_harness_new_with_padnames"
- moved-to="Harness.new_with_padnames"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness. Works like gst_harness_new_with_element(),
- except you specify the factoryname of the #GstElement
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing the #GstElement name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="element_sinkpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- sinkpad that is then linked to the harness srcpad. %NULL does not attach a
- sinkpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="element_srcpad_name"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #gchar with the name of the element
- srcpad that is then linked to the harness sinkpad. %NULL does not attach a
- srcpad</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_new_with_templates"
- c:identifier="gst_harness_new_with_templates"
- moved-to="Harness.new_with_templates"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Creates a new harness, like gst_harness_new_full(), except it
- assumes the #GstElement sinkpad is named "sink" and srcpad is named "src"
- MT safe.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstHarness, or %NULL if the harness could
- not be created</doc>
- <type name="Harness" c:type="GstHarness*"/>
- </return-value>
- <parameters>
- <parameter name="element_name" transfer-ownership="none">
- <doc xml:space="preserve">a #gchar describing the #GstElement name</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="hsrc"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness srcpad.
- %NULL will not create a harness srcpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- <parameter name="hsink"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstStaticPadTemplate describing the harness sinkpad.
- %NULL will not create a harness sinkpad.</doc>
- <type name="Gst.StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
- </parameter>
- </parameters>
- </function>
- <function name="harness_stress_thread_stop"
- c:identifier="gst_harness_stress_thread_stop"
- moved-to="Harness.stress_thread_stop"
- version="1.6">
- <doc xml:space="preserve">Stop the running #GstHarnessThread
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="t" transfer-ownership="none">
- <doc xml:space="preserve">a #GstHarnessThread</doc>
- <type name="HarnessThread" c:type="GstHarnessThread*"/>
- </parameter>
- </parameters>
- </function>
- </namespace>
- </repository>
|