Gst-1.0.gir 2.0 MB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321332233233324332533263327332833293330333133323333333433353336333733383339334033413342334333443345334633473348334933503351335233533354335533563357335833593360336133623363336433653366336733683369337033713372337333743375337633773378337933803381338233833384338533863387338833893390339133923393339433953396339733983399340034013402340334043405340634073408340934103411341234133414341534163417341834193420342134223423342434253426342734283429343034313432343334343435343634373438343934403441344234433444344534463447344834493450345134523453345434553456345734583459346034613462346334643465346634673468346934703471347234733474347534763477347834793480348134823483348434853486348734883489349034913492349334943495349634973498349935003501350235033504350535063507350835093510351135123513351435153516351735183519352035213522352335243525352635273528352935303531353235333534353535363537353835393540354135423543354435453546354735483549355035513552355335543555355635573558355935603561356235633564356535663567356835693570357135723573357435753576357735783579358035813582358335843585358635873588358935903591359235933594359535963597359835993600360136023603360436053606360736083609361036113612361336143615361636173618361936203621362236233624362536263627362836293630363136323633363436353636363736383639364036413642364336443645364636473648364936503651365236533654365536563657365836593660366136623663366436653666366736683669367036713672367336743675367636773678367936803681368236833684368536863687368836893690369136923693369436953696369736983699370037013702370337043705370637073708370937103711371237133714371537163717371837193720372137223723372437253726372737283729373037313732373337343735373637373738373937403741374237433744374537463747374837493750375137523753375437553756375737583759376037613762376337643765376637673768376937703771377237733774377537763777377837793780378137823783378437853786378737883789379037913792379337943795379637973798379938003801380238033804380538063807380838093810381138123813381438153816381738183819382038213822382338243825382638273828382938303831383238333834383538363837383838393840384138423843384438453846384738483849385038513852385338543855385638573858385938603861386238633864386538663867386838693870387138723873387438753876387738783879388038813882388338843885388638873888388938903891389238933894389538963897389838993900390139023903390439053906390739083909391039113912391339143915391639173918391939203921392239233924392539263927392839293930393139323933393439353936393739383939394039413942394339443945394639473948394939503951395239533954395539563957395839593960396139623963396439653966396739683969397039713972397339743975397639773978397939803981398239833984398539863987398839893990399139923993399439953996399739983999400040014002400340044005400640074008400940104011401240134014401540164017401840194020402140224023402440254026402740284029403040314032403340344035403640374038403940404041404240434044404540464047404840494050405140524053405440554056405740584059406040614062406340644065406640674068406940704071407240734074407540764077407840794080408140824083408440854086408740884089409040914092409340944095409640974098409941004101410241034104410541064107410841094110411141124113411441154116411741184119412041214122412341244125412641274128412941304131413241334134413541364137413841394140414141424143414441454146414741484149415041514152415341544155415641574158415941604161416241634164416541664167416841694170417141724173417441754176417741784179418041814182418341844185418641874188418941904191419241934194419541964197419841994200420142024203420442054206420742084209421042114212421342144215421642174218421942204221422242234224422542264227422842294230423142324233423442354236423742384239424042414242424342444245424642474248424942504251425242534254425542564257425842594260426142624263426442654266426742684269427042714272427342744275427642774278427942804281428242834284428542864287428842894290429142924293429442954296429742984299430043014302430343044305430643074308430943104311431243134314431543164317431843194320432143224323432443254326432743284329433043314332433343344335433643374338433943404341434243434344434543464347434843494350435143524353435443554356435743584359436043614362436343644365436643674368436943704371437243734374437543764377437843794380438143824383438443854386438743884389439043914392439343944395439643974398439944004401440244034404440544064407440844094410441144124413441444154416441744184419442044214422442344244425442644274428442944304431443244334434443544364437443844394440444144424443444444454446444744484449445044514452445344544455445644574458445944604461446244634464446544664467446844694470447144724473447444754476447744784479448044814482448344844485448644874488448944904491449244934494449544964497449844994500450145024503450445054506450745084509451045114512451345144515451645174518451945204521452245234524452545264527452845294530453145324533453445354536453745384539454045414542454345444545454645474548454945504551455245534554455545564557455845594560456145624563456445654566456745684569457045714572457345744575457645774578457945804581458245834584458545864587458845894590459145924593459445954596459745984599460046014602460346044605460646074608460946104611461246134614461546164617461846194620462146224623462446254626462746284629463046314632463346344635463646374638463946404641464246434644464546464647464846494650465146524653465446554656465746584659466046614662466346644665466646674668466946704671467246734674467546764677467846794680468146824683468446854686468746884689469046914692469346944695469646974698469947004701470247034704470547064707470847094710471147124713471447154716471747184719472047214722472347244725472647274728472947304731473247334734473547364737473847394740474147424743474447454746474747484749475047514752475347544755475647574758475947604761476247634764476547664767476847694770477147724773477447754776477747784779478047814782478347844785478647874788478947904791479247934794479547964797479847994800480148024803480448054806480748084809481048114812481348144815481648174818481948204821482248234824482548264827482848294830483148324833483448354836483748384839484048414842484348444845484648474848484948504851485248534854485548564857485848594860486148624863486448654866486748684869487048714872487348744875487648774878487948804881488248834884488548864887488848894890489148924893489448954896489748984899490049014902490349044905490649074908490949104911491249134914491549164917491849194920492149224923492449254926492749284929493049314932493349344935493649374938493949404941494249434944494549464947494849494950495149524953495449554956495749584959496049614962496349644965496649674968496949704971497249734974497549764977497849794980498149824983498449854986498749884989499049914992499349944995499649974998499950005001500250035004500550065007500850095010501150125013501450155016501750185019502050215022502350245025502650275028502950305031503250335034503550365037503850395040504150425043504450455046504750485049505050515052505350545055505650575058505950605061506250635064506550665067506850695070507150725073507450755076507750785079508050815082508350845085508650875088508950905091509250935094509550965097509850995100510151025103510451055106510751085109511051115112511351145115511651175118511951205121512251235124512551265127512851295130513151325133513451355136513751385139514051415142514351445145514651475148514951505151515251535154515551565157515851595160516151625163516451655166516751685169517051715172517351745175517651775178517951805181518251835184518551865187518851895190519151925193519451955196519751985199520052015202520352045205520652075208520952105211521252135214521552165217521852195220522152225223522452255226522752285229523052315232523352345235523652375238523952405241524252435244524552465247524852495250525152525253525452555256525752585259526052615262526352645265526652675268526952705271527252735274527552765277527852795280528152825283528452855286528752885289529052915292529352945295529652975298529953005301530253035304530553065307530853095310531153125313531453155316531753185319532053215322532353245325532653275328532953305331533253335334533553365337533853395340534153425343534453455346534753485349535053515352535353545355535653575358535953605361536253635364536553665367536853695370537153725373537453755376537753785379538053815382538353845385538653875388538953905391539253935394539553965397539853995400540154025403540454055406540754085409541054115412541354145415541654175418541954205421542254235424542554265427542854295430543154325433543454355436543754385439544054415442544354445445544654475448544954505451545254535454545554565457545854595460546154625463546454655466546754685469547054715472547354745475547654775478547954805481548254835484548554865487548854895490549154925493549454955496549754985499550055015502550355045505550655075508550955105511551255135514551555165517551855195520552155225523552455255526552755285529553055315532553355345535553655375538553955405541554255435544554555465547554855495550555155525553555455555556555755585559556055615562556355645565556655675568556955705571557255735574557555765577557855795580558155825583558455855586558755885589559055915592559355945595559655975598559956005601560256035604560556065607560856095610561156125613561456155616561756185619562056215622562356245625562656275628562956305631563256335634563556365637563856395640564156425643564456455646564756485649565056515652565356545655565656575658565956605661566256635664566556665667566856695670567156725673567456755676567756785679568056815682568356845685568656875688568956905691569256935694569556965697569856995700570157025703570457055706570757085709571057115712571357145715571657175718571957205721572257235724572557265727572857295730573157325733573457355736573757385739574057415742574357445745574657475748574957505751575257535754575557565757575857595760576157625763576457655766576757685769577057715772577357745775577657775778577957805781578257835784578557865787578857895790579157925793579457955796579757985799580058015802580358045805580658075808580958105811581258135814581558165817581858195820582158225823582458255826582758285829583058315832583358345835583658375838583958405841584258435844584558465847584858495850585158525853585458555856585758585859586058615862586358645865586658675868586958705871587258735874587558765877587858795880588158825883588458855886588758885889589058915892589358945895589658975898589959005901590259035904590559065907590859095910591159125913591459155916591759185919592059215922592359245925592659275928592959305931593259335934593559365937593859395940594159425943594459455946594759485949595059515952595359545955595659575958595959605961596259635964596559665967596859695970597159725973597459755976597759785979598059815982598359845985598659875988598959905991599259935994599559965997599859996000600160026003600460056006600760086009601060116012601360146015601660176018601960206021602260236024602560266027602860296030603160326033603460356036603760386039604060416042604360446045604660476048604960506051605260536054605560566057605860596060606160626063606460656066606760686069607060716072607360746075607660776078607960806081608260836084608560866087608860896090609160926093609460956096609760986099610061016102610361046105610661076108610961106111611261136114611561166117611861196120612161226123612461256126612761286129613061316132613361346135613661376138613961406141614261436144614561466147614861496150615161526153615461556156615761586159616061616162616361646165616661676168616961706171617261736174617561766177617861796180618161826183618461856186618761886189619061916192619361946195619661976198619962006201620262036204620562066207620862096210621162126213621462156216621762186219622062216222622362246225622662276228622962306231623262336234623562366237623862396240624162426243624462456246624762486249625062516252625362546255625662576258625962606261626262636264626562666267626862696270627162726273627462756276627762786279628062816282628362846285628662876288628962906291629262936294629562966297629862996300630163026303630463056306630763086309631063116312631363146315631663176318631963206321632263236324632563266327632863296330633163326333633463356336633763386339634063416342634363446345634663476348634963506351635263536354635563566357635863596360636163626363636463656366636763686369637063716372637363746375637663776378637963806381638263836384638563866387638863896390639163926393639463956396639763986399640064016402640364046405640664076408640964106411641264136414641564166417641864196420642164226423642464256426642764286429643064316432643364346435643664376438643964406441644264436444644564466447644864496450645164526453645464556456645764586459646064616462646364646465646664676468646964706471647264736474647564766477647864796480648164826483648464856486648764886489649064916492649364946495649664976498649965006501650265036504650565066507650865096510651165126513651465156516651765186519652065216522652365246525652665276528652965306531653265336534653565366537653865396540654165426543654465456546654765486549655065516552655365546555655665576558655965606561656265636564656565666567656865696570657165726573657465756576657765786579658065816582658365846585658665876588658965906591659265936594659565966597659865996600660166026603660466056606660766086609661066116612661366146615661666176618661966206621662266236624662566266627662866296630663166326633663466356636663766386639664066416642664366446645664666476648664966506651665266536654665566566657665866596660666166626663666466656666666766686669667066716672667366746675667666776678667966806681668266836684668566866687668866896690669166926693669466956696669766986699670067016702670367046705670667076708670967106711671267136714671567166717671867196720672167226723672467256726672767286729673067316732673367346735673667376738673967406741674267436744674567466747674867496750675167526753675467556756675767586759676067616762676367646765676667676768676967706771677267736774677567766777677867796780678167826783678467856786678767886789679067916792679367946795679667976798679968006801680268036804680568066807680868096810681168126813681468156816681768186819682068216822682368246825682668276828682968306831683268336834683568366837683868396840684168426843684468456846684768486849685068516852685368546855685668576858685968606861686268636864686568666867686868696870687168726873687468756876687768786879688068816882688368846885688668876888688968906891689268936894689568966897689868996900690169026903690469056906690769086909691069116912691369146915691669176918691969206921692269236924692569266927692869296930693169326933693469356936693769386939694069416942694369446945694669476948694969506951695269536954695569566957695869596960696169626963696469656966696769686969697069716972697369746975697669776978697969806981698269836984698569866987698869896990699169926993699469956996699769986999700070017002700370047005700670077008700970107011701270137014701570167017701870197020702170227023702470257026702770287029703070317032703370347035703670377038703970407041704270437044704570467047704870497050705170527053705470557056705770587059706070617062706370647065706670677068706970707071707270737074707570767077707870797080708170827083708470857086708770887089709070917092709370947095709670977098709971007101710271037104710571067107710871097110711171127113711471157116711771187119712071217122712371247125712671277128712971307131713271337134713571367137713871397140714171427143714471457146714771487149715071517152715371547155715671577158715971607161716271637164716571667167716871697170717171727173717471757176717771787179718071817182718371847185718671877188718971907191719271937194719571967197719871997200720172027203720472057206720772087209721072117212721372147215721672177218721972207221722272237224722572267227722872297230723172327233723472357236723772387239724072417242724372447245724672477248724972507251725272537254725572567257725872597260726172627263726472657266726772687269727072717272727372747275727672777278727972807281728272837284728572867287728872897290729172927293729472957296729772987299730073017302730373047305730673077308730973107311731273137314731573167317731873197320732173227323732473257326732773287329733073317332733373347335733673377338733973407341734273437344734573467347734873497350735173527353735473557356735773587359736073617362736373647365736673677368736973707371737273737374737573767377737873797380738173827383738473857386738773887389739073917392739373947395739673977398739974007401740274037404740574067407740874097410741174127413741474157416741774187419742074217422742374247425742674277428742974307431743274337434743574367437743874397440744174427443744474457446744774487449745074517452745374547455745674577458745974607461746274637464746574667467746874697470747174727473747474757476747774787479748074817482748374847485748674877488748974907491749274937494749574967497749874997500750175027503750475057506750775087509751075117512751375147515751675177518751975207521752275237524752575267527752875297530753175327533753475357536753775387539754075417542754375447545754675477548754975507551755275537554755575567557755875597560756175627563756475657566756775687569757075717572757375747575757675777578757975807581758275837584758575867587758875897590759175927593759475957596759775987599760076017602760376047605760676077608760976107611761276137614761576167617761876197620762176227623762476257626762776287629763076317632763376347635763676377638763976407641764276437644764576467647764876497650765176527653765476557656765776587659766076617662766376647665766676677668766976707671767276737674767576767677767876797680768176827683768476857686768776887689769076917692769376947695769676977698769977007701770277037704770577067707770877097710771177127713771477157716771777187719772077217722772377247725772677277728772977307731773277337734773577367737773877397740774177427743774477457746774777487749775077517752775377547755775677577758775977607761776277637764776577667767776877697770777177727773777477757776777777787779778077817782778377847785778677877788778977907791779277937794779577967797779877997800780178027803780478057806780778087809781078117812781378147815781678177818781978207821782278237824782578267827782878297830783178327833783478357836783778387839784078417842784378447845784678477848784978507851785278537854785578567857785878597860786178627863786478657866786778687869787078717872787378747875787678777878787978807881788278837884788578867887788878897890789178927893789478957896789778987899790079017902790379047905790679077908790979107911791279137914791579167917791879197920792179227923792479257926792779287929793079317932793379347935793679377938793979407941794279437944794579467947794879497950795179527953795479557956795779587959796079617962796379647965796679677968796979707971797279737974797579767977797879797980798179827983798479857986798779887989799079917992799379947995799679977998799980008001800280038004800580068007800880098010801180128013801480158016801780188019802080218022802380248025802680278028802980308031803280338034803580368037803880398040804180428043804480458046804780488049805080518052805380548055805680578058805980608061806280638064806580668067806880698070807180728073807480758076807780788079808080818082808380848085808680878088808980908091809280938094809580968097809880998100810181028103810481058106810781088109811081118112811381148115811681178118811981208121812281238124812581268127812881298130813181328133813481358136813781388139814081418142814381448145814681478148814981508151815281538154815581568157815881598160816181628163816481658166816781688169817081718172817381748175817681778178817981808181818281838184818581868187818881898190819181928193819481958196819781988199820082018202820382048205820682078208820982108211821282138214821582168217821882198220822182228223822482258226822782288229823082318232823382348235823682378238823982408241824282438244824582468247824882498250825182528253825482558256825782588259826082618262826382648265826682678268826982708271827282738274827582768277827882798280828182828283828482858286828782888289829082918292829382948295829682978298829983008301830283038304830583068307830883098310831183128313831483158316831783188319832083218322832383248325832683278328832983308331833283338334833583368337833883398340834183428343834483458346834783488349835083518352835383548355835683578358835983608361836283638364836583668367836883698370837183728373837483758376837783788379838083818382838383848385838683878388838983908391839283938394839583968397839883998400840184028403840484058406840784088409841084118412841384148415841684178418841984208421842284238424842584268427842884298430843184328433843484358436843784388439844084418442844384448445844684478448844984508451845284538454845584568457845884598460846184628463846484658466846784688469847084718472847384748475847684778478847984808481848284838484848584868487848884898490849184928493849484958496849784988499850085018502850385048505850685078508850985108511851285138514851585168517851885198520852185228523852485258526852785288529853085318532853385348535853685378538853985408541854285438544854585468547854885498550855185528553855485558556855785588559856085618562856385648565856685678568856985708571857285738574857585768577857885798580858185828583858485858586858785888589859085918592859385948595859685978598859986008601860286038604860586068607860886098610861186128613861486158616861786188619862086218622862386248625862686278628862986308631863286338634863586368637863886398640864186428643864486458646864786488649865086518652865386548655865686578658865986608661866286638664866586668667866886698670867186728673867486758676867786788679868086818682868386848685868686878688868986908691869286938694869586968697869886998700870187028703870487058706870787088709871087118712871387148715871687178718871987208721872287238724872587268727872887298730873187328733873487358736873787388739874087418742874387448745874687478748874987508751875287538754875587568757875887598760876187628763876487658766876787688769877087718772877387748775877687778778877987808781878287838784878587868787878887898790879187928793879487958796879787988799880088018802880388048805880688078808880988108811881288138814881588168817881888198820882188228823882488258826882788288829883088318832883388348835883688378838883988408841884288438844884588468847884888498850885188528853885488558856885788588859886088618862886388648865886688678868886988708871887288738874887588768877887888798880888188828883888488858886888788888889889088918892889388948895889688978898889989008901890289038904890589068907890889098910891189128913891489158916891789188919892089218922892389248925892689278928892989308931893289338934893589368937893889398940894189428943894489458946894789488949895089518952895389548955895689578958895989608961896289638964896589668967896889698970897189728973897489758976897789788979898089818982898389848985898689878988898989908991899289938994899589968997899889999000900190029003900490059006900790089009901090119012901390149015901690179018901990209021902290239024902590269027902890299030903190329033903490359036903790389039904090419042904390449045904690479048904990509051905290539054905590569057905890599060906190629063906490659066906790689069907090719072907390749075907690779078907990809081908290839084908590869087908890899090909190929093909490959096909790989099910091019102910391049105910691079108910991109111911291139114911591169117911891199120912191229123912491259126912791289129913091319132913391349135913691379138913991409141914291439144914591469147914891499150915191529153915491559156915791589159916091619162916391649165916691679168916991709171917291739174917591769177917891799180918191829183918491859186918791889189919091919192919391949195919691979198919992009201920292039204920592069207920892099210921192129213921492159216921792189219922092219222922392249225922692279228922992309231923292339234923592369237923892399240924192429243924492459246924792489249925092519252925392549255925692579258925992609261926292639264926592669267926892699270927192729273927492759276927792789279928092819282928392849285928692879288928992909291929292939294929592969297929892999300930193029303930493059306930793089309931093119312931393149315931693179318931993209321932293239324932593269327932893299330933193329333933493359336933793389339934093419342934393449345934693479348934993509351935293539354935593569357935893599360936193629363936493659366936793689369937093719372937393749375937693779378937993809381938293839384938593869387938893899390939193929393939493959396939793989399940094019402940394049405940694079408940994109411941294139414941594169417941894199420942194229423942494259426942794289429943094319432943394349435943694379438943994409441944294439444944594469447944894499450945194529453945494559456945794589459946094619462946394649465946694679468946994709471947294739474947594769477947894799480948194829483948494859486948794889489949094919492949394949495949694979498949995009501950295039504950595069507950895099510951195129513951495159516951795189519952095219522952395249525952695279528952995309531953295339534953595369537953895399540954195429543954495459546954795489549955095519552955395549555955695579558955995609561956295639564956595669567956895699570957195729573957495759576957795789579958095819582958395849585958695879588958995909591959295939594959595969597959895999600960196029603960496059606960796089609961096119612961396149615961696179618961996209621962296239624962596269627962896299630963196329633963496359636963796389639964096419642964396449645964696479648964996509651965296539654965596569657965896599660966196629663966496659666966796689669967096719672967396749675967696779678967996809681968296839684968596869687968896899690969196929693969496959696969796989699970097019702970397049705970697079708970997109711971297139714971597169717971897199720972197229723972497259726972797289729973097319732973397349735973697379738973997409741974297439744974597469747974897499750975197529753975497559756975797589759976097619762976397649765976697679768976997709771977297739774977597769777977897799780978197829783978497859786978797889789979097919792979397949795979697979798979998009801980298039804980598069807980898099810981198129813981498159816981798189819982098219822982398249825982698279828982998309831983298339834983598369837983898399840984198429843984498459846984798489849985098519852985398549855985698579858985998609861986298639864986598669867986898699870987198729873987498759876987798789879988098819882988398849885988698879888988998909891989298939894989598969897989898999900990199029903990499059906990799089909991099119912991399149915991699179918991999209921992299239924992599269927992899299930993199329933993499359936993799389939994099419942994399449945994699479948994999509951995299539954995599569957995899599960996199629963996499659966996799689969997099719972997399749975997699779978997999809981998299839984998599869987998899899990999199929993999499959996999799989999100001000110002100031000410005100061000710008100091001010011100121001310014100151001610017100181001910020100211002210023100241002510026100271002810029100301003110032100331003410035100361003710038100391004010041100421004310044100451004610047100481004910050100511005210053100541005510056100571005810059100601006110062100631006410065100661006710068100691007010071100721007310074100751007610077100781007910080100811008210083100841008510086100871008810089100901009110092100931009410095100961009710098100991010010101101021010310104101051010610107101081010910110101111011210113101141011510116101171011810119101201012110122101231012410125101261012710128101291013010131101321013310134101351013610137101381013910140101411014210143101441014510146101471014810149101501015110152101531015410155101561015710158101591016010161101621016310164101651016610167101681016910170101711017210173101741017510176101771017810179101801018110182101831018410185101861018710188101891019010191101921019310194101951019610197101981019910200102011020210203102041020510206102071020810209102101021110212102131021410215102161021710218102191022010221102221022310224102251022610227102281022910230102311023210233102341023510236102371023810239102401024110242102431024410245102461024710248102491025010251102521025310254102551025610257102581025910260102611026210263102641026510266102671026810269102701027110272102731027410275102761027710278102791028010281102821028310284102851028610287102881028910290102911029210293102941029510296102971029810299103001030110302103031030410305103061030710308103091031010311103121031310314103151031610317103181031910320103211032210323103241032510326103271032810329103301033110332103331033410335103361033710338103391034010341103421034310344103451034610347103481034910350103511035210353103541035510356103571035810359103601036110362103631036410365103661036710368103691037010371103721037310374103751037610377103781037910380103811038210383103841038510386103871038810389103901039110392103931039410395103961039710398103991040010401104021040310404104051040610407104081040910410104111041210413104141041510416104171041810419104201042110422104231042410425104261042710428104291043010431104321043310434104351043610437104381043910440104411044210443104441044510446104471044810449104501045110452104531045410455104561045710458104591046010461104621046310464104651046610467104681046910470104711047210473104741047510476104771047810479104801048110482104831048410485104861048710488104891049010491104921049310494104951049610497104981049910500105011050210503105041050510506105071050810509105101051110512105131051410515105161051710518105191052010521105221052310524105251052610527105281052910530105311053210533105341053510536105371053810539105401054110542105431054410545105461054710548105491055010551105521055310554105551055610557105581055910560105611056210563105641056510566105671056810569105701057110572105731057410575105761057710578105791058010581105821058310584105851058610587105881058910590105911059210593105941059510596105971059810599106001060110602106031060410605106061060710608106091061010611106121061310614106151061610617106181061910620106211062210623106241062510626106271062810629106301063110632106331063410635106361063710638106391064010641106421064310644106451064610647106481064910650106511065210653106541065510656106571065810659106601066110662106631066410665106661066710668106691067010671106721067310674106751067610677106781067910680106811068210683106841068510686106871068810689106901069110692106931069410695106961069710698106991070010701107021070310704107051070610707107081070910710107111071210713107141071510716107171071810719107201072110722107231072410725107261072710728107291073010731107321073310734107351073610737107381073910740107411074210743107441074510746107471074810749107501075110752107531075410755107561075710758107591076010761107621076310764107651076610767107681076910770107711077210773107741077510776107771077810779107801078110782107831078410785107861078710788107891079010791107921079310794107951079610797107981079910800108011080210803108041080510806108071080810809108101081110812108131081410815108161081710818108191082010821108221082310824108251082610827108281082910830108311083210833108341083510836108371083810839108401084110842108431084410845108461084710848108491085010851108521085310854108551085610857108581085910860108611086210863108641086510866108671086810869108701087110872108731087410875108761087710878108791088010881108821088310884108851088610887108881088910890108911089210893108941089510896108971089810899109001090110902109031090410905109061090710908109091091010911109121091310914109151091610917109181091910920109211092210923109241092510926109271092810929109301093110932109331093410935109361093710938109391094010941109421094310944109451094610947109481094910950109511095210953109541095510956109571095810959109601096110962109631096410965109661096710968109691097010971109721097310974109751097610977109781097910980109811098210983109841098510986109871098810989109901099110992109931099410995109961099710998109991100011001110021100311004110051100611007110081100911010110111101211013110141101511016110171101811019110201102111022110231102411025110261102711028110291103011031110321103311034110351103611037110381103911040110411104211043110441104511046110471104811049110501105111052110531105411055110561105711058110591106011061110621106311064110651106611067110681106911070110711107211073110741107511076110771107811079110801108111082110831108411085110861108711088110891109011091110921109311094110951109611097110981109911100111011110211103111041110511106111071110811109111101111111112111131111411115111161111711118111191112011121111221112311124111251112611127111281112911130111311113211133111341113511136111371113811139111401114111142111431114411145111461114711148111491115011151111521115311154111551115611157111581115911160111611116211163111641116511166111671116811169111701117111172111731117411175111761117711178111791118011181111821118311184111851118611187111881118911190111911119211193111941119511196111971119811199112001120111202112031120411205112061120711208112091121011211112121121311214112151121611217112181121911220112211122211223112241122511226112271122811229112301123111232112331123411235112361123711238112391124011241112421124311244112451124611247112481124911250112511125211253112541125511256112571125811259112601126111262112631126411265112661126711268112691127011271112721127311274112751127611277112781127911280112811128211283112841128511286112871128811289112901129111292112931129411295112961129711298112991130011301113021130311304113051130611307113081130911310113111131211313113141131511316113171131811319113201132111322113231132411325113261132711328113291133011331113321133311334113351133611337113381133911340113411134211343113441134511346113471134811349113501135111352113531135411355113561135711358113591136011361113621136311364113651136611367113681136911370113711137211373113741137511376113771137811379113801138111382113831138411385113861138711388113891139011391113921139311394113951139611397113981139911400114011140211403114041140511406114071140811409114101141111412114131141411415114161141711418114191142011421114221142311424114251142611427114281142911430114311143211433114341143511436114371143811439114401144111442114431144411445114461144711448114491145011451114521145311454114551145611457114581145911460114611146211463114641146511466114671146811469114701147111472114731147411475114761147711478114791148011481114821148311484114851148611487114881148911490114911149211493114941149511496114971149811499115001150111502115031150411505115061150711508115091151011511115121151311514115151151611517115181151911520115211152211523115241152511526115271152811529115301153111532115331153411535115361153711538115391154011541115421154311544115451154611547115481154911550115511155211553115541155511556115571155811559115601156111562115631156411565115661156711568115691157011571115721157311574115751157611577115781157911580115811158211583115841158511586115871158811589115901159111592115931159411595115961159711598115991160011601116021160311604116051160611607116081160911610116111161211613116141161511616116171161811619116201162111622116231162411625116261162711628116291163011631116321163311634116351163611637116381163911640116411164211643116441164511646116471164811649116501165111652116531165411655116561165711658116591166011661116621166311664116651166611667116681166911670116711167211673116741167511676116771167811679116801168111682116831168411685116861168711688116891169011691116921169311694116951169611697116981169911700117011170211703117041170511706117071170811709117101171111712117131171411715117161171711718117191172011721117221172311724117251172611727117281172911730117311173211733117341173511736117371173811739117401174111742117431174411745117461174711748117491175011751117521175311754117551175611757117581175911760117611176211763117641176511766117671176811769117701177111772117731177411775117761177711778117791178011781117821178311784117851178611787117881178911790117911179211793117941179511796117971179811799118001180111802118031180411805118061180711808118091181011811118121181311814118151181611817118181181911820118211182211823118241182511826118271182811829118301183111832118331183411835118361183711838118391184011841118421184311844118451184611847118481184911850118511185211853118541185511856118571185811859118601186111862118631186411865118661186711868118691187011871118721187311874118751187611877118781187911880118811188211883118841188511886118871188811889118901189111892118931189411895118961189711898118991190011901119021190311904119051190611907119081190911910119111191211913119141191511916119171191811919119201192111922119231192411925119261192711928119291193011931119321193311934119351193611937119381193911940119411194211943119441194511946119471194811949119501195111952119531195411955119561195711958119591196011961119621196311964119651196611967119681196911970119711197211973119741197511976119771197811979119801198111982119831198411985119861198711988119891199011991119921199311994119951199611997119981199912000120011200212003120041200512006120071200812009120101201112012120131201412015120161201712018120191202012021120221202312024120251202612027120281202912030120311203212033120341203512036120371203812039120401204112042120431204412045120461204712048120491205012051120521205312054120551205612057120581205912060120611206212063120641206512066120671206812069120701207112072120731207412075120761207712078120791208012081120821208312084120851208612087120881208912090120911209212093120941209512096120971209812099121001210112102121031210412105121061210712108121091211012111121121211312114121151211612117121181211912120121211212212123121241212512126121271212812129121301213112132121331213412135121361213712138121391214012141121421214312144121451214612147121481214912150121511215212153121541215512156121571215812159121601216112162121631216412165121661216712168121691217012171121721217312174121751217612177121781217912180121811218212183121841218512186121871218812189121901219112192121931219412195121961219712198121991220012201122021220312204122051220612207122081220912210122111221212213122141221512216122171221812219122201222112222122231222412225122261222712228122291223012231122321223312234122351223612237122381223912240122411224212243122441224512246122471224812249122501225112252122531225412255122561225712258122591226012261122621226312264122651226612267122681226912270122711227212273122741227512276122771227812279122801228112282122831228412285122861228712288122891229012291122921229312294122951229612297122981229912300123011230212303123041230512306123071230812309123101231112312123131231412315123161231712318123191232012321123221232312324123251232612327123281232912330123311233212333123341233512336123371233812339123401234112342123431234412345123461234712348123491235012351123521235312354123551235612357123581235912360123611236212363123641236512366123671236812369123701237112372123731237412375123761237712378123791238012381123821238312384123851238612387123881238912390123911239212393123941239512396123971239812399124001240112402124031240412405124061240712408124091241012411124121241312414124151241612417124181241912420124211242212423124241242512426124271242812429124301243112432124331243412435124361243712438124391244012441124421244312444124451244612447124481244912450124511245212453124541245512456124571245812459124601246112462124631246412465124661246712468124691247012471124721247312474124751247612477124781247912480124811248212483124841248512486124871248812489124901249112492124931249412495124961249712498124991250012501125021250312504125051250612507125081250912510125111251212513125141251512516125171251812519125201252112522125231252412525125261252712528125291253012531125321253312534125351253612537125381253912540125411254212543125441254512546125471254812549125501255112552125531255412555125561255712558125591256012561125621256312564125651256612567125681256912570125711257212573125741257512576125771257812579125801258112582125831258412585125861258712588125891259012591125921259312594125951259612597125981259912600126011260212603126041260512606126071260812609126101261112612126131261412615126161261712618126191262012621126221262312624126251262612627126281262912630126311263212633126341263512636126371263812639126401264112642126431264412645126461264712648126491265012651126521265312654126551265612657126581265912660126611266212663126641266512666126671266812669126701267112672126731267412675126761267712678126791268012681126821268312684126851268612687126881268912690126911269212693126941269512696126971269812699127001270112702127031270412705127061270712708127091271012711127121271312714127151271612717127181271912720127211272212723127241272512726127271272812729127301273112732127331273412735127361273712738127391274012741127421274312744127451274612747127481274912750127511275212753127541275512756127571275812759127601276112762127631276412765127661276712768127691277012771127721277312774127751277612777127781277912780127811278212783127841278512786127871278812789127901279112792127931279412795127961279712798127991280012801128021280312804128051280612807128081280912810128111281212813128141281512816128171281812819128201282112822128231282412825128261282712828128291283012831128321283312834128351283612837128381283912840128411284212843128441284512846128471284812849128501285112852128531285412855128561285712858128591286012861128621286312864128651286612867128681286912870128711287212873128741287512876128771287812879128801288112882128831288412885128861288712888128891289012891128921289312894128951289612897128981289912900129011290212903129041290512906129071290812909129101291112912129131291412915129161291712918129191292012921129221292312924129251292612927129281292912930129311293212933129341293512936129371293812939129401294112942129431294412945129461294712948129491295012951129521295312954129551295612957129581295912960129611296212963129641296512966129671296812969129701297112972129731297412975129761297712978129791298012981129821298312984129851298612987129881298912990129911299212993129941299512996129971299812999130001300113002130031300413005130061300713008130091301013011130121301313014130151301613017130181301913020130211302213023130241302513026130271302813029130301303113032130331303413035130361303713038130391304013041130421304313044130451304613047130481304913050130511305213053130541305513056130571305813059130601306113062130631306413065130661306713068130691307013071130721307313074130751307613077130781307913080130811308213083130841308513086130871308813089130901309113092130931309413095130961309713098130991310013101131021310313104131051310613107131081310913110131111311213113131141311513116131171311813119131201312113122131231312413125131261312713128131291313013131131321313313134131351313613137131381313913140131411314213143131441314513146131471314813149131501315113152131531315413155131561315713158131591316013161131621316313164131651316613167131681316913170131711317213173131741317513176131771317813179131801318113182131831318413185131861318713188131891319013191131921319313194131951319613197131981319913200132011320213203132041320513206132071320813209132101321113212132131321413215132161321713218132191322013221132221322313224132251322613227132281322913230132311323213233132341323513236132371323813239132401324113242132431324413245132461324713248132491325013251132521325313254132551325613257132581325913260132611326213263132641326513266132671326813269132701327113272132731327413275132761327713278132791328013281132821328313284132851328613287132881328913290132911329213293132941329513296132971329813299133001330113302133031330413305133061330713308133091331013311133121331313314133151331613317133181331913320133211332213323133241332513326133271332813329133301333113332133331333413335133361333713338133391334013341133421334313344133451334613347133481334913350133511335213353133541335513356133571335813359133601336113362133631336413365133661336713368133691337013371133721337313374133751337613377133781337913380133811338213383133841338513386133871338813389133901339113392133931339413395133961339713398133991340013401134021340313404134051340613407134081340913410134111341213413134141341513416134171341813419134201342113422134231342413425134261342713428134291343013431134321343313434134351343613437134381343913440134411344213443134441344513446134471344813449134501345113452134531345413455134561345713458134591346013461134621346313464134651346613467134681346913470134711347213473134741347513476134771347813479134801348113482134831348413485134861348713488134891349013491134921349313494134951349613497134981349913500135011350213503135041350513506135071350813509135101351113512135131351413515135161351713518135191352013521135221352313524135251352613527135281352913530135311353213533135341353513536135371353813539135401354113542135431354413545135461354713548135491355013551135521355313554135551355613557135581355913560135611356213563135641356513566135671356813569135701357113572135731357413575135761357713578135791358013581135821358313584135851358613587135881358913590135911359213593135941359513596135971359813599136001360113602136031360413605136061360713608136091361013611136121361313614136151361613617136181361913620136211362213623136241362513626136271362813629136301363113632136331363413635136361363713638136391364013641136421364313644136451364613647136481364913650136511365213653136541365513656136571365813659136601366113662136631366413665136661366713668136691367013671136721367313674136751367613677136781367913680136811368213683136841368513686136871368813689136901369113692136931369413695136961369713698136991370013701137021370313704137051370613707137081370913710137111371213713137141371513716137171371813719137201372113722137231372413725137261372713728137291373013731137321373313734137351373613737137381373913740137411374213743137441374513746137471374813749137501375113752137531375413755137561375713758137591376013761137621376313764137651376613767137681376913770137711377213773137741377513776137771377813779137801378113782137831378413785137861378713788137891379013791137921379313794137951379613797137981379913800138011380213803138041380513806138071380813809138101381113812138131381413815138161381713818138191382013821138221382313824138251382613827138281382913830138311383213833138341383513836138371383813839138401384113842138431384413845138461384713848138491385013851138521385313854138551385613857138581385913860138611386213863138641386513866138671386813869138701387113872138731387413875138761387713878138791388013881138821388313884138851388613887138881388913890138911389213893138941389513896138971389813899139001390113902139031390413905139061390713908139091391013911139121391313914139151391613917139181391913920139211392213923139241392513926139271392813929139301393113932139331393413935139361393713938139391394013941139421394313944139451394613947139481394913950139511395213953139541395513956139571395813959139601396113962139631396413965139661396713968139691397013971139721397313974139751397613977139781397913980139811398213983139841398513986139871398813989139901399113992139931399413995139961399713998139991400014001140021400314004140051400614007140081400914010140111401214013140141401514016140171401814019140201402114022140231402414025140261402714028140291403014031140321403314034140351403614037140381403914040140411404214043140441404514046140471404814049140501405114052140531405414055140561405714058140591406014061140621406314064140651406614067140681406914070140711407214073140741407514076140771407814079140801408114082140831408414085140861408714088140891409014091140921409314094140951409614097140981409914100141011410214103141041410514106141071410814109141101411114112141131411414115141161411714118141191412014121141221412314124141251412614127141281412914130141311413214133141341413514136141371413814139141401414114142141431414414145141461414714148141491415014151141521415314154141551415614157141581415914160141611416214163141641416514166141671416814169141701417114172141731417414175141761417714178141791418014181141821418314184141851418614187141881418914190141911419214193141941419514196141971419814199142001420114202142031420414205142061420714208142091421014211142121421314214142151421614217142181421914220142211422214223142241422514226142271422814229142301423114232142331423414235142361423714238142391424014241142421424314244142451424614247142481424914250142511425214253142541425514256142571425814259142601426114262142631426414265142661426714268142691427014271142721427314274142751427614277142781427914280142811428214283142841428514286142871428814289142901429114292142931429414295142961429714298142991430014301143021430314304143051430614307143081430914310143111431214313143141431514316143171431814319143201432114322143231432414325143261432714328143291433014331143321433314334143351433614337143381433914340143411434214343143441434514346143471434814349143501435114352143531435414355143561435714358143591436014361143621436314364143651436614367143681436914370143711437214373143741437514376143771437814379143801438114382143831438414385143861438714388143891439014391143921439314394143951439614397143981439914400144011440214403144041440514406144071440814409144101441114412144131441414415144161441714418144191442014421144221442314424144251442614427144281442914430144311443214433144341443514436144371443814439144401444114442144431444414445144461444714448144491445014451144521445314454144551445614457144581445914460144611446214463144641446514466144671446814469144701447114472144731447414475144761447714478144791448014481144821448314484144851448614487144881448914490144911449214493144941449514496144971449814499145001450114502145031450414505145061450714508145091451014511145121451314514145151451614517145181451914520145211452214523145241452514526145271452814529145301453114532145331453414535145361453714538145391454014541145421454314544145451454614547145481454914550145511455214553145541455514556145571455814559145601456114562145631456414565145661456714568145691457014571145721457314574145751457614577145781457914580145811458214583145841458514586145871458814589145901459114592145931459414595145961459714598145991460014601146021460314604146051460614607146081460914610146111461214613146141461514616146171461814619146201462114622146231462414625146261462714628146291463014631146321463314634146351463614637146381463914640146411464214643146441464514646146471464814649146501465114652146531465414655146561465714658146591466014661146621466314664146651466614667146681466914670146711467214673146741467514676146771467814679146801468114682146831468414685146861468714688146891469014691146921469314694146951469614697146981469914700147011470214703147041470514706147071470814709147101471114712147131471414715147161471714718147191472014721147221472314724147251472614727147281472914730147311473214733147341473514736147371473814739147401474114742147431474414745147461474714748147491475014751147521475314754147551475614757147581475914760147611476214763147641476514766147671476814769147701477114772147731477414775147761477714778147791478014781147821478314784147851478614787147881478914790147911479214793147941479514796147971479814799148001480114802148031480414805148061480714808148091481014811148121481314814148151481614817148181481914820148211482214823148241482514826148271482814829148301483114832148331483414835148361483714838148391484014841148421484314844148451484614847148481484914850148511485214853148541485514856148571485814859148601486114862148631486414865148661486714868148691487014871148721487314874148751487614877148781487914880148811488214883148841488514886148871488814889148901489114892148931489414895148961489714898148991490014901149021490314904149051490614907149081490914910149111491214913149141491514916149171491814919149201492114922149231492414925149261492714928149291493014931149321493314934149351493614937149381493914940149411494214943149441494514946149471494814949149501495114952149531495414955149561495714958149591496014961149621496314964149651496614967149681496914970149711497214973149741497514976149771497814979149801498114982149831498414985149861498714988149891499014991149921499314994149951499614997149981499915000150011500215003150041500515006150071500815009150101501115012150131501415015150161501715018150191502015021150221502315024150251502615027150281502915030150311503215033150341503515036150371503815039150401504115042150431504415045150461504715048150491505015051150521505315054150551505615057150581505915060150611506215063150641506515066150671506815069150701507115072150731507415075150761507715078150791508015081150821508315084150851508615087150881508915090150911509215093150941509515096150971509815099151001510115102151031510415105151061510715108151091511015111151121511315114151151511615117151181511915120151211512215123151241512515126151271512815129151301513115132151331513415135151361513715138151391514015141151421514315144151451514615147151481514915150151511515215153151541515515156151571515815159151601516115162151631516415165151661516715168151691517015171151721517315174151751517615177151781517915180151811518215183151841518515186151871518815189151901519115192151931519415195151961519715198151991520015201152021520315204152051520615207152081520915210152111521215213152141521515216152171521815219152201522115222152231522415225152261522715228152291523015231152321523315234152351523615237152381523915240152411524215243152441524515246152471524815249152501525115252152531525415255152561525715258152591526015261152621526315264152651526615267152681526915270152711527215273152741527515276152771527815279152801528115282152831528415285152861528715288152891529015291152921529315294152951529615297152981529915300153011530215303153041530515306153071530815309153101531115312153131531415315153161531715318153191532015321153221532315324153251532615327153281532915330153311533215333153341533515336153371533815339153401534115342153431534415345153461534715348153491535015351153521535315354153551535615357153581535915360153611536215363153641536515366153671536815369153701537115372153731537415375153761537715378153791538015381153821538315384153851538615387153881538915390153911539215393153941539515396153971539815399154001540115402154031540415405154061540715408154091541015411154121541315414154151541615417154181541915420154211542215423154241542515426154271542815429154301543115432154331543415435154361543715438154391544015441154421544315444154451544615447154481544915450154511545215453154541545515456154571545815459154601546115462154631546415465154661546715468154691547015471154721547315474154751547615477154781547915480154811548215483154841548515486154871548815489154901549115492154931549415495154961549715498154991550015501155021550315504155051550615507155081550915510155111551215513155141551515516155171551815519155201552115522155231552415525155261552715528155291553015531155321553315534155351553615537155381553915540155411554215543155441554515546155471554815549155501555115552155531555415555155561555715558155591556015561155621556315564155651556615567155681556915570155711557215573155741557515576155771557815579155801558115582155831558415585155861558715588155891559015591155921559315594155951559615597155981559915600156011560215603156041560515606156071560815609156101561115612156131561415615156161561715618156191562015621156221562315624156251562615627156281562915630156311563215633156341563515636156371563815639156401564115642156431564415645156461564715648156491565015651156521565315654156551565615657156581565915660156611566215663156641566515666156671566815669156701567115672156731567415675156761567715678156791568015681156821568315684156851568615687156881568915690156911569215693156941569515696156971569815699157001570115702157031570415705157061570715708157091571015711157121571315714157151571615717157181571915720157211572215723157241572515726157271572815729157301573115732157331573415735157361573715738157391574015741157421574315744157451574615747157481574915750157511575215753157541575515756157571575815759157601576115762157631576415765157661576715768157691577015771157721577315774157751577615777157781577915780157811578215783157841578515786157871578815789157901579115792157931579415795157961579715798157991580015801158021580315804158051580615807158081580915810158111581215813158141581515816158171581815819158201582115822158231582415825158261582715828158291583015831158321583315834158351583615837158381583915840158411584215843158441584515846158471584815849158501585115852158531585415855158561585715858158591586015861158621586315864158651586615867158681586915870158711587215873158741587515876158771587815879158801588115882158831588415885158861588715888158891589015891158921589315894158951589615897158981589915900159011590215903159041590515906159071590815909159101591115912159131591415915159161591715918159191592015921159221592315924159251592615927159281592915930159311593215933159341593515936159371593815939159401594115942159431594415945159461594715948159491595015951159521595315954159551595615957159581595915960159611596215963159641596515966159671596815969159701597115972159731597415975159761597715978159791598015981159821598315984159851598615987159881598915990159911599215993159941599515996159971599815999160001600116002160031600416005160061600716008160091601016011160121601316014160151601616017160181601916020160211602216023160241602516026160271602816029160301603116032160331603416035160361603716038160391604016041160421604316044160451604616047160481604916050160511605216053160541605516056160571605816059160601606116062160631606416065160661606716068160691607016071160721607316074160751607616077160781607916080160811608216083160841608516086160871608816089160901609116092160931609416095160961609716098160991610016101161021610316104161051610616107161081610916110161111611216113161141611516116161171611816119161201612116122161231612416125161261612716128161291613016131161321613316134161351613616137161381613916140161411614216143161441614516146161471614816149161501615116152161531615416155161561615716158161591616016161161621616316164161651616616167161681616916170161711617216173161741617516176161771617816179161801618116182161831618416185161861618716188161891619016191161921619316194161951619616197161981619916200162011620216203162041620516206162071620816209162101621116212162131621416215162161621716218162191622016221162221622316224162251622616227162281622916230162311623216233162341623516236162371623816239162401624116242162431624416245162461624716248162491625016251162521625316254162551625616257162581625916260162611626216263162641626516266162671626816269162701627116272162731627416275162761627716278162791628016281162821628316284162851628616287162881628916290162911629216293162941629516296162971629816299163001630116302163031630416305163061630716308163091631016311163121631316314163151631616317163181631916320163211632216323163241632516326163271632816329163301633116332163331633416335163361633716338163391634016341163421634316344163451634616347163481634916350163511635216353163541635516356163571635816359163601636116362163631636416365163661636716368163691637016371163721637316374163751637616377163781637916380163811638216383163841638516386163871638816389163901639116392163931639416395163961639716398163991640016401164021640316404164051640616407164081640916410164111641216413164141641516416164171641816419164201642116422164231642416425164261642716428164291643016431164321643316434164351643616437164381643916440164411644216443164441644516446164471644816449164501645116452164531645416455164561645716458164591646016461164621646316464164651646616467164681646916470164711647216473164741647516476164771647816479164801648116482164831648416485164861648716488164891649016491164921649316494164951649616497164981649916500165011650216503165041650516506165071650816509165101651116512165131651416515165161651716518165191652016521165221652316524165251652616527165281652916530165311653216533165341653516536165371653816539165401654116542165431654416545165461654716548165491655016551165521655316554165551655616557165581655916560165611656216563165641656516566165671656816569165701657116572165731657416575165761657716578165791658016581165821658316584165851658616587165881658916590165911659216593165941659516596165971659816599166001660116602166031660416605166061660716608166091661016611166121661316614166151661616617166181661916620166211662216623166241662516626166271662816629166301663116632166331663416635166361663716638166391664016641166421664316644166451664616647166481664916650166511665216653166541665516656166571665816659166601666116662166631666416665166661666716668166691667016671166721667316674166751667616677166781667916680166811668216683166841668516686166871668816689166901669116692166931669416695166961669716698166991670016701167021670316704167051670616707167081670916710167111671216713167141671516716167171671816719167201672116722167231672416725167261672716728167291673016731167321673316734167351673616737167381673916740167411674216743167441674516746167471674816749167501675116752167531675416755167561675716758167591676016761167621676316764167651676616767167681676916770167711677216773167741677516776167771677816779167801678116782167831678416785167861678716788167891679016791167921679316794167951679616797167981679916800168011680216803168041680516806168071680816809168101681116812168131681416815168161681716818168191682016821168221682316824168251682616827168281682916830168311683216833168341683516836168371683816839168401684116842168431684416845168461684716848168491685016851168521685316854168551685616857168581685916860168611686216863168641686516866168671686816869168701687116872168731687416875168761687716878168791688016881168821688316884168851688616887168881688916890168911689216893168941689516896168971689816899169001690116902169031690416905169061690716908169091691016911169121691316914169151691616917169181691916920169211692216923169241692516926169271692816929169301693116932169331693416935169361693716938169391694016941169421694316944169451694616947169481694916950169511695216953169541695516956169571695816959169601696116962169631696416965169661696716968169691697016971169721697316974169751697616977169781697916980169811698216983169841698516986169871698816989169901699116992169931699416995169961699716998169991700017001170021700317004170051700617007170081700917010170111701217013170141701517016170171701817019170201702117022170231702417025170261702717028170291703017031170321703317034170351703617037170381703917040170411704217043170441704517046170471704817049170501705117052170531705417055170561705717058170591706017061170621706317064170651706617067170681706917070170711707217073170741707517076170771707817079170801708117082170831708417085170861708717088170891709017091170921709317094170951709617097170981709917100171011710217103171041710517106171071710817109171101711117112171131711417115171161711717118171191712017121171221712317124171251712617127171281712917130171311713217133171341713517136171371713817139171401714117142171431714417145171461714717148171491715017151171521715317154171551715617157171581715917160171611716217163171641716517166171671716817169171701717117172171731717417175171761717717178171791718017181171821718317184171851718617187171881718917190171911719217193171941719517196171971719817199172001720117202172031720417205172061720717208172091721017211172121721317214172151721617217172181721917220172211722217223172241722517226172271722817229172301723117232172331723417235172361723717238172391724017241172421724317244172451724617247172481724917250172511725217253172541725517256172571725817259172601726117262172631726417265172661726717268172691727017271172721727317274172751727617277172781727917280172811728217283172841728517286172871728817289172901729117292172931729417295172961729717298172991730017301173021730317304173051730617307173081730917310173111731217313173141731517316173171731817319173201732117322173231732417325173261732717328173291733017331173321733317334173351733617337173381733917340173411734217343173441734517346173471734817349173501735117352173531735417355173561735717358173591736017361173621736317364173651736617367173681736917370173711737217373173741737517376173771737817379173801738117382173831738417385173861738717388173891739017391173921739317394173951739617397173981739917400174011740217403174041740517406174071740817409174101741117412174131741417415174161741717418174191742017421174221742317424174251742617427174281742917430174311743217433174341743517436174371743817439174401744117442174431744417445174461744717448174491745017451174521745317454174551745617457174581745917460174611746217463174641746517466174671746817469174701747117472174731747417475174761747717478174791748017481174821748317484174851748617487174881748917490174911749217493174941749517496174971749817499175001750117502175031750417505175061750717508175091751017511175121751317514175151751617517175181751917520175211752217523175241752517526175271752817529175301753117532175331753417535175361753717538175391754017541175421754317544175451754617547175481754917550175511755217553175541755517556175571755817559175601756117562175631756417565175661756717568175691757017571175721757317574175751757617577175781757917580175811758217583175841758517586175871758817589175901759117592175931759417595175961759717598175991760017601176021760317604176051760617607176081760917610176111761217613176141761517616176171761817619176201762117622176231762417625176261762717628176291763017631176321763317634176351763617637176381763917640176411764217643176441764517646176471764817649176501765117652176531765417655176561765717658176591766017661176621766317664176651766617667176681766917670176711767217673176741767517676176771767817679176801768117682176831768417685176861768717688176891769017691176921769317694176951769617697176981769917700177011770217703177041770517706177071770817709177101771117712177131771417715177161771717718177191772017721177221772317724177251772617727177281772917730177311773217733177341773517736177371773817739177401774117742177431774417745177461774717748177491775017751177521775317754177551775617757177581775917760177611776217763177641776517766177671776817769177701777117772177731777417775177761777717778177791778017781177821778317784177851778617787177881778917790177911779217793177941779517796177971779817799178001780117802178031780417805178061780717808178091781017811178121781317814178151781617817178181781917820178211782217823178241782517826178271782817829178301783117832178331783417835178361783717838178391784017841178421784317844178451784617847178481784917850178511785217853178541785517856178571785817859178601786117862178631786417865178661786717868178691787017871178721787317874178751787617877178781787917880178811788217883178841788517886178871788817889178901789117892178931789417895178961789717898178991790017901179021790317904179051790617907179081790917910179111791217913179141791517916179171791817919179201792117922179231792417925179261792717928179291793017931179321793317934179351793617937179381793917940179411794217943179441794517946179471794817949179501795117952179531795417955179561795717958179591796017961179621796317964179651796617967179681796917970179711797217973179741797517976179771797817979179801798117982179831798417985179861798717988179891799017991179921799317994179951799617997179981799918000180011800218003180041800518006180071800818009180101801118012180131801418015180161801718018180191802018021180221802318024180251802618027180281802918030180311803218033180341803518036180371803818039180401804118042180431804418045180461804718048180491805018051180521805318054180551805618057180581805918060180611806218063180641806518066180671806818069180701807118072180731807418075180761807718078180791808018081180821808318084180851808618087180881808918090180911809218093180941809518096180971809818099181001810118102181031810418105181061810718108181091811018111181121811318114181151811618117181181811918120181211812218123181241812518126181271812818129181301813118132181331813418135181361813718138181391814018141181421814318144181451814618147181481814918150181511815218153181541815518156181571815818159181601816118162181631816418165181661816718168181691817018171181721817318174181751817618177181781817918180181811818218183181841818518186181871818818189181901819118192181931819418195181961819718198181991820018201182021820318204182051820618207182081820918210182111821218213182141821518216182171821818219182201822118222182231822418225182261822718228182291823018231182321823318234182351823618237182381823918240182411824218243182441824518246182471824818249182501825118252182531825418255182561825718258182591826018261182621826318264182651826618267182681826918270182711827218273182741827518276182771827818279182801828118282182831828418285182861828718288182891829018291182921829318294182951829618297182981829918300183011830218303183041830518306183071830818309183101831118312183131831418315183161831718318183191832018321183221832318324183251832618327183281832918330183311833218333183341833518336183371833818339183401834118342183431834418345183461834718348183491835018351183521835318354183551835618357183581835918360183611836218363183641836518366183671836818369183701837118372183731837418375183761837718378183791838018381183821838318384183851838618387183881838918390183911839218393183941839518396183971839818399184001840118402184031840418405184061840718408184091841018411184121841318414184151841618417184181841918420184211842218423184241842518426184271842818429184301843118432184331843418435184361843718438184391844018441184421844318444184451844618447184481844918450184511845218453184541845518456184571845818459184601846118462184631846418465184661846718468184691847018471184721847318474184751847618477184781847918480184811848218483184841848518486184871848818489184901849118492184931849418495184961849718498184991850018501185021850318504185051850618507185081850918510185111851218513185141851518516185171851818519185201852118522185231852418525185261852718528185291853018531185321853318534185351853618537185381853918540185411854218543185441854518546185471854818549185501855118552185531855418555185561855718558185591856018561185621856318564185651856618567185681856918570185711857218573185741857518576185771857818579185801858118582185831858418585185861858718588185891859018591185921859318594185951859618597185981859918600186011860218603186041860518606186071860818609186101861118612186131861418615186161861718618186191862018621186221862318624186251862618627186281862918630186311863218633186341863518636186371863818639186401864118642186431864418645186461864718648186491865018651186521865318654186551865618657186581865918660186611866218663186641866518666186671866818669186701867118672186731867418675186761867718678186791868018681186821868318684186851868618687186881868918690186911869218693186941869518696186971869818699187001870118702187031870418705187061870718708187091871018711187121871318714187151871618717187181871918720187211872218723187241872518726187271872818729187301873118732187331873418735187361873718738187391874018741187421874318744187451874618747187481874918750187511875218753187541875518756187571875818759187601876118762187631876418765187661876718768187691877018771187721877318774187751877618777187781877918780187811878218783187841878518786187871878818789187901879118792187931879418795187961879718798187991880018801188021880318804188051880618807188081880918810188111881218813188141881518816188171881818819188201882118822188231882418825188261882718828188291883018831188321883318834188351883618837188381883918840188411884218843188441884518846188471884818849188501885118852188531885418855188561885718858188591886018861188621886318864188651886618867188681886918870188711887218873188741887518876188771887818879188801888118882188831888418885188861888718888188891889018891188921889318894188951889618897188981889918900189011890218903189041890518906189071890818909189101891118912189131891418915189161891718918189191892018921189221892318924189251892618927189281892918930189311893218933189341893518936189371893818939189401894118942189431894418945189461894718948189491895018951189521895318954189551895618957189581895918960189611896218963189641896518966189671896818969189701897118972189731897418975189761897718978189791898018981189821898318984189851898618987189881898918990189911899218993189941899518996189971899818999190001900119002190031900419005190061900719008190091901019011190121901319014190151901619017190181901919020190211902219023190241902519026190271902819029190301903119032190331903419035190361903719038190391904019041190421904319044190451904619047190481904919050190511905219053190541905519056190571905819059190601906119062190631906419065190661906719068190691907019071190721907319074190751907619077190781907919080190811908219083190841908519086190871908819089190901909119092190931909419095190961909719098190991910019101191021910319104191051910619107191081910919110191111911219113191141911519116191171911819119191201912119122191231912419125191261912719128191291913019131191321913319134191351913619137191381913919140191411914219143191441914519146191471914819149191501915119152191531915419155191561915719158191591916019161191621916319164191651916619167191681916919170191711917219173191741917519176191771917819179191801918119182191831918419185191861918719188191891919019191191921919319194191951919619197191981919919200192011920219203192041920519206192071920819209192101921119212192131921419215192161921719218192191922019221192221922319224192251922619227192281922919230192311923219233192341923519236192371923819239192401924119242192431924419245192461924719248192491925019251192521925319254192551925619257192581925919260192611926219263192641926519266192671926819269192701927119272192731927419275192761927719278192791928019281192821928319284192851928619287192881928919290192911929219293192941929519296192971929819299193001930119302193031930419305193061930719308193091931019311193121931319314193151931619317193181931919320193211932219323193241932519326193271932819329193301933119332193331933419335193361933719338193391934019341193421934319344193451934619347193481934919350193511935219353193541935519356193571935819359193601936119362193631936419365193661936719368193691937019371193721937319374193751937619377193781937919380193811938219383193841938519386193871938819389193901939119392193931939419395193961939719398193991940019401194021940319404194051940619407194081940919410194111941219413194141941519416194171941819419194201942119422194231942419425194261942719428194291943019431194321943319434194351943619437194381943919440194411944219443194441944519446194471944819449194501945119452194531945419455194561945719458194591946019461194621946319464194651946619467194681946919470194711947219473194741947519476194771947819479194801948119482194831948419485194861948719488194891949019491194921949319494194951949619497194981949919500195011950219503195041950519506195071950819509195101951119512195131951419515195161951719518195191952019521195221952319524195251952619527195281952919530195311953219533195341953519536195371953819539195401954119542195431954419545195461954719548195491955019551195521955319554195551955619557195581955919560195611956219563195641956519566195671956819569195701957119572195731957419575195761957719578195791958019581195821958319584195851958619587195881958919590195911959219593195941959519596195971959819599196001960119602196031960419605196061960719608196091961019611196121961319614196151961619617196181961919620196211962219623196241962519626196271962819629196301963119632196331963419635196361963719638196391964019641196421964319644196451964619647196481964919650196511965219653196541965519656196571965819659196601966119662196631966419665196661966719668196691967019671196721967319674196751967619677196781967919680196811968219683196841968519686196871968819689196901969119692196931969419695196961969719698196991970019701197021970319704197051970619707197081970919710197111971219713197141971519716197171971819719197201972119722197231972419725197261972719728197291973019731197321973319734197351973619737197381973919740197411974219743197441974519746197471974819749197501975119752197531975419755197561975719758197591976019761197621976319764197651976619767197681976919770197711977219773197741977519776197771977819779197801978119782197831978419785197861978719788197891979019791197921979319794197951979619797197981979919800198011980219803198041980519806198071980819809198101981119812198131981419815198161981719818198191982019821198221982319824198251982619827198281982919830198311983219833198341983519836198371983819839198401984119842198431984419845198461984719848198491985019851198521985319854198551985619857198581985919860198611986219863198641986519866198671986819869198701987119872198731987419875198761987719878198791988019881198821988319884198851988619887198881988919890198911989219893198941989519896198971989819899199001990119902199031990419905199061990719908199091991019911199121991319914199151991619917199181991919920199211992219923199241992519926199271992819929199301993119932199331993419935199361993719938199391994019941199421994319944199451994619947199481994919950199511995219953199541995519956199571995819959199601996119962199631996419965199661996719968199691997019971199721997319974199751997619977199781997919980199811998219983199841998519986199871998819989199901999119992199931999419995199961999719998199992000020001200022000320004200052000620007200082000920010200112001220013200142001520016200172001820019200202002120022200232002420025200262002720028200292003020031200322003320034200352003620037200382003920040200412004220043200442004520046200472004820049200502005120052200532005420055200562005720058200592006020061200622006320064200652006620067200682006920070200712007220073200742007520076200772007820079200802008120082200832008420085200862008720088200892009020091200922009320094200952009620097200982009920100201012010220103201042010520106201072010820109201102011120112201132011420115201162011720118201192012020121201222012320124201252012620127201282012920130201312013220133201342013520136201372013820139201402014120142201432014420145201462014720148201492015020151201522015320154201552015620157201582015920160201612016220163201642016520166201672016820169201702017120172201732017420175201762017720178201792018020181201822018320184201852018620187201882018920190201912019220193201942019520196201972019820199202002020120202202032020420205202062020720208202092021020211202122021320214202152021620217202182021920220202212022220223202242022520226202272022820229202302023120232202332023420235202362023720238202392024020241202422024320244202452024620247202482024920250202512025220253202542025520256202572025820259202602026120262202632026420265202662026720268202692027020271202722027320274202752027620277202782027920280202812028220283202842028520286202872028820289202902029120292202932029420295202962029720298202992030020301203022030320304203052030620307203082030920310203112031220313203142031520316203172031820319203202032120322203232032420325203262032720328203292033020331203322033320334203352033620337203382033920340203412034220343203442034520346203472034820349203502035120352203532035420355203562035720358203592036020361203622036320364203652036620367203682036920370203712037220373203742037520376203772037820379203802038120382203832038420385203862038720388203892039020391203922039320394203952039620397203982039920400204012040220403204042040520406204072040820409204102041120412204132041420415204162041720418204192042020421204222042320424204252042620427204282042920430204312043220433204342043520436204372043820439204402044120442204432044420445204462044720448204492045020451204522045320454204552045620457204582045920460204612046220463204642046520466204672046820469204702047120472204732047420475204762047720478204792048020481204822048320484204852048620487204882048920490204912049220493204942049520496204972049820499205002050120502205032050420505205062050720508205092051020511205122051320514205152051620517205182051920520205212052220523205242052520526205272052820529205302053120532205332053420535205362053720538205392054020541205422054320544205452054620547205482054920550205512055220553205542055520556205572055820559205602056120562205632056420565205662056720568205692057020571205722057320574205752057620577205782057920580205812058220583205842058520586205872058820589205902059120592205932059420595205962059720598205992060020601206022060320604206052060620607206082060920610206112061220613206142061520616206172061820619206202062120622206232062420625206262062720628206292063020631206322063320634206352063620637206382063920640206412064220643206442064520646206472064820649206502065120652206532065420655206562065720658206592066020661206622066320664206652066620667206682066920670206712067220673206742067520676206772067820679206802068120682206832068420685206862068720688206892069020691206922069320694206952069620697206982069920700207012070220703207042070520706207072070820709207102071120712207132071420715207162071720718207192072020721207222072320724207252072620727207282072920730207312073220733207342073520736207372073820739207402074120742207432074420745207462074720748207492075020751207522075320754207552075620757207582075920760207612076220763207642076520766207672076820769207702077120772207732077420775207762077720778207792078020781207822078320784207852078620787207882078920790207912079220793207942079520796207972079820799208002080120802208032080420805208062080720808208092081020811208122081320814208152081620817208182081920820208212082220823208242082520826208272082820829208302083120832208332083420835208362083720838208392084020841208422084320844208452084620847208482084920850208512085220853208542085520856208572085820859208602086120862208632086420865208662086720868208692087020871208722087320874208752087620877208782087920880208812088220883208842088520886208872088820889208902089120892208932089420895208962089720898208992090020901209022090320904209052090620907209082090920910209112091220913209142091520916209172091820919209202092120922209232092420925209262092720928209292093020931209322093320934209352093620937209382093920940209412094220943209442094520946209472094820949209502095120952209532095420955209562095720958209592096020961209622096320964209652096620967209682096920970209712097220973209742097520976209772097820979209802098120982209832098420985209862098720988209892099020991209922099320994209952099620997209982099921000210012100221003210042100521006210072100821009210102101121012210132101421015210162101721018210192102021021210222102321024210252102621027210282102921030210312103221033210342103521036210372103821039210402104121042210432104421045210462104721048210492105021051210522105321054210552105621057210582105921060210612106221063210642106521066210672106821069210702107121072210732107421075210762107721078210792108021081210822108321084210852108621087210882108921090210912109221093210942109521096210972109821099211002110121102211032110421105211062110721108211092111021111211122111321114211152111621117211182111921120211212112221123211242112521126211272112821129211302113121132211332113421135211362113721138211392114021141211422114321144211452114621147211482114921150211512115221153211542115521156211572115821159211602116121162211632116421165211662116721168211692117021171211722117321174211752117621177211782117921180211812118221183211842118521186211872118821189211902119121192211932119421195211962119721198211992120021201212022120321204212052120621207212082120921210212112121221213212142121521216212172121821219212202122121222212232122421225212262122721228212292123021231212322123321234212352123621237212382123921240212412124221243212442124521246212472124821249212502125121252212532125421255212562125721258212592126021261212622126321264212652126621267212682126921270212712127221273212742127521276212772127821279212802128121282212832128421285212862128721288212892129021291212922129321294212952129621297212982129921300213012130221303213042130521306213072130821309213102131121312213132131421315213162131721318213192132021321213222132321324213252132621327213282132921330213312133221333213342133521336213372133821339213402134121342213432134421345213462134721348213492135021351213522135321354213552135621357213582135921360213612136221363213642136521366213672136821369213702137121372213732137421375213762137721378213792138021381213822138321384213852138621387213882138921390213912139221393213942139521396213972139821399214002140121402214032140421405214062140721408214092141021411214122141321414214152141621417214182141921420214212142221423214242142521426214272142821429214302143121432214332143421435214362143721438214392144021441214422144321444214452144621447214482144921450214512145221453214542145521456214572145821459214602146121462214632146421465214662146721468214692147021471214722147321474214752147621477214782147921480214812148221483214842148521486214872148821489214902149121492214932149421495214962149721498214992150021501215022150321504215052150621507215082150921510215112151221513215142151521516215172151821519215202152121522215232152421525215262152721528215292153021531215322153321534215352153621537215382153921540215412154221543215442154521546215472154821549215502155121552215532155421555215562155721558215592156021561215622156321564215652156621567215682156921570215712157221573215742157521576215772157821579215802158121582215832158421585215862158721588215892159021591215922159321594215952159621597215982159921600216012160221603216042160521606216072160821609216102161121612216132161421615216162161721618216192162021621216222162321624216252162621627216282162921630216312163221633216342163521636216372163821639216402164121642216432164421645216462164721648216492165021651216522165321654216552165621657216582165921660216612166221663216642166521666216672166821669216702167121672216732167421675216762167721678216792168021681216822168321684216852168621687216882168921690216912169221693216942169521696216972169821699217002170121702217032170421705217062170721708217092171021711217122171321714217152171621717217182171921720217212172221723217242172521726217272172821729217302173121732217332173421735217362173721738217392174021741217422174321744217452174621747217482174921750217512175221753217542175521756217572175821759217602176121762217632176421765217662176721768217692177021771217722177321774217752177621777217782177921780217812178221783217842178521786217872178821789217902179121792217932179421795217962179721798217992180021801218022180321804218052180621807218082180921810218112181221813218142181521816218172181821819218202182121822218232182421825218262182721828218292183021831218322183321834218352183621837218382183921840218412184221843218442184521846218472184821849218502185121852218532185421855218562185721858218592186021861218622186321864218652186621867218682186921870218712187221873218742187521876218772187821879218802188121882218832188421885218862188721888218892189021891218922189321894218952189621897218982189921900219012190221903219042190521906219072190821909219102191121912219132191421915219162191721918219192192021921219222192321924219252192621927219282192921930219312193221933219342193521936219372193821939219402194121942219432194421945219462194721948219492195021951219522195321954219552195621957219582195921960219612196221963219642196521966219672196821969219702197121972219732197421975219762197721978219792198021981219822198321984219852198621987219882198921990219912199221993219942199521996219972199821999220002200122002220032200422005220062200722008220092201022011220122201322014220152201622017220182201922020220212202222023220242202522026220272202822029220302203122032220332203422035220362203722038220392204022041220422204322044220452204622047220482204922050220512205222053220542205522056220572205822059220602206122062220632206422065220662206722068220692207022071220722207322074220752207622077220782207922080220812208222083220842208522086220872208822089220902209122092220932209422095220962209722098220992210022101221022210322104221052210622107221082210922110221112211222113221142211522116221172211822119221202212122122221232212422125221262212722128221292213022131221322213322134221352213622137221382213922140221412214222143221442214522146221472214822149221502215122152221532215422155221562215722158221592216022161221622216322164221652216622167221682216922170221712217222173221742217522176221772217822179221802218122182221832218422185221862218722188221892219022191221922219322194221952219622197221982219922200222012220222203222042220522206222072220822209222102221122212222132221422215222162221722218222192222022221222222222322224222252222622227222282222922230222312223222233222342223522236222372223822239222402224122242222432224422245222462224722248222492225022251222522225322254222552225622257222582225922260222612226222263222642226522266222672226822269222702227122272222732227422275222762227722278222792228022281222822228322284222852228622287222882228922290222912229222293222942229522296222972229822299223002230122302223032230422305223062230722308223092231022311223122231322314223152231622317223182231922320223212232222323223242232522326223272232822329223302233122332223332233422335223362233722338223392234022341223422234322344223452234622347223482234922350223512235222353223542235522356223572235822359223602236122362223632236422365223662236722368223692237022371223722237322374223752237622377223782237922380223812238222383223842238522386223872238822389223902239122392223932239422395223962239722398223992240022401224022240322404224052240622407224082240922410224112241222413224142241522416224172241822419224202242122422224232242422425224262242722428224292243022431224322243322434224352243622437224382243922440224412244222443224442244522446224472244822449224502245122452224532245422455224562245722458224592246022461224622246322464224652246622467224682246922470224712247222473224742247522476224772247822479224802248122482224832248422485224862248722488224892249022491224922249322494224952249622497224982249922500225012250222503225042250522506225072250822509225102251122512225132251422515225162251722518225192252022521225222252322524225252252622527225282252922530225312253222533225342253522536225372253822539225402254122542225432254422545225462254722548225492255022551225522255322554225552255622557225582255922560225612256222563225642256522566225672256822569225702257122572225732257422575225762257722578225792258022581225822258322584225852258622587225882258922590225912259222593225942259522596225972259822599226002260122602226032260422605226062260722608226092261022611226122261322614226152261622617226182261922620226212262222623226242262522626226272262822629226302263122632226332263422635226362263722638226392264022641226422264322644226452264622647226482264922650226512265222653226542265522656226572265822659226602266122662226632266422665226662266722668226692267022671226722267322674226752267622677226782267922680226812268222683226842268522686226872268822689226902269122692226932269422695226962269722698226992270022701227022270322704227052270622707227082270922710227112271222713227142271522716227172271822719227202272122722227232272422725227262272722728227292273022731227322273322734227352273622737227382273922740227412274222743227442274522746227472274822749227502275122752227532275422755227562275722758227592276022761227622276322764227652276622767227682276922770227712277222773227742277522776227772277822779227802278122782227832278422785227862278722788227892279022791227922279322794227952279622797227982279922800228012280222803228042280522806228072280822809228102281122812228132281422815228162281722818228192282022821228222282322824228252282622827228282282922830228312283222833228342283522836228372283822839228402284122842228432284422845228462284722848228492285022851228522285322854228552285622857228582285922860228612286222863228642286522866228672286822869228702287122872228732287422875228762287722878228792288022881228822288322884228852288622887228882288922890228912289222893228942289522896228972289822899229002290122902229032290422905229062290722908229092291022911229122291322914229152291622917229182291922920229212292222923229242292522926229272292822929229302293122932229332293422935229362293722938229392294022941229422294322944229452294622947229482294922950229512295222953229542295522956229572295822959229602296122962229632296422965229662296722968229692297022971229722297322974229752297622977229782297922980229812298222983229842298522986229872298822989229902299122992229932299422995229962299722998229992300023001230022300323004230052300623007230082300923010230112301223013230142301523016230172301823019230202302123022230232302423025230262302723028230292303023031230322303323034230352303623037230382303923040230412304223043230442304523046230472304823049230502305123052230532305423055230562305723058230592306023061230622306323064230652306623067230682306923070230712307223073230742307523076230772307823079230802308123082230832308423085230862308723088230892309023091230922309323094230952309623097230982309923100231012310223103231042310523106231072310823109231102311123112231132311423115231162311723118231192312023121231222312323124231252312623127231282312923130231312313223133231342313523136231372313823139231402314123142231432314423145231462314723148231492315023151231522315323154231552315623157231582315923160231612316223163231642316523166231672316823169231702317123172231732317423175231762317723178231792318023181231822318323184231852318623187231882318923190231912319223193231942319523196231972319823199232002320123202232032320423205232062320723208232092321023211232122321323214232152321623217232182321923220232212322223223232242322523226232272322823229232302323123232232332323423235232362323723238232392324023241232422324323244232452324623247232482324923250232512325223253232542325523256232572325823259232602326123262232632326423265232662326723268232692327023271232722327323274232752327623277232782327923280232812328223283232842328523286232872328823289232902329123292232932329423295232962329723298232992330023301233022330323304233052330623307233082330923310233112331223313233142331523316233172331823319233202332123322233232332423325233262332723328233292333023331233322333323334233352333623337233382333923340233412334223343233442334523346233472334823349233502335123352233532335423355233562335723358233592336023361233622336323364233652336623367233682336923370233712337223373233742337523376233772337823379233802338123382233832338423385233862338723388233892339023391233922339323394233952339623397233982339923400234012340223403234042340523406234072340823409234102341123412234132341423415234162341723418234192342023421234222342323424234252342623427234282342923430234312343223433234342343523436234372343823439234402344123442234432344423445234462344723448234492345023451234522345323454234552345623457234582345923460234612346223463234642346523466234672346823469234702347123472234732347423475234762347723478234792348023481234822348323484234852348623487234882348923490234912349223493234942349523496234972349823499235002350123502235032350423505235062350723508235092351023511235122351323514235152351623517235182351923520235212352223523235242352523526235272352823529235302353123532235332353423535235362353723538235392354023541235422354323544235452354623547235482354923550235512355223553235542355523556235572355823559235602356123562235632356423565235662356723568235692357023571235722357323574235752357623577235782357923580235812358223583235842358523586235872358823589235902359123592235932359423595235962359723598235992360023601236022360323604236052360623607236082360923610236112361223613236142361523616236172361823619236202362123622236232362423625236262362723628236292363023631236322363323634236352363623637236382363923640236412364223643236442364523646236472364823649236502365123652236532365423655236562365723658236592366023661236622366323664236652366623667236682366923670236712367223673236742367523676236772367823679236802368123682236832368423685236862368723688236892369023691236922369323694236952369623697236982369923700237012370223703237042370523706237072370823709237102371123712237132371423715237162371723718237192372023721237222372323724237252372623727237282372923730237312373223733237342373523736237372373823739237402374123742237432374423745237462374723748237492375023751237522375323754237552375623757237582375923760237612376223763237642376523766237672376823769237702377123772237732377423775237762377723778237792378023781237822378323784237852378623787237882378923790237912379223793237942379523796237972379823799238002380123802238032380423805238062380723808238092381023811238122381323814238152381623817238182381923820238212382223823238242382523826238272382823829238302383123832238332383423835238362383723838238392384023841238422384323844238452384623847238482384923850238512385223853238542385523856238572385823859238602386123862238632386423865238662386723868238692387023871238722387323874238752387623877238782387923880238812388223883238842388523886238872388823889238902389123892238932389423895238962389723898238992390023901239022390323904239052390623907239082390923910239112391223913239142391523916239172391823919239202392123922239232392423925239262392723928239292393023931239322393323934239352393623937239382393923940239412394223943239442394523946239472394823949239502395123952239532395423955239562395723958239592396023961239622396323964239652396623967239682396923970239712397223973239742397523976239772397823979239802398123982239832398423985239862398723988239892399023991239922399323994239952399623997239982399924000240012400224003240042400524006240072400824009240102401124012240132401424015240162401724018240192402024021240222402324024240252402624027240282402924030240312403224033240342403524036240372403824039240402404124042240432404424045240462404724048240492405024051240522405324054240552405624057240582405924060240612406224063240642406524066240672406824069240702407124072240732407424075240762407724078240792408024081240822408324084240852408624087240882408924090240912409224093240942409524096240972409824099241002410124102241032410424105241062410724108241092411024111241122411324114241152411624117241182411924120241212412224123241242412524126241272412824129241302413124132241332413424135241362413724138241392414024141241422414324144241452414624147241482414924150241512415224153241542415524156241572415824159241602416124162241632416424165241662416724168241692417024171241722417324174241752417624177241782417924180241812418224183241842418524186241872418824189241902419124192241932419424195241962419724198241992420024201242022420324204242052420624207242082420924210242112421224213242142421524216242172421824219242202422124222242232422424225242262422724228242292423024231242322423324234242352423624237242382423924240242412424224243242442424524246242472424824249242502425124252242532425424255242562425724258242592426024261242622426324264242652426624267242682426924270242712427224273242742427524276242772427824279242802428124282242832428424285242862428724288242892429024291242922429324294242952429624297242982429924300243012430224303243042430524306243072430824309243102431124312243132431424315243162431724318243192432024321243222432324324243252432624327243282432924330243312433224333243342433524336243372433824339243402434124342243432434424345243462434724348243492435024351243522435324354243552435624357243582435924360243612436224363243642436524366243672436824369243702437124372243732437424375243762437724378243792438024381243822438324384243852438624387243882438924390243912439224393243942439524396243972439824399244002440124402244032440424405244062440724408244092441024411244122441324414244152441624417244182441924420244212442224423244242442524426244272442824429244302443124432244332443424435244362443724438244392444024441244422444324444244452444624447244482444924450244512445224453244542445524456244572445824459244602446124462244632446424465244662446724468244692447024471244722447324474244752447624477244782447924480244812448224483244842448524486244872448824489244902449124492244932449424495244962449724498244992450024501245022450324504245052450624507245082450924510245112451224513245142451524516245172451824519245202452124522245232452424525245262452724528245292453024531245322453324534245352453624537245382453924540245412454224543245442454524546245472454824549245502455124552245532455424555245562455724558245592456024561245622456324564245652456624567245682456924570245712457224573245742457524576245772457824579245802458124582245832458424585245862458724588245892459024591245922459324594245952459624597245982459924600246012460224603246042460524606246072460824609246102461124612246132461424615246162461724618246192462024621246222462324624246252462624627246282462924630246312463224633246342463524636246372463824639246402464124642246432464424645246462464724648246492465024651246522465324654246552465624657246582465924660246612466224663246642466524666246672466824669246702467124672246732467424675246762467724678246792468024681246822468324684246852468624687246882468924690246912469224693246942469524696246972469824699247002470124702247032470424705247062470724708247092471024711247122471324714247152471624717247182471924720247212472224723247242472524726247272472824729247302473124732247332473424735247362473724738247392474024741247422474324744247452474624747247482474924750247512475224753247542475524756247572475824759247602476124762247632476424765247662476724768247692477024771247722477324774247752477624777247782477924780247812478224783247842478524786247872478824789247902479124792247932479424795247962479724798247992480024801248022480324804248052480624807248082480924810248112481224813248142481524816248172481824819248202482124822248232482424825248262482724828248292483024831248322483324834248352483624837248382483924840248412484224843248442484524846248472484824849248502485124852248532485424855248562485724858248592486024861248622486324864248652486624867248682486924870248712487224873248742487524876248772487824879248802488124882248832488424885248862488724888248892489024891248922489324894248952489624897248982489924900249012490224903249042490524906249072490824909249102491124912249132491424915249162491724918249192492024921249222492324924249252492624927249282492924930249312493224933249342493524936249372493824939249402494124942249432494424945249462494724948249492495024951249522495324954249552495624957249582495924960249612496224963249642496524966249672496824969249702497124972249732497424975249762497724978249792498024981249822498324984249852498624987249882498924990249912499224993249942499524996249972499824999250002500125002250032500425005250062500725008250092501025011250122501325014250152501625017250182501925020250212502225023250242502525026250272502825029250302503125032250332503425035250362503725038250392504025041250422504325044250452504625047250482504925050250512505225053250542505525056250572505825059250602506125062250632506425065250662506725068250692507025071250722507325074250752507625077250782507925080250812508225083250842508525086250872508825089250902509125092250932509425095250962509725098250992510025101251022510325104251052510625107251082510925110251112511225113251142511525116251172511825119251202512125122251232512425125251262512725128251292513025131251322513325134251352513625137251382513925140251412514225143251442514525146251472514825149251502515125152251532515425155251562515725158251592516025161251622516325164251652516625167251682516925170251712517225173251742517525176251772517825179251802518125182251832518425185251862518725188251892519025191251922519325194251952519625197251982519925200252012520225203252042520525206252072520825209252102521125212252132521425215252162521725218252192522025221252222522325224252252522625227252282522925230252312523225233252342523525236252372523825239252402524125242252432524425245252462524725248252492525025251252522525325254252552525625257252582525925260252612526225263252642526525266252672526825269252702527125272252732527425275252762527725278252792528025281252822528325284252852528625287252882528925290252912529225293252942529525296252972529825299253002530125302253032530425305253062530725308253092531025311253122531325314253152531625317253182531925320253212532225323253242532525326253272532825329253302533125332253332533425335253362533725338253392534025341253422534325344253452534625347253482534925350253512535225353253542535525356253572535825359253602536125362253632536425365253662536725368253692537025371253722537325374253752537625377253782537925380253812538225383253842538525386253872538825389253902539125392253932539425395253962539725398253992540025401254022540325404254052540625407254082540925410254112541225413254142541525416254172541825419254202542125422254232542425425254262542725428254292543025431254322543325434254352543625437254382543925440254412544225443254442544525446254472544825449254502545125452254532545425455254562545725458254592546025461254622546325464254652546625467254682546925470254712547225473254742547525476254772547825479254802548125482254832548425485254862548725488254892549025491254922549325494254952549625497254982549925500255012550225503255042550525506255072550825509255102551125512255132551425515255162551725518255192552025521255222552325524255252552625527255282552925530255312553225533255342553525536255372553825539255402554125542255432554425545255462554725548255492555025551255522555325554255552555625557255582555925560255612556225563255642556525566255672556825569255702557125572255732557425575255762557725578255792558025581255822558325584255852558625587255882558925590255912559225593255942559525596255972559825599256002560125602256032560425605256062560725608256092561025611256122561325614256152561625617256182561925620256212562225623256242562525626256272562825629256302563125632256332563425635256362563725638256392564025641256422564325644256452564625647256482564925650256512565225653256542565525656256572565825659256602566125662256632566425665256662566725668256692567025671256722567325674256752567625677256782567925680256812568225683256842568525686256872568825689256902569125692256932569425695256962569725698256992570025701257022570325704257052570625707257082570925710257112571225713257142571525716257172571825719257202572125722257232572425725257262572725728257292573025731257322573325734257352573625737257382573925740257412574225743257442574525746257472574825749257502575125752257532575425755257562575725758257592576025761257622576325764257652576625767257682576925770257712577225773257742577525776257772577825779257802578125782257832578425785257862578725788257892579025791257922579325794257952579625797257982579925800258012580225803258042580525806258072580825809258102581125812258132581425815258162581725818258192582025821258222582325824258252582625827258282582925830258312583225833258342583525836258372583825839258402584125842258432584425845258462584725848258492585025851258522585325854258552585625857258582585925860258612586225863258642586525866258672586825869258702587125872258732587425875258762587725878258792588025881258822588325884258852588625887258882588925890258912589225893258942589525896258972589825899259002590125902259032590425905259062590725908259092591025911259122591325914259152591625917259182591925920259212592225923259242592525926259272592825929259302593125932259332593425935259362593725938259392594025941259422594325944259452594625947259482594925950259512595225953259542595525956259572595825959259602596125962259632596425965259662596725968259692597025971259722597325974259752597625977259782597925980259812598225983259842598525986259872598825989259902599125992259932599425995259962599725998259992600026001260022600326004260052600626007260082600926010260112601226013260142601526016260172601826019260202602126022260232602426025260262602726028260292603026031260322603326034260352603626037260382603926040260412604226043260442604526046260472604826049260502605126052260532605426055260562605726058260592606026061260622606326064260652606626067260682606926070260712607226073260742607526076260772607826079260802608126082260832608426085260862608726088260892609026091260922609326094260952609626097260982609926100261012610226103261042610526106261072610826109261102611126112261132611426115261162611726118261192612026121261222612326124261252612626127261282612926130261312613226133261342613526136261372613826139261402614126142261432614426145261462614726148261492615026151261522615326154261552615626157261582615926160261612616226163261642616526166261672616826169261702617126172261732617426175261762617726178261792618026181261822618326184261852618626187261882618926190261912619226193261942619526196261972619826199262002620126202262032620426205262062620726208262092621026211262122621326214262152621626217262182621926220262212622226223262242622526226262272622826229262302623126232262332623426235262362623726238262392624026241262422624326244262452624626247262482624926250262512625226253262542625526256262572625826259262602626126262262632626426265262662626726268262692627026271262722627326274262752627626277262782627926280262812628226283262842628526286262872628826289262902629126292262932629426295262962629726298262992630026301263022630326304263052630626307263082630926310263112631226313263142631526316263172631826319263202632126322263232632426325263262632726328263292633026331263322633326334263352633626337263382633926340263412634226343263442634526346263472634826349263502635126352263532635426355263562635726358263592636026361263622636326364263652636626367263682636926370263712637226373263742637526376263772637826379263802638126382263832638426385263862638726388263892639026391263922639326394263952639626397263982639926400264012640226403264042640526406264072640826409264102641126412264132641426415264162641726418264192642026421264222642326424264252642626427264282642926430264312643226433264342643526436264372643826439264402644126442264432644426445264462644726448264492645026451264522645326454264552645626457264582645926460264612646226463264642646526466264672646826469264702647126472264732647426475264762647726478264792648026481264822648326484264852648626487264882648926490264912649226493264942649526496264972649826499265002650126502265032650426505265062650726508265092651026511265122651326514265152651626517265182651926520265212652226523265242652526526265272652826529265302653126532265332653426535265362653726538265392654026541265422654326544265452654626547265482654926550265512655226553265542655526556265572655826559265602656126562265632656426565265662656726568265692657026571265722657326574265752657626577265782657926580265812658226583265842658526586265872658826589265902659126592265932659426595265962659726598265992660026601266022660326604266052660626607266082660926610266112661226613266142661526616266172661826619266202662126622266232662426625266262662726628266292663026631266322663326634266352663626637266382663926640266412664226643266442664526646266472664826649266502665126652266532665426655266562665726658266592666026661266622666326664266652666626667266682666926670266712667226673266742667526676266772667826679266802668126682266832668426685266862668726688266892669026691266922669326694266952669626697266982669926700267012670226703267042670526706267072670826709267102671126712267132671426715267162671726718267192672026721267222672326724267252672626727267282672926730267312673226733267342673526736267372673826739267402674126742267432674426745267462674726748267492675026751267522675326754267552675626757267582675926760267612676226763267642676526766267672676826769267702677126772267732677426775267762677726778267792678026781267822678326784267852678626787267882678926790267912679226793267942679526796267972679826799268002680126802268032680426805268062680726808268092681026811268122681326814268152681626817268182681926820268212682226823268242682526826268272682826829268302683126832268332683426835268362683726838268392684026841268422684326844268452684626847268482684926850268512685226853268542685526856268572685826859268602686126862268632686426865268662686726868268692687026871268722687326874268752687626877268782687926880268812688226883268842688526886268872688826889268902689126892268932689426895268962689726898268992690026901269022690326904269052690626907269082690926910269112691226913269142691526916269172691826919269202692126922269232692426925269262692726928269292693026931269322693326934269352693626937269382693926940269412694226943269442694526946269472694826949269502695126952269532695426955269562695726958269592696026961269622696326964269652696626967269682696926970269712697226973269742697526976269772697826979269802698126982269832698426985269862698726988269892699026991269922699326994269952699626997269982699927000270012700227003270042700527006270072700827009270102701127012270132701427015270162701727018270192702027021270222702327024270252702627027270282702927030270312703227033270342703527036270372703827039270402704127042270432704427045270462704727048270492705027051270522705327054270552705627057270582705927060270612706227063270642706527066270672706827069270702707127072270732707427075270762707727078270792708027081270822708327084270852708627087270882708927090270912709227093270942709527096270972709827099271002710127102271032710427105271062710727108271092711027111271122711327114271152711627117271182711927120271212712227123271242712527126271272712827129271302713127132271332713427135271362713727138271392714027141271422714327144271452714627147271482714927150271512715227153271542715527156271572715827159271602716127162271632716427165271662716727168271692717027171271722717327174271752717627177271782717927180271812718227183271842718527186271872718827189271902719127192271932719427195271962719727198271992720027201272022720327204272052720627207272082720927210272112721227213272142721527216272172721827219272202722127222272232722427225272262722727228272292723027231272322723327234272352723627237272382723927240272412724227243272442724527246272472724827249272502725127252272532725427255272562725727258272592726027261272622726327264272652726627267272682726927270272712727227273272742727527276272772727827279272802728127282272832728427285272862728727288272892729027291272922729327294272952729627297272982729927300273012730227303273042730527306273072730827309273102731127312273132731427315273162731727318273192732027321273222732327324273252732627327273282732927330273312733227333273342733527336273372733827339273402734127342273432734427345273462734727348273492735027351273522735327354273552735627357273582735927360273612736227363273642736527366273672736827369273702737127372273732737427375273762737727378273792738027381273822738327384273852738627387273882738927390273912739227393273942739527396273972739827399274002740127402274032740427405274062740727408274092741027411274122741327414274152741627417274182741927420274212742227423274242742527426274272742827429274302743127432274332743427435274362743727438274392744027441274422744327444274452744627447274482744927450274512745227453274542745527456274572745827459274602746127462274632746427465274662746727468274692747027471274722747327474274752747627477274782747927480274812748227483274842748527486274872748827489274902749127492274932749427495274962749727498274992750027501275022750327504275052750627507275082750927510275112751227513275142751527516275172751827519275202752127522275232752427525275262752727528275292753027531275322753327534275352753627537275382753927540275412754227543275442754527546275472754827549275502755127552275532755427555275562755727558275592756027561275622756327564275652756627567275682756927570275712757227573275742757527576275772757827579275802758127582275832758427585275862758727588275892759027591275922759327594275952759627597275982759927600276012760227603276042760527606276072760827609276102761127612276132761427615276162761727618276192762027621276222762327624276252762627627276282762927630276312763227633276342763527636276372763827639276402764127642276432764427645276462764727648276492765027651276522765327654276552765627657276582765927660276612766227663276642766527666276672766827669276702767127672276732767427675276762767727678276792768027681276822768327684276852768627687276882768927690276912769227693276942769527696276972769827699277002770127702277032770427705277062770727708277092771027711277122771327714277152771627717277182771927720277212772227723277242772527726277272772827729277302773127732277332773427735277362773727738277392774027741277422774327744277452774627747277482774927750277512775227753277542775527756277572775827759277602776127762277632776427765277662776727768277692777027771277722777327774277752777627777277782777927780277812778227783277842778527786277872778827789277902779127792277932779427795277962779727798277992780027801278022780327804278052780627807278082780927810278112781227813278142781527816278172781827819278202782127822278232782427825278262782727828278292783027831278322783327834278352783627837278382783927840278412784227843278442784527846278472784827849278502785127852278532785427855278562785727858278592786027861278622786327864278652786627867278682786927870278712787227873278742787527876278772787827879278802788127882278832788427885278862788727888278892789027891278922789327894278952789627897278982789927900279012790227903279042790527906279072790827909279102791127912279132791427915279162791727918279192792027921279222792327924279252792627927279282792927930279312793227933279342793527936279372793827939279402794127942279432794427945279462794727948279492795027951279522795327954279552795627957279582795927960279612796227963279642796527966279672796827969279702797127972279732797427975279762797727978279792798027981279822798327984279852798627987279882798927990279912799227993279942799527996279972799827999280002800128002280032800428005280062800728008280092801028011280122801328014280152801628017280182801928020280212802228023280242802528026280272802828029280302803128032280332803428035280362803728038280392804028041280422804328044280452804628047280482804928050280512805228053280542805528056280572805828059280602806128062280632806428065280662806728068280692807028071280722807328074280752807628077280782807928080280812808228083280842808528086280872808828089280902809128092280932809428095280962809728098280992810028101281022810328104281052810628107281082810928110281112811228113281142811528116281172811828119281202812128122281232812428125281262812728128281292813028131281322813328134281352813628137281382813928140281412814228143281442814528146281472814828149281502815128152281532815428155281562815728158281592816028161281622816328164281652816628167281682816928170281712817228173281742817528176281772817828179281802818128182281832818428185281862818728188281892819028191281922819328194281952819628197281982819928200282012820228203282042820528206282072820828209282102821128212282132821428215282162821728218282192822028221282222822328224282252822628227282282822928230282312823228233282342823528236282372823828239282402824128242282432824428245282462824728248282492825028251282522825328254282552825628257282582825928260282612826228263282642826528266282672826828269282702827128272282732827428275282762827728278282792828028281282822828328284282852828628287282882828928290282912829228293282942829528296282972829828299283002830128302283032830428305283062830728308283092831028311283122831328314283152831628317283182831928320283212832228323283242832528326283272832828329283302833128332283332833428335283362833728338283392834028341283422834328344283452834628347283482834928350283512835228353283542835528356283572835828359283602836128362283632836428365283662836728368283692837028371283722837328374283752837628377283782837928380283812838228383283842838528386283872838828389283902839128392283932839428395283962839728398283992840028401284022840328404284052840628407284082840928410284112841228413284142841528416284172841828419284202842128422284232842428425284262842728428284292843028431284322843328434284352843628437284382843928440284412844228443284442844528446284472844828449284502845128452284532845428455284562845728458284592846028461284622846328464284652846628467284682846928470284712847228473284742847528476284772847828479284802848128482284832848428485284862848728488284892849028491284922849328494284952849628497284982849928500285012850228503285042850528506285072850828509285102851128512285132851428515285162851728518285192852028521285222852328524285252852628527285282852928530285312853228533285342853528536285372853828539285402854128542285432854428545285462854728548285492855028551285522855328554285552855628557285582855928560285612856228563285642856528566285672856828569285702857128572285732857428575285762857728578285792858028581285822858328584285852858628587285882858928590285912859228593285942859528596285972859828599286002860128602286032860428605286062860728608286092861028611286122861328614286152861628617286182861928620286212862228623286242862528626286272862828629286302863128632286332863428635286362863728638286392864028641286422864328644286452864628647286482864928650286512865228653286542865528656286572865828659286602866128662286632866428665286662866728668286692867028671286722867328674286752867628677286782867928680286812868228683286842868528686286872868828689286902869128692286932869428695286962869728698286992870028701287022870328704287052870628707287082870928710287112871228713287142871528716287172871828719287202872128722287232872428725287262872728728287292873028731287322873328734287352873628737287382873928740287412874228743287442874528746287472874828749287502875128752287532875428755287562875728758287592876028761287622876328764287652876628767287682876928770287712877228773287742877528776287772877828779287802878128782287832878428785287862878728788287892879028791287922879328794287952879628797287982879928800288012880228803288042880528806288072880828809288102881128812288132881428815288162881728818288192882028821288222882328824288252882628827288282882928830288312883228833288342883528836288372883828839288402884128842288432884428845288462884728848288492885028851288522885328854288552885628857288582885928860288612886228863288642886528866288672886828869288702887128872288732887428875288762887728878288792888028881288822888328884288852888628887288882888928890288912889228893288942889528896288972889828899289002890128902289032890428905289062890728908289092891028911289122891328914289152891628917289182891928920289212892228923289242892528926289272892828929289302893128932289332893428935289362893728938289392894028941289422894328944289452894628947289482894928950289512895228953289542895528956289572895828959289602896128962289632896428965289662896728968289692897028971289722897328974289752897628977289782897928980289812898228983289842898528986289872898828989289902899128992289932899428995289962899728998289992900029001290022900329004290052900629007290082900929010290112901229013290142901529016290172901829019290202902129022290232902429025290262902729028290292903029031290322903329034290352903629037290382903929040290412904229043290442904529046290472904829049290502905129052290532905429055290562905729058290592906029061290622906329064290652906629067290682906929070290712907229073290742907529076290772907829079290802908129082290832908429085290862908729088290892909029091290922909329094290952909629097290982909929100291012910229103291042910529106291072910829109291102911129112291132911429115291162911729118291192912029121291222912329124291252912629127291282912929130291312913229133291342913529136291372913829139291402914129142291432914429145291462914729148291492915029151291522915329154291552915629157291582915929160291612916229163291642916529166291672916829169291702917129172291732917429175291762917729178291792918029181291822918329184291852918629187291882918929190291912919229193291942919529196291972919829199292002920129202292032920429205292062920729208292092921029211292122921329214292152921629217292182921929220292212922229223292242922529226292272922829229292302923129232292332923429235292362923729238292392924029241292422924329244292452924629247292482924929250292512925229253292542925529256292572925829259292602926129262292632926429265292662926729268292692927029271292722927329274292752927629277292782927929280292812928229283292842928529286292872928829289292902929129292292932929429295292962929729298292992930029301293022930329304293052930629307293082930929310293112931229313293142931529316293172931829319293202932129322293232932429325293262932729328293292933029331293322933329334293352933629337293382933929340293412934229343293442934529346293472934829349293502935129352293532935429355293562935729358293592936029361293622936329364293652936629367293682936929370293712937229373293742937529376293772937829379293802938129382293832938429385293862938729388293892939029391293922939329394293952939629397293982939929400294012940229403294042940529406294072940829409294102941129412294132941429415294162941729418294192942029421294222942329424294252942629427294282942929430294312943229433294342943529436294372943829439294402944129442294432944429445294462944729448294492945029451294522945329454294552945629457294582945929460294612946229463294642946529466294672946829469294702947129472294732947429475294762947729478294792948029481294822948329484294852948629487294882948929490294912949229493294942949529496294972949829499295002950129502295032950429505295062950729508295092951029511295122951329514295152951629517295182951929520295212952229523295242952529526295272952829529295302953129532295332953429535295362953729538295392954029541295422954329544295452954629547295482954929550295512955229553295542955529556295572955829559295602956129562295632956429565295662956729568295692957029571295722957329574295752957629577295782957929580295812958229583295842958529586295872958829589295902959129592295932959429595295962959729598295992960029601296022960329604296052960629607296082960929610296112961229613296142961529616296172961829619296202962129622296232962429625296262962729628296292963029631296322963329634296352963629637296382963929640296412964229643296442964529646296472964829649296502965129652296532965429655296562965729658296592966029661296622966329664296652966629667296682966929670296712967229673296742967529676296772967829679296802968129682296832968429685296862968729688296892969029691296922969329694296952969629697296982969929700297012970229703297042970529706297072970829709297102971129712297132971429715297162971729718297192972029721297222972329724297252972629727297282972929730297312973229733297342973529736297372973829739297402974129742297432974429745297462974729748297492975029751297522975329754297552975629757297582975929760297612976229763297642976529766297672976829769297702977129772297732977429775297762977729778297792978029781297822978329784297852978629787297882978929790297912979229793297942979529796297972979829799298002980129802298032980429805298062980729808298092981029811298122981329814298152981629817298182981929820298212982229823298242982529826298272982829829298302983129832298332983429835298362983729838298392984029841298422984329844298452984629847298482984929850298512985229853298542985529856298572985829859298602986129862298632986429865298662986729868298692987029871298722987329874298752987629877298782987929880298812988229883298842988529886298872988829889298902989129892298932989429895298962989729898298992990029901299022990329904299052990629907299082990929910299112991229913299142991529916299172991829919299202992129922299232992429925299262992729928299292993029931299322993329934299352993629937299382993929940299412994229943299442994529946299472994829949299502995129952299532995429955299562995729958299592996029961299622996329964299652996629967299682996929970299712997229973299742997529976299772997829979299802998129982299832998429985299862998729988299892999029991299922999329994299952999629997299982999930000300013000230003300043000530006300073000830009300103001130012300133001430015300163001730018300193002030021300223002330024300253002630027300283002930030300313003230033300343003530036300373003830039300403004130042300433004430045300463004730048300493005030051300523005330054300553005630057300583005930060300613006230063300643006530066300673006830069300703007130072300733007430075300763007730078300793008030081300823008330084300853008630087300883008930090300913009230093300943009530096300973009830099301003010130102301033010430105301063010730108301093011030111301123011330114301153011630117301183011930120301213012230123301243012530126301273012830129301303013130132301333013430135301363013730138301393014030141301423014330144301453014630147301483014930150301513015230153301543015530156301573015830159301603016130162301633016430165301663016730168301693017030171301723017330174301753017630177301783017930180301813018230183301843018530186301873018830189301903019130192301933019430195301963019730198301993020030201302023020330204302053020630207302083020930210302113021230213302143021530216302173021830219302203022130222302233022430225302263022730228302293023030231302323023330234302353023630237302383023930240302413024230243302443024530246302473024830249302503025130252302533025430255302563025730258302593026030261302623026330264302653026630267302683026930270302713027230273302743027530276302773027830279302803028130282302833028430285302863028730288302893029030291302923029330294302953029630297302983029930300303013030230303303043030530306303073030830309303103031130312303133031430315303163031730318303193032030321303223032330324303253032630327303283032930330303313033230333303343033530336303373033830339303403034130342303433034430345303463034730348303493035030351303523035330354303553035630357303583035930360303613036230363303643036530366303673036830369303703037130372303733037430375303763037730378303793038030381303823038330384303853038630387303883038930390303913039230393303943039530396303973039830399304003040130402304033040430405304063040730408304093041030411304123041330414304153041630417304183041930420304213042230423304243042530426304273042830429304303043130432304333043430435304363043730438304393044030441304423044330444304453044630447304483044930450304513045230453304543045530456304573045830459304603046130462304633046430465304663046730468304693047030471304723047330474304753047630477304783047930480304813048230483304843048530486304873048830489304903049130492304933049430495304963049730498304993050030501305023050330504305053050630507305083050930510305113051230513305143051530516305173051830519305203052130522305233052430525305263052730528305293053030531305323053330534305353053630537305383053930540305413054230543305443054530546305473054830549305503055130552305533055430555305563055730558305593056030561305623056330564305653056630567305683056930570305713057230573305743057530576305773057830579305803058130582305833058430585305863058730588305893059030591305923059330594305953059630597305983059930600306013060230603306043060530606306073060830609306103061130612306133061430615306163061730618306193062030621306223062330624306253062630627306283062930630306313063230633306343063530636306373063830639306403064130642306433064430645306463064730648306493065030651306523065330654306553065630657306583065930660306613066230663306643066530666306673066830669306703067130672306733067430675306763067730678306793068030681306823068330684306853068630687306883068930690306913069230693306943069530696306973069830699307003070130702307033070430705307063070730708307093071030711307123071330714307153071630717307183071930720307213072230723307243072530726307273072830729307303073130732307333073430735307363073730738307393074030741307423074330744307453074630747307483074930750307513075230753307543075530756307573075830759307603076130762307633076430765307663076730768307693077030771307723077330774307753077630777307783077930780307813078230783307843078530786307873078830789307903079130792307933079430795307963079730798307993080030801308023080330804308053080630807308083080930810308113081230813308143081530816308173081830819308203082130822308233082430825308263082730828308293083030831308323083330834308353083630837308383083930840308413084230843308443084530846308473084830849308503085130852308533085430855308563085730858308593086030861308623086330864308653086630867308683086930870308713087230873308743087530876308773087830879308803088130882308833088430885308863088730888308893089030891308923089330894308953089630897308983089930900309013090230903309043090530906309073090830909309103091130912309133091430915309163091730918309193092030921309223092330924309253092630927309283092930930309313093230933309343093530936309373093830939309403094130942309433094430945309463094730948309493095030951309523095330954309553095630957309583095930960309613096230963309643096530966309673096830969309703097130972309733097430975309763097730978309793098030981309823098330984309853098630987309883098930990309913099230993309943099530996309973099830999310003100131002310033100431005310063100731008310093101031011310123101331014310153101631017310183101931020310213102231023310243102531026310273102831029310303103131032310333103431035310363103731038310393104031041310423104331044310453104631047310483104931050310513105231053310543105531056310573105831059310603106131062310633106431065310663106731068310693107031071310723107331074310753107631077310783107931080310813108231083310843108531086310873108831089310903109131092310933109431095310963109731098310993110031101311023110331104311053110631107311083110931110311113111231113311143111531116311173111831119311203112131122311233112431125311263112731128311293113031131311323113331134311353113631137311383113931140311413114231143311443114531146311473114831149311503115131152311533115431155311563115731158311593116031161311623116331164311653116631167311683116931170311713117231173311743117531176311773117831179311803118131182311833118431185311863118731188311893119031191311923119331194311953119631197311983119931200312013120231203312043120531206312073120831209312103121131212312133121431215312163121731218312193122031221312223122331224312253122631227312283122931230312313123231233312343123531236312373123831239312403124131242312433124431245312463124731248312493125031251312523125331254312553125631257312583125931260312613126231263312643126531266312673126831269312703127131272312733127431275312763127731278312793128031281312823128331284312853128631287312883128931290312913129231293312943129531296312973129831299313003130131302313033130431305313063130731308313093131031311313123131331314313153131631317313183131931320313213132231323313243132531326313273132831329313303133131332313333133431335313363133731338313393134031341313423134331344313453134631347313483134931350313513135231353313543135531356313573135831359313603136131362313633136431365313663136731368313693137031371313723137331374313753137631377313783137931380313813138231383313843138531386313873138831389313903139131392313933139431395313963139731398313993140031401314023140331404314053140631407314083140931410314113141231413314143141531416314173141831419314203142131422314233142431425314263142731428314293143031431314323143331434314353143631437314383143931440314413144231443314443144531446314473144831449314503145131452314533145431455314563145731458314593146031461314623146331464314653146631467314683146931470314713147231473314743147531476314773147831479314803148131482314833148431485314863148731488314893149031491314923149331494314953149631497314983149931500315013150231503315043150531506315073150831509315103151131512315133151431515315163151731518315193152031521315223152331524315253152631527315283152931530315313153231533315343153531536315373153831539315403154131542315433154431545315463154731548315493155031551315523155331554315553155631557315583155931560315613156231563315643156531566315673156831569315703157131572315733157431575315763157731578315793158031581315823158331584315853158631587315883158931590315913159231593315943159531596315973159831599316003160131602316033160431605316063160731608316093161031611316123161331614316153161631617316183161931620316213162231623316243162531626316273162831629316303163131632316333163431635316363163731638316393164031641316423164331644316453164631647316483164931650316513165231653316543165531656316573165831659316603166131662316633166431665316663166731668316693167031671316723167331674316753167631677316783167931680316813168231683316843168531686316873168831689316903169131692316933169431695316963169731698316993170031701317023170331704317053170631707317083170931710317113171231713317143171531716317173171831719317203172131722317233172431725317263172731728317293173031731317323173331734317353173631737317383173931740317413174231743317443174531746317473174831749317503175131752317533175431755317563175731758317593176031761317623176331764317653176631767317683176931770317713177231773317743177531776317773177831779317803178131782317833178431785317863178731788317893179031791317923179331794317953179631797317983179931800318013180231803318043180531806318073180831809318103181131812318133181431815318163181731818318193182031821318223182331824318253182631827318283182931830318313183231833318343183531836318373183831839318403184131842318433184431845318463184731848318493185031851318523185331854318553185631857318583185931860318613186231863318643186531866318673186831869318703187131872318733187431875318763187731878318793188031881318823188331884318853188631887318883188931890318913189231893318943189531896318973189831899319003190131902319033190431905319063190731908319093191031911319123191331914319153191631917319183191931920319213192231923319243192531926319273192831929319303193131932319333193431935319363193731938319393194031941319423194331944319453194631947319483194931950319513195231953319543195531956319573195831959319603196131962319633196431965319663196731968319693197031971319723197331974319753197631977319783197931980319813198231983319843198531986319873198831989319903199131992319933199431995319963199731998319993200032001320023200332004320053200632007320083200932010320113201232013320143201532016320173201832019320203202132022320233202432025320263202732028320293203032031320323203332034320353203632037320383203932040320413204232043320443204532046320473204832049320503205132052320533205432055320563205732058320593206032061320623206332064320653206632067320683206932070320713207232073320743207532076320773207832079320803208132082320833208432085320863208732088320893209032091320923209332094320953209632097320983209932100321013210232103321043210532106321073210832109321103211132112321133211432115321163211732118321193212032121321223212332124321253212632127321283212932130321313213232133321343213532136321373213832139321403214132142321433214432145321463214732148321493215032151321523215332154321553215632157321583215932160321613216232163321643216532166321673216832169321703217132172321733217432175321763217732178321793218032181321823218332184321853218632187321883218932190321913219232193321943219532196321973219832199322003220132202322033220432205322063220732208322093221032211322123221332214322153221632217322183221932220322213222232223322243222532226322273222832229322303223132232322333223432235322363223732238322393224032241322423224332244322453224632247322483224932250322513225232253322543225532256322573225832259322603226132262322633226432265322663226732268322693227032271322723227332274322753227632277322783227932280322813228232283322843228532286322873228832289322903229132292322933229432295322963229732298322993230032301323023230332304323053230632307323083230932310323113231232313323143231532316323173231832319323203232132322323233232432325323263232732328323293233032331323323233332334323353233632337323383233932340323413234232343323443234532346323473234832349323503235132352323533235432355323563235732358323593236032361323623236332364323653236632367323683236932370323713237232373323743237532376323773237832379323803238132382323833238432385323863238732388323893239032391323923239332394323953239632397323983239932400324013240232403324043240532406324073240832409324103241132412324133241432415324163241732418324193242032421324223242332424324253242632427324283242932430324313243232433324343243532436324373243832439324403244132442324433244432445324463244732448324493245032451324523245332454324553245632457324583245932460324613246232463324643246532466324673246832469324703247132472324733247432475324763247732478324793248032481324823248332484324853248632487324883248932490324913249232493324943249532496324973249832499325003250132502325033250432505325063250732508325093251032511325123251332514325153251632517325183251932520325213252232523325243252532526325273252832529325303253132532325333253432535325363253732538325393254032541325423254332544325453254632547325483254932550325513255232553325543255532556325573255832559325603256132562325633256432565325663256732568325693257032571325723257332574325753257632577325783257932580325813258232583325843258532586325873258832589325903259132592325933259432595325963259732598325993260032601326023260332604326053260632607326083260932610326113261232613326143261532616326173261832619326203262132622326233262432625326263262732628326293263032631326323263332634326353263632637326383263932640326413264232643326443264532646326473264832649326503265132652326533265432655326563265732658326593266032661326623266332664326653266632667326683266932670326713267232673326743267532676326773267832679326803268132682326833268432685326863268732688326893269032691326923269332694326953269632697326983269932700327013270232703327043270532706327073270832709327103271132712327133271432715327163271732718327193272032721327223272332724327253272632727327283272932730327313273232733327343273532736327373273832739327403274132742327433274432745327463274732748327493275032751327523275332754327553275632757327583275932760327613276232763327643276532766327673276832769327703277132772327733277432775327763277732778327793278032781327823278332784327853278632787327883278932790327913279232793327943279532796327973279832799328003280132802328033280432805328063280732808328093281032811328123281332814328153281632817328183281932820328213282232823328243282532826328273282832829328303283132832328333283432835328363283732838328393284032841328423284332844328453284632847328483284932850328513285232853328543285532856328573285832859328603286132862328633286432865328663286732868328693287032871328723287332874328753287632877328783287932880328813288232883328843288532886328873288832889328903289132892328933289432895328963289732898328993290032901329023290332904329053290632907329083290932910329113291232913329143291532916329173291832919329203292132922329233292432925329263292732928329293293032931329323293332934329353293632937329383293932940329413294232943329443294532946329473294832949329503295132952329533295432955329563295732958329593296032961329623296332964329653296632967329683296932970329713297232973329743297532976329773297832979329803298132982329833298432985329863298732988329893299032991329923299332994329953299632997329983299933000330013300233003330043300533006330073300833009330103301133012330133301433015330163301733018330193302033021330223302333024330253302633027330283302933030330313303233033330343303533036330373303833039330403304133042330433304433045330463304733048330493305033051330523305333054330553305633057330583305933060330613306233063330643306533066330673306833069330703307133072330733307433075330763307733078330793308033081330823308333084330853308633087330883308933090330913309233093330943309533096330973309833099331003310133102331033310433105331063310733108331093311033111331123311333114331153311633117331183311933120331213312233123331243312533126331273312833129331303313133132331333313433135331363313733138331393314033141331423314333144331453314633147331483314933150331513315233153331543315533156331573315833159331603316133162331633316433165331663316733168331693317033171331723317333174331753317633177331783317933180331813318233183331843318533186331873318833189331903319133192331933319433195331963319733198331993320033201332023320333204332053320633207332083320933210332113321233213332143321533216332173321833219332203322133222332233322433225332263322733228332293323033231332323323333234332353323633237332383323933240332413324233243332443324533246332473324833249332503325133252332533325433255332563325733258332593326033261332623326333264332653326633267332683326933270332713327233273332743327533276332773327833279332803328133282332833328433285332863328733288332893329033291332923329333294332953329633297332983329933300333013330233303333043330533306333073330833309333103331133312333133331433315333163331733318333193332033321333223332333324333253332633327333283332933330333313333233333333343333533336333373333833339333403334133342333433334433345333463334733348333493335033351333523335333354333553335633357333583335933360333613336233363333643336533366333673336833369333703337133372333733337433375333763337733378333793338033381333823338333384333853338633387333883338933390333913339233393333943339533396333973339833399334003340133402334033340433405334063340733408334093341033411334123341333414334153341633417334183341933420334213342233423334243342533426334273342833429334303343133432334333343433435334363343733438334393344033441334423344333444334453344633447334483344933450334513345233453334543345533456334573345833459334603346133462334633346433465334663346733468334693347033471334723347333474334753347633477334783347933480334813348233483334843348533486334873348833489334903349133492334933349433495334963349733498334993350033501335023350333504335053350633507335083350933510335113351233513335143351533516335173351833519335203352133522335233352433525335263352733528335293353033531335323353333534335353353633537335383353933540335413354233543335443354533546335473354833549335503355133552335533355433555335563355733558335593356033561335623356333564335653356633567335683356933570335713357233573335743357533576335773357833579335803358133582335833358433585335863358733588335893359033591335923359333594335953359633597335983359933600336013360233603336043360533606336073360833609336103361133612336133361433615336163361733618336193362033621336223362333624336253362633627336283362933630336313363233633336343363533636336373363833639336403364133642336433364433645336463364733648336493365033651336523365333654336553365633657336583365933660336613366233663336643366533666336673366833669336703367133672336733367433675336763367733678336793368033681336823368333684336853368633687336883368933690336913369233693336943369533696336973369833699337003370133702337033370433705337063370733708337093371033711337123371333714337153371633717337183371933720337213372233723337243372533726337273372833729337303373133732337333373433735337363373733738337393374033741337423374333744337453374633747337483374933750337513375233753337543375533756337573375833759337603376133762337633376433765337663376733768337693377033771337723377333774337753377633777337783377933780337813378233783337843378533786337873378833789337903379133792337933379433795337963379733798337993380033801338023380333804338053380633807338083380933810338113381233813338143381533816338173381833819338203382133822338233382433825338263382733828338293383033831338323383333834338353383633837338383383933840338413384233843338443384533846338473384833849338503385133852338533385433855338563385733858338593386033861338623386333864338653386633867338683386933870338713387233873338743387533876338773387833879338803388133882338833388433885338863388733888338893389033891338923389333894338953389633897338983389933900339013390233903339043390533906339073390833909339103391133912339133391433915339163391733918339193392033921339223392333924339253392633927339283392933930339313393233933339343393533936339373393833939339403394133942339433394433945339463394733948339493395033951339523395333954339553395633957339583395933960339613396233963339643396533966339673396833969339703397133972339733397433975339763397733978339793398033981339823398333984339853398633987339883398933990339913399233993339943399533996339973399833999340003400134002340033400434005340063400734008340093401034011340123401334014340153401634017340183401934020340213402234023340243402534026340273402834029340303403134032340333403434035340363403734038340393404034041340423404334044340453404634047340483404934050340513405234053340543405534056340573405834059340603406134062340633406434065340663406734068340693407034071340723407334074340753407634077340783407934080340813408234083340843408534086340873408834089340903409134092340933409434095340963409734098340993410034101341023410334104341053410634107341083410934110341113411234113341143411534116341173411834119341203412134122341233412434125341263412734128341293413034131341323413334134341353413634137341383413934140341413414234143341443414534146341473414834149341503415134152341533415434155341563415734158341593416034161341623416334164341653416634167341683416934170341713417234173341743417534176341773417834179341803418134182341833418434185341863418734188341893419034191341923419334194341953419634197341983419934200342013420234203342043420534206342073420834209342103421134212342133421434215342163421734218342193422034221342223422334224342253422634227342283422934230342313423234233342343423534236342373423834239342403424134242342433424434245342463424734248342493425034251342523425334254342553425634257342583425934260342613426234263342643426534266342673426834269342703427134272342733427434275342763427734278342793428034281342823428334284342853428634287342883428934290342913429234293342943429534296342973429834299343003430134302343033430434305343063430734308343093431034311343123431334314343153431634317343183431934320343213432234323343243432534326343273432834329343303433134332343333433434335343363433734338343393434034341343423434334344343453434634347343483434934350343513435234353343543435534356343573435834359343603436134362343633436434365343663436734368343693437034371343723437334374343753437634377343783437934380343813438234383343843438534386343873438834389343903439134392343933439434395343963439734398343993440034401344023440334404344053440634407344083440934410344113441234413344143441534416344173441834419344203442134422344233442434425344263442734428344293443034431344323443334434344353443634437344383443934440344413444234443344443444534446344473444834449344503445134452344533445434455344563445734458344593446034461344623446334464344653446634467344683446934470344713447234473344743447534476344773447834479344803448134482344833448434485344863448734488344893449034491344923449334494344953449634497344983449934500345013450234503345043450534506345073450834509345103451134512345133451434515345163451734518345193452034521345223452334524345253452634527345283452934530345313453234533345343453534536345373453834539345403454134542345433454434545345463454734548345493455034551345523455334554345553455634557345583455934560345613456234563345643456534566345673456834569345703457134572345733457434575345763457734578345793458034581345823458334584345853458634587345883458934590345913459234593345943459534596345973459834599346003460134602346033460434605346063460734608346093461034611346123461334614346153461634617346183461934620346213462234623346243462534626346273462834629346303463134632346333463434635346363463734638346393464034641346423464334644346453464634647346483464934650346513465234653346543465534656346573465834659346603466134662346633466434665346663466734668346693467034671346723467334674346753467634677346783467934680346813468234683346843468534686346873468834689346903469134692346933469434695346963469734698346993470034701347023470334704347053470634707347083470934710347113471234713347143471534716347173471834719347203472134722347233472434725347263472734728347293473034731347323473334734347353473634737347383473934740347413474234743347443474534746347473474834749347503475134752347533475434755347563475734758347593476034761347623476334764347653476634767347683476934770347713477234773347743477534776347773477834779347803478134782347833478434785347863478734788347893479034791347923479334794347953479634797347983479934800348013480234803348043480534806348073480834809348103481134812348133481434815348163481734818348193482034821348223482334824348253482634827348283482934830348313483234833348343483534836348373483834839348403484134842348433484434845348463484734848348493485034851348523485334854348553485634857348583485934860348613486234863348643486534866348673486834869348703487134872348733487434875348763487734878348793488034881348823488334884348853488634887348883488934890348913489234893348943489534896348973489834899349003490134902349033490434905349063490734908349093491034911349123491334914349153491634917349183491934920349213492234923349243492534926349273492834929349303493134932349333493434935349363493734938349393494034941349423494334944349453494634947349483494934950349513495234953349543495534956349573495834959349603496134962349633496434965349663496734968349693497034971349723497334974349753497634977349783497934980349813498234983349843498534986349873498834989349903499134992349933499434995349963499734998349993500035001350023500335004350053500635007350083500935010350113501235013350143501535016350173501835019350203502135022350233502435025350263502735028350293503035031350323503335034350353503635037350383503935040350413504235043350443504535046350473504835049350503505135052350533505435055350563505735058350593506035061350623506335064350653506635067350683506935070350713507235073350743507535076350773507835079350803508135082350833508435085350863508735088350893509035091350923509335094350953509635097350983509935100351013510235103351043510535106351073510835109351103511135112351133511435115351163511735118351193512035121351223512335124351253512635127351283512935130351313513235133351343513535136351373513835139351403514135142351433514435145351463514735148351493515035151351523515335154351553515635157351583515935160351613516235163351643516535166351673516835169351703517135172351733517435175351763517735178351793518035181351823518335184351853518635187351883518935190351913519235193351943519535196351973519835199352003520135202352033520435205352063520735208352093521035211352123521335214352153521635217352183521935220352213522235223352243522535226352273522835229352303523135232352333523435235352363523735238352393524035241352423524335244352453524635247352483524935250352513525235253352543525535256352573525835259352603526135262352633526435265352663526735268352693527035271352723527335274352753527635277352783527935280352813528235283352843528535286352873528835289352903529135292352933529435295352963529735298352993530035301353023530335304353053530635307353083530935310353113531235313353143531535316353173531835319353203532135322353233532435325353263532735328353293533035331353323533335334353353533635337353383533935340353413534235343353443534535346353473534835349353503535135352353533535435355353563535735358353593536035361353623536335364353653536635367353683536935370353713537235373353743537535376353773537835379353803538135382353833538435385353863538735388353893539035391353923539335394353953539635397353983539935400354013540235403354043540535406354073540835409354103541135412354133541435415354163541735418354193542035421354223542335424354253542635427354283542935430354313543235433354343543535436354373543835439354403544135442354433544435445354463544735448354493545035451354523545335454354553545635457354583545935460354613546235463354643546535466354673546835469354703547135472354733547435475354763547735478354793548035481354823548335484354853548635487354883548935490354913549235493354943549535496354973549835499355003550135502355033550435505355063550735508355093551035511355123551335514355153551635517355183551935520355213552235523355243552535526355273552835529355303553135532355333553435535355363553735538355393554035541355423554335544355453554635547355483554935550355513555235553355543555535556355573555835559355603556135562355633556435565355663556735568355693557035571355723557335574355753557635577355783557935580355813558235583355843558535586355873558835589355903559135592355933559435595355963559735598355993560035601356023560335604356053560635607356083560935610356113561235613356143561535616356173561835619356203562135622356233562435625356263562735628356293563035631356323563335634356353563635637356383563935640356413564235643356443564535646356473564835649356503565135652356533565435655356563565735658356593566035661356623566335664356653566635667356683566935670356713567235673356743567535676356773567835679356803568135682356833568435685356863568735688356893569035691356923569335694356953569635697356983569935700357013570235703357043570535706357073570835709357103571135712357133571435715357163571735718357193572035721357223572335724357253572635727357283572935730357313573235733357343573535736357373573835739357403574135742357433574435745357463574735748357493575035751357523575335754357553575635757357583575935760357613576235763357643576535766357673576835769357703577135772357733577435775357763577735778357793578035781357823578335784357853578635787357883578935790357913579235793357943579535796357973579835799358003580135802358033580435805358063580735808358093581035811358123581335814358153581635817358183581935820358213582235823358243582535826358273582835829358303583135832358333583435835358363583735838358393584035841358423584335844358453584635847358483584935850358513585235853358543585535856358573585835859358603586135862358633586435865358663586735868358693587035871358723587335874358753587635877358783587935880358813588235883358843588535886358873588835889358903589135892358933589435895358963589735898358993590035901359023590335904359053590635907359083590935910359113591235913359143591535916359173591835919359203592135922359233592435925359263592735928359293593035931359323593335934359353593635937359383593935940359413594235943359443594535946359473594835949359503595135952359533595435955359563595735958359593596035961359623596335964359653596635967359683596935970359713597235973359743597535976359773597835979359803598135982359833598435985359863598735988359893599035991359923599335994359953599635997359983599936000360013600236003360043600536006360073600836009360103601136012360133601436015360163601736018360193602036021360223602336024360253602636027360283602936030360313603236033360343603536036360373603836039360403604136042360433604436045360463604736048360493605036051360523605336054360553605636057360583605936060360613606236063360643606536066360673606836069360703607136072360733607436075360763607736078360793608036081360823608336084360853608636087360883608936090360913609236093360943609536096360973609836099361003610136102361033610436105361063610736108361093611036111361123611336114361153611636117361183611936120361213612236123361243612536126361273612836129361303613136132361333613436135361363613736138361393614036141361423614336144361453614636147361483614936150361513615236153361543615536156361573615836159361603616136162361633616436165361663616736168361693617036171361723617336174361753617636177361783617936180361813618236183361843618536186361873618836189361903619136192361933619436195361963619736198361993620036201362023620336204362053620636207362083620936210362113621236213362143621536216362173621836219362203622136222362233622436225362263622736228362293623036231362323623336234362353623636237362383623936240362413624236243362443624536246362473624836249362503625136252362533625436255362563625736258362593626036261362623626336264362653626636267362683626936270362713627236273362743627536276362773627836279362803628136282362833628436285362863628736288362893629036291362923629336294362953629636297362983629936300363013630236303363043630536306363073630836309363103631136312363133631436315363163631736318363193632036321363223632336324363253632636327363283632936330363313633236333363343633536336363373633836339363403634136342363433634436345363463634736348363493635036351363523635336354363553635636357363583635936360363613636236363363643636536366363673636836369363703637136372363733637436375363763637736378363793638036381363823638336384363853638636387363883638936390363913639236393363943639536396363973639836399364003640136402364033640436405364063640736408364093641036411364123641336414364153641636417364183641936420364213642236423364243642536426364273642836429364303643136432364333643436435364363643736438364393644036441364423644336444364453644636447364483644936450364513645236453364543645536456364573645836459364603646136462364633646436465364663646736468364693647036471364723647336474364753647636477364783647936480364813648236483364843648536486364873648836489364903649136492364933649436495364963649736498364993650036501365023650336504365053650636507365083650936510365113651236513365143651536516365173651836519365203652136522365233652436525365263652736528365293653036531365323653336534365353653636537365383653936540365413654236543365443654536546365473654836549365503655136552365533655436555365563655736558365593656036561365623656336564365653656636567365683656936570365713657236573365743657536576365773657836579365803658136582365833658436585365863658736588365893659036591365923659336594365953659636597365983659936600366013660236603366043660536606366073660836609366103661136612366133661436615366163661736618366193662036621366223662336624366253662636627366283662936630366313663236633366343663536636366373663836639366403664136642366433664436645366463664736648366493665036651366523665336654366553665636657366583665936660366613666236663366643666536666366673666836669366703667136672366733667436675366763667736678366793668036681366823668336684366853668636687366883668936690366913669236693366943669536696366973669836699367003670136702367033670436705367063670736708367093671036711367123671336714367153671636717367183671936720367213672236723367243672536726367273672836729367303673136732367333673436735367363673736738367393674036741367423674336744367453674636747367483674936750367513675236753367543675536756367573675836759367603676136762367633676436765367663676736768367693677036771367723677336774367753677636777367783677936780367813678236783367843678536786367873678836789367903679136792367933679436795367963679736798367993680036801368023680336804368053680636807368083680936810368113681236813368143681536816368173681836819368203682136822368233682436825368263682736828368293683036831368323683336834368353683636837368383683936840368413684236843368443684536846368473684836849368503685136852368533685436855368563685736858368593686036861368623686336864368653686636867368683686936870368713687236873368743687536876368773687836879368803688136882368833688436885368863688736888368893689036891368923689336894368953689636897368983689936900369013690236903369043690536906369073690836909369103691136912369133691436915369163691736918369193692036921369223692336924369253692636927369283692936930369313693236933369343693536936369373693836939369403694136942369433694436945369463694736948369493695036951369523695336954369553695636957369583695936960369613696236963369643696536966369673696836969369703697136972369733697436975369763697736978369793698036981369823698336984369853698636987369883698936990369913699236993369943699536996369973699836999370003700137002370033700437005370063700737008370093701037011370123701337014370153701637017370183701937020370213702237023370243702537026370273702837029370303703137032370333703437035370363703737038370393704037041370423704337044370453704637047370483704937050370513705237053370543705537056370573705837059370603706137062370633706437065370663706737068370693707037071370723707337074370753707637077370783707937080370813708237083370843708537086370873708837089370903709137092370933709437095370963709737098370993710037101371023710337104371053710637107371083710937110371113711237113371143711537116371173711837119371203712137122371233712437125371263712737128371293713037131371323713337134371353713637137371383713937140371413714237143371443714537146371473714837149371503715137152371533715437155371563715737158371593716037161371623716337164371653716637167371683716937170371713717237173371743717537176371773717837179371803718137182371833718437185371863718737188371893719037191371923719337194371953719637197371983719937200372013720237203372043720537206372073720837209372103721137212372133721437215372163721737218372193722037221372223722337224372253722637227372283722937230372313723237233372343723537236372373723837239372403724137242372433724437245372463724737248372493725037251372523725337254372553725637257372583725937260372613726237263372643726537266372673726837269372703727137272372733727437275372763727737278372793728037281372823728337284372853728637287372883728937290372913729237293372943729537296372973729837299373003730137302373033730437305373063730737308373093731037311373123731337314373153731637317373183731937320373213732237323373243732537326373273732837329373303733137332373333733437335373363733737338373393734037341373423734337344373453734637347373483734937350373513735237353373543735537356373573735837359373603736137362373633736437365373663736737368373693737037371373723737337374373753737637377373783737937380373813738237383373843738537386373873738837389373903739137392373933739437395373963739737398373993740037401374023740337404374053740637407374083740937410374113741237413374143741537416374173741837419374203742137422374233742437425374263742737428374293743037431374323743337434374353743637437374383743937440374413744237443374443744537446374473744837449374503745137452374533745437455374563745737458374593746037461374623746337464374653746637467374683746937470374713747237473374743747537476374773747837479374803748137482374833748437485374863748737488374893749037491374923749337494374953749637497374983749937500375013750237503375043750537506375073750837509375103751137512375133751437515375163751737518375193752037521375223752337524375253752637527375283752937530375313753237533375343753537536375373753837539375403754137542375433754437545375463754737548375493755037551375523755337554375553755637557375583755937560375613756237563375643756537566375673756837569375703757137572375733757437575375763757737578375793758037581375823758337584375853758637587375883758937590375913759237593375943759537596375973759837599376003760137602376033760437605376063760737608376093761037611376123761337614376153761637617376183761937620376213762237623376243762537626376273762837629376303763137632376333763437635376363763737638376393764037641376423764337644376453764637647376483764937650376513765237653376543765537656376573765837659376603766137662376633766437665376663766737668376693767037671376723767337674376753767637677376783767937680376813768237683376843768537686376873768837689376903769137692376933769437695376963769737698376993770037701377023770337704377053770637707377083770937710377113771237713377143771537716377173771837719377203772137722377233772437725377263772737728377293773037731377323773337734377353773637737377383773937740377413774237743377443774537746377473774837749377503775137752377533775437755377563775737758377593776037761377623776337764377653776637767377683776937770377713777237773377743777537776377773777837779377803778137782377833778437785377863778737788377893779037791377923779337794377953779637797377983779937800378013780237803378043780537806378073780837809378103781137812378133781437815378163781737818378193782037821378223782337824378253782637827378283782937830378313783237833378343783537836378373783837839378403784137842378433784437845378463784737848378493785037851378523785337854378553785637857378583785937860378613786237863378643786537866378673786837869378703787137872378733787437875378763787737878378793788037881378823788337884378853788637887378883788937890378913789237893378943789537896378973789837899379003790137902379033790437905379063790737908379093791037911379123791337914379153791637917379183791937920379213792237923379243792537926379273792837929379303793137932379333793437935379363793737938379393794037941379423794337944379453794637947379483794937950379513795237953379543795537956379573795837959379603796137962379633796437965379663796737968379693797037971379723797337974379753797637977379783797937980379813798237983379843798537986379873798837989379903799137992379933799437995379963799737998379993800038001380023800338004380053800638007380083800938010380113801238013380143801538016380173801838019380203802138022380233802438025380263802738028380293803038031380323803338034380353803638037380383803938040380413804238043380443804538046380473804838049380503805138052380533805438055380563805738058380593806038061380623806338064380653806638067380683806938070380713807238073380743807538076380773807838079380803808138082380833808438085380863808738088380893809038091380923809338094380953809638097380983809938100381013810238103381043810538106381073810838109381103811138112381133811438115381163811738118381193812038121381223812338124381253812638127381283812938130381313813238133381343813538136381373813838139381403814138142381433814438145381463814738148381493815038151381523815338154381553815638157381583815938160381613816238163381643816538166381673816838169381703817138172381733817438175381763817738178381793818038181381823818338184381853818638187381883818938190381913819238193381943819538196381973819838199382003820138202382033820438205382063820738208382093821038211382123821338214382153821638217382183821938220382213822238223382243822538226382273822838229382303823138232382333823438235382363823738238382393824038241382423824338244382453824638247382483824938250382513825238253382543825538256382573825838259382603826138262382633826438265382663826738268382693827038271382723827338274382753827638277382783827938280382813828238283382843828538286382873828838289382903829138292382933829438295382963829738298382993830038301383023830338304383053830638307383083830938310383113831238313383143831538316383173831838319383203832138322383233832438325383263832738328383293833038331383323833338334383353833638337383383833938340383413834238343383443834538346383473834838349383503835138352383533835438355383563835738358383593836038361383623836338364383653836638367383683836938370383713837238373383743837538376383773837838379383803838138382383833838438385383863838738388383893839038391383923839338394383953839638397383983839938400384013840238403384043840538406384073840838409384103841138412384133841438415384163841738418384193842038421384223842338424384253842638427384283842938430384313843238433384343843538436384373843838439384403844138442384433844438445384463844738448384493845038451384523845338454384553845638457384583845938460384613846238463384643846538466384673846838469384703847138472384733847438475384763847738478384793848038481384823848338484384853848638487384883848938490384913849238493384943849538496384973849838499385003850138502385033850438505385063850738508385093851038511385123851338514385153851638517385183851938520385213852238523385243852538526385273852838529385303853138532385333853438535385363853738538385393854038541385423854338544385453854638547385483854938550385513855238553385543855538556385573855838559385603856138562385633856438565385663856738568385693857038571385723857338574385753857638577385783857938580385813858238583385843858538586385873858838589385903859138592385933859438595385963859738598385993860038601386023860338604386053860638607386083860938610386113861238613386143861538616386173861838619386203862138622386233862438625386263862738628386293863038631386323863338634386353863638637386383863938640386413864238643386443864538646386473864838649386503865138652386533865438655386563865738658386593866038661386623866338664386653866638667386683866938670386713867238673386743867538676386773867838679386803868138682386833868438685386863868738688386893869038691386923869338694386953869638697386983869938700387013870238703387043870538706387073870838709387103871138712387133871438715387163871738718387193872038721387223872338724387253872638727387283872938730387313873238733387343873538736387373873838739387403874138742387433874438745387463874738748387493875038751387523875338754387553875638757387583875938760387613876238763387643876538766387673876838769387703877138772387733877438775387763877738778387793878038781387823878338784387853878638787387883878938790387913879238793387943879538796387973879838799388003880138802388033880438805388063880738808388093881038811388123881338814388153881638817388183881938820388213882238823388243882538826388273882838829388303883138832388333883438835388363883738838388393884038841388423884338844388453884638847388483884938850388513885238853388543885538856388573885838859388603886138862388633886438865388663886738868388693887038871388723887338874388753887638877388783887938880388813888238883388843888538886388873888838889388903889138892388933889438895388963889738898388993890038901389023890338904389053890638907389083890938910389113891238913389143891538916389173891838919389203892138922389233892438925389263892738928389293893038931389323893338934389353893638937389383893938940389413894238943389443894538946389473894838949389503895138952389533895438955389563895738958389593896038961389623896338964389653896638967389683896938970389713897238973389743897538976389773897838979389803898138982389833898438985389863898738988389893899038991389923899338994389953899638997389983899939000390013900239003390043900539006390073900839009390103901139012390133901439015390163901739018390193902039021390223902339024390253902639027390283902939030390313903239033390343903539036390373903839039390403904139042390433904439045390463904739048390493905039051390523905339054390553905639057390583905939060390613906239063390643906539066390673906839069390703907139072390733907439075390763907739078390793908039081390823908339084390853908639087390883908939090390913909239093390943909539096390973909839099391003910139102391033910439105391063910739108391093911039111391123911339114391153911639117391183911939120391213912239123391243912539126391273912839129391303913139132391333913439135391363913739138391393914039141391423914339144391453914639147391483914939150391513915239153391543915539156391573915839159391603916139162391633916439165391663916739168391693917039171391723917339174391753917639177391783917939180391813918239183391843918539186391873918839189391903919139192391933919439195391963919739198391993920039201392023920339204392053920639207392083920939210392113921239213392143921539216392173921839219392203922139222392233922439225392263922739228392293923039231392323923339234392353923639237392383923939240392413924239243392443924539246392473924839249392503925139252392533925439255392563925739258392593926039261392623926339264392653926639267392683926939270392713927239273392743927539276392773927839279392803928139282392833928439285392863928739288392893929039291392923929339294392953929639297392983929939300393013930239303393043930539306393073930839309393103931139312393133931439315393163931739318393193932039321393223932339324393253932639327393283932939330393313933239333393343933539336393373933839339393403934139342393433934439345393463934739348393493935039351393523935339354393553935639357393583935939360393613936239363393643936539366393673936839369393703937139372393733937439375393763937739378393793938039381393823938339384393853938639387393883938939390393913939239393393943939539396393973939839399394003940139402394033940439405394063940739408394093941039411394123941339414394153941639417394183941939420394213942239423394243942539426394273942839429394303943139432394333943439435394363943739438394393944039441394423944339444394453944639447394483944939450394513945239453394543945539456394573945839459394603946139462394633946439465394663946739468394693947039471394723947339474394753947639477394783947939480394813948239483394843948539486394873948839489394903949139492394933949439495394963949739498394993950039501395023950339504395053950639507395083950939510395113951239513395143951539516395173951839519395203952139522395233952439525395263952739528395293953039531395323953339534395353953639537395383953939540395413954239543395443954539546395473954839549395503955139552395533955439555395563955739558395593956039561395623956339564395653956639567395683956939570395713957239573395743957539576395773957839579395803958139582395833958439585395863958739588395893959039591395923959339594395953959639597395983959939600396013960239603396043960539606396073960839609396103961139612396133961439615396163961739618396193962039621396223962339624396253962639627396283962939630396313963239633396343963539636396373963839639396403964139642396433964439645396463964739648396493965039651396523965339654396553965639657396583965939660396613966239663396643966539666396673966839669396703967139672396733967439675396763967739678396793968039681396823968339684396853968639687396883968939690396913969239693396943969539696396973969839699397003970139702397033970439705397063970739708397093971039711397123971339714397153971639717397183971939720397213972239723397243972539726397273972839729397303973139732397333973439735397363973739738397393974039741397423974339744397453974639747397483974939750397513975239753397543975539756397573975839759397603976139762397633976439765397663976739768397693977039771397723977339774397753977639777397783977939780397813978239783397843978539786397873978839789397903979139792397933979439795397963979739798397993980039801398023980339804398053980639807398083980939810398113981239813398143981539816398173981839819398203982139822398233982439825398263982739828398293983039831398323983339834398353983639837398383983939840398413984239843398443984539846398473984839849398503985139852398533985439855398563985739858398593986039861398623986339864398653986639867398683986939870398713987239873398743987539876398773987839879398803988139882398833988439885398863988739888398893989039891398923989339894398953989639897398983989939900399013990239903399043990539906399073990839909399103991139912399133991439915399163991739918399193992039921399223992339924399253992639927399283992939930399313993239933399343993539936399373993839939399403994139942399433994439945399463994739948399493995039951399523995339954399553995639957399583995939960399613996239963399643996539966399673996839969399703997139972399733997439975399763997739978399793998039981399823998339984399853998639987399883998939990399913999239993399943999539996399973999839999400004000140002400034000440005400064000740008400094001040011400124001340014400154001640017400184001940020400214002240023400244002540026400274002840029400304003140032400334003440035400364003740038400394004040041400424004340044400454004640047400484004940050400514005240053400544005540056400574005840059400604006140062400634006440065400664006740068400694007040071400724007340074400754007640077400784007940080400814008240083400844008540086400874008840089400904009140092400934009440095400964009740098400994010040101401024010340104401054010640107401084010940110401114011240113401144011540116401174011840119401204012140122401234012440125401264012740128401294013040131401324013340134401354013640137401384013940140401414014240143401444014540146401474014840149401504015140152401534015440155401564015740158401594016040161401624016340164401654016640167401684016940170401714017240173401744017540176401774017840179401804018140182401834018440185401864018740188401894019040191401924019340194401954019640197401984019940200402014020240203402044020540206402074020840209402104021140212402134021440215402164021740218402194022040221402224022340224402254022640227402284022940230402314023240233402344023540236402374023840239402404024140242402434024440245402464024740248402494025040251402524025340254402554025640257402584025940260402614026240263402644026540266402674026840269402704027140272402734027440275402764027740278402794028040281402824028340284402854028640287402884028940290402914029240293402944029540296402974029840299403004030140302403034030440305403064030740308403094031040311403124031340314403154031640317403184031940320403214032240323403244032540326403274032840329403304033140332403334033440335403364033740338403394034040341403424034340344403454034640347403484034940350403514035240353403544035540356403574035840359403604036140362403634036440365403664036740368403694037040371403724037340374403754037640377403784037940380403814038240383403844038540386403874038840389403904039140392403934039440395403964039740398403994040040401404024040340404404054040640407404084040940410404114041240413404144041540416404174041840419404204042140422404234042440425404264042740428404294043040431404324043340434404354043640437404384043940440404414044240443404444044540446404474044840449404504045140452404534045440455404564045740458404594046040461404624046340464404654046640467404684046940470404714047240473404744047540476404774047840479404804048140482404834048440485404864048740488404894049040491404924049340494404954049640497404984049940500405014050240503405044050540506405074050840509405104051140512405134051440515405164051740518405194052040521405224052340524405254052640527405284052940530405314053240533405344053540536405374053840539405404054140542405434054440545405464054740548405494055040551405524055340554405554055640557405584055940560405614056240563405644056540566405674056840569405704057140572405734057440575405764057740578405794058040581405824058340584405854058640587405884058940590405914059240593405944059540596405974059840599406004060140602406034060440605406064060740608406094061040611406124061340614406154061640617406184061940620406214062240623406244062540626406274062840629406304063140632406334063440635406364063740638406394064040641406424064340644406454064640647406484064940650406514065240653406544065540656406574065840659406604066140662406634066440665406664066740668406694067040671406724067340674406754067640677406784067940680406814068240683406844068540686406874068840689406904069140692406934069440695406964069740698406994070040701407024070340704407054070640707407084070940710407114071240713407144071540716407174071840719407204072140722407234072440725407264072740728407294073040731407324073340734407354073640737407384073940740407414074240743407444074540746407474074840749407504075140752407534075440755407564075740758407594076040761407624076340764407654076640767407684076940770407714077240773407744077540776407774077840779407804078140782407834078440785407864078740788407894079040791407924079340794407954079640797407984079940800408014080240803408044080540806408074080840809408104081140812408134081440815408164081740818408194082040821408224082340824408254082640827408284082940830408314083240833408344083540836408374083840839408404084140842408434084440845408464084740848408494085040851408524085340854408554085640857408584085940860408614086240863408644086540866408674086840869408704087140872408734087440875408764087740878408794088040881408824088340884408854088640887408884088940890408914089240893408944089540896408974089840899409004090140902409034090440905409064090740908409094091040911409124091340914409154091640917409184091940920409214092240923409244092540926409274092840929409304093140932409334093440935409364093740938409394094040941409424094340944409454094640947409484094940950409514095240953409544095540956409574095840959409604096140962409634096440965409664096740968409694097040971409724097340974409754097640977409784097940980409814098240983409844098540986409874098840989409904099140992409934099440995409964099740998409994100041001410024100341004410054100641007410084100941010410114101241013410144101541016410174101841019410204102141022410234102441025410264102741028410294103041031410324103341034410354103641037410384103941040410414104241043410444104541046410474104841049410504105141052410534105441055410564105741058410594106041061410624106341064410654106641067410684106941070410714107241073410744107541076410774107841079410804108141082410834108441085410864108741088410894109041091410924109341094410954109641097410984109941100411014110241103411044110541106411074110841109411104111141112411134111441115411164111741118411194112041121411224112341124411254112641127411284112941130411314113241133411344113541136411374113841139411404114141142411434114441145411464114741148411494115041151411524115341154411554115641157411584115941160411614116241163411644116541166411674116841169411704117141172411734117441175411764117741178411794118041181411824118341184411854118641187411884118941190411914119241193411944119541196411974119841199412004120141202412034120441205412064120741208412094121041211412124121341214412154121641217412184121941220412214122241223412244122541226412274122841229412304123141232412334123441235412364123741238412394124041241412424124341244412454124641247412484124941250412514125241253412544125541256412574125841259412604126141262412634126441265412664126741268412694127041271412724127341274412754127641277412784127941280412814128241283412844128541286412874128841289412904129141292412934129441295412964129741298412994130041301413024130341304413054130641307413084130941310413114131241313413144131541316413174131841319413204132141322413234132441325413264132741328413294133041331413324133341334413354133641337413384133941340413414134241343413444134541346413474134841349413504135141352413534135441355413564135741358413594136041361413624136341364413654136641367413684136941370413714137241373413744137541376413774137841379413804138141382413834138441385413864138741388413894139041391413924139341394413954139641397413984139941400414014140241403414044140541406414074140841409414104141141412414134141441415414164141741418414194142041421414224142341424414254142641427414284142941430414314143241433414344143541436414374143841439414404144141442414434144441445414464144741448414494145041451414524145341454414554145641457414584145941460414614146241463414644146541466414674146841469414704147141472414734147441475414764147741478414794148041481414824148341484414854148641487414884148941490414914149241493414944149541496414974149841499415004150141502415034150441505415064150741508415094151041511415124151341514415154151641517415184151941520415214152241523415244152541526415274152841529415304153141532415334153441535415364153741538415394154041541415424154341544415454154641547415484154941550415514155241553415544155541556415574155841559415604156141562415634156441565415664156741568415694157041571415724157341574415754157641577415784157941580415814158241583415844158541586415874158841589415904159141592415934159441595415964159741598415994160041601416024160341604416054160641607416084160941610416114161241613416144161541616416174161841619416204162141622416234162441625416264162741628416294163041631416324163341634416354163641637416384163941640416414164241643416444164541646416474164841649416504165141652416534165441655416564165741658416594166041661416624166341664416654166641667416684166941670416714167241673416744167541676416774167841679416804168141682416834168441685416864168741688416894169041691416924169341694416954169641697416984169941700417014170241703417044170541706417074170841709417104171141712417134171441715417164171741718417194172041721417224172341724417254172641727417284172941730417314173241733417344173541736417374173841739417404174141742417434174441745417464174741748417494175041751417524175341754417554175641757417584175941760417614176241763417644176541766417674176841769417704177141772417734177441775417764177741778417794178041781417824178341784417854178641787417884178941790417914179241793417944179541796417974179841799418004180141802418034180441805418064180741808418094181041811418124181341814418154181641817418184181941820418214182241823418244182541826418274182841829418304183141832418334183441835418364183741838418394184041841418424184341844418454184641847418484184941850418514185241853418544185541856418574185841859418604186141862418634186441865418664186741868418694187041871418724187341874418754187641877418784187941880418814188241883418844188541886418874188841889418904189141892418934189441895418964189741898418994190041901419024190341904419054190641907419084190941910419114191241913419144191541916419174191841919419204192141922419234192441925419264192741928419294193041931419324193341934419354193641937419384193941940419414194241943419444194541946419474194841949419504195141952419534195441955419564195741958419594196041961419624196341964419654196641967419684196941970419714197241973419744197541976419774197841979419804198141982419834198441985419864198741988419894199041991419924199341994419954199641997419984199942000420014200242003420044200542006420074200842009420104201142012420134201442015420164201742018420194202042021420224202342024420254202642027420284202942030420314203242033420344203542036420374203842039420404204142042420434204442045420464204742048420494205042051420524205342054420554205642057420584205942060420614206242063420644206542066420674206842069420704207142072420734207442075420764207742078420794208042081420824208342084420854208642087420884208942090420914209242093420944209542096420974209842099421004210142102421034210442105421064210742108421094211042111421124211342114421154211642117421184211942120421214212242123421244212542126421274212842129421304213142132421334213442135421364213742138421394214042141421424214342144421454214642147421484214942150421514215242153421544215542156421574215842159421604216142162421634216442165421664216742168421694217042171421724217342174421754217642177421784217942180421814218242183421844218542186421874218842189421904219142192421934219442195421964219742198421994220042201422024220342204422054220642207422084220942210422114221242213422144221542216422174221842219422204222142222422234222442225422264222742228422294223042231422324223342234422354223642237422384223942240422414224242243422444224542246422474224842249422504225142252422534225442255422564225742258422594226042261422624226342264422654226642267422684226942270422714227242273422744227542276422774227842279422804228142282422834228442285422864228742288422894229042291422924229342294422954229642297422984229942300423014230242303423044230542306423074230842309423104231142312423134231442315423164231742318423194232042321423224232342324423254232642327423284232942330423314233242333423344233542336423374233842339423404234142342423434234442345423464234742348423494235042351423524235342354423554235642357423584235942360423614236242363423644236542366423674236842369423704237142372423734237442375423764237742378423794238042381423824238342384423854238642387423884238942390423914239242393423944239542396423974239842399424004240142402424034240442405424064240742408424094241042411424124241342414424154241642417424184241942420424214242242423424244242542426424274242842429424304243142432424334243442435424364243742438424394244042441424424244342444424454244642447424484244942450424514245242453424544245542456424574245842459424604246142462424634246442465424664246742468424694247042471424724247342474424754247642477424784247942480424814248242483424844248542486424874248842489424904249142492424934249442495424964249742498424994250042501425024250342504425054250642507425084250942510425114251242513425144251542516425174251842519425204252142522425234252442525425264252742528425294253042531425324253342534425354253642537425384253942540425414254242543425444254542546425474254842549425504255142552425534255442555425564255742558425594256042561425624256342564425654256642567425684256942570425714257242573425744257542576425774257842579425804258142582425834258442585425864258742588425894259042591425924259342594425954259642597425984259942600426014260242603426044260542606426074260842609426104261142612426134261442615426164261742618426194262042621426224262342624426254262642627426284262942630426314263242633426344263542636426374263842639426404264142642426434264442645426464264742648426494265042651426524265342654426554265642657426584265942660426614266242663426644266542666426674266842669426704267142672426734267442675426764267742678426794268042681426824268342684426854268642687426884268942690426914269242693426944269542696426974269842699427004270142702427034270442705427064270742708427094271042711427124271342714427154271642717427184271942720427214272242723427244272542726427274272842729427304273142732427334273442735427364273742738427394274042741427424274342744427454274642747427484274942750427514275242753427544275542756427574275842759427604276142762427634276442765427664276742768427694277042771427724277342774427754277642777427784277942780427814278242783427844278542786427874278842789427904279142792427934279442795427964279742798427994280042801428024280342804428054280642807428084280942810428114281242813428144281542816428174281842819428204282142822428234282442825428264282742828428294283042831428324283342834428354283642837428384283942840428414284242843428444284542846428474284842849428504285142852428534285442855428564285742858428594286042861428624286342864428654286642867428684286942870428714287242873428744287542876428774287842879428804288142882428834288442885428864288742888428894289042891428924289342894428954289642897428984289942900429014290242903429044290542906429074290842909429104291142912429134291442915429164291742918429194292042921429224292342924429254292642927429284292942930429314293242933429344293542936429374293842939429404294142942429434294442945429464294742948429494295042951429524295342954429554295642957429584295942960429614296242963429644296542966429674296842969429704297142972429734297442975429764297742978429794298042981429824298342984429854298642987429884298942990429914299242993429944299542996429974299842999430004300143002430034300443005430064300743008430094301043011430124301343014430154301643017430184301943020430214302243023430244302543026430274302843029430304303143032430334303443035430364303743038430394304043041430424304343044430454304643047430484304943050430514305243053430544305543056430574305843059430604306143062430634306443065430664306743068430694307043071430724307343074430754307643077430784307943080430814308243083430844308543086430874308843089430904309143092430934309443095430964309743098430994310043101431024310343104431054310643107431084310943110431114311243113431144311543116431174311843119431204312143122431234312443125431264312743128431294313043131431324313343134431354313643137431384313943140431414314243143431444314543146431474314843149431504315143152431534315443155431564315743158431594316043161431624316343164431654316643167431684316943170431714317243173431744317543176431774317843179431804318143182431834318443185431864318743188431894319043191431924319343194431954319643197431984319943200432014320243203432044320543206432074320843209432104321143212432134321443215432164321743218432194322043221432224322343224432254322643227432284322943230432314323243233432344323543236432374323843239432404324143242432434324443245432464324743248432494325043251432524325343254432554325643257432584325943260432614326243263432644326543266432674326843269432704327143272432734327443275432764327743278432794328043281432824328343284432854328643287432884328943290432914329243293432944329543296432974329843299433004330143302433034330443305433064330743308433094331043311433124331343314433154331643317433184331943320433214332243323433244332543326433274332843329433304333143332433334333443335433364333743338433394334043341433424334343344433454334643347433484334943350433514335243353433544335543356433574335843359433604336143362433634336443365433664336743368433694337043371433724337343374433754337643377433784337943380433814338243383433844338543386433874338843389433904339143392433934339443395433964339743398433994340043401434024340343404434054340643407434084340943410434114341243413434144341543416434174341843419434204342143422434234342443425434264342743428434294343043431434324343343434434354343643437434384343943440434414344243443434444344543446434474344843449434504345143452434534345443455434564345743458434594346043461434624346343464434654346643467434684346943470434714347243473434744347543476434774347843479434804348143482434834348443485434864348743488434894349043491434924349343494434954349643497434984349943500435014350243503435044350543506435074350843509435104351143512435134351443515435164351743518435194352043521435224352343524435254352643527435284352943530435314353243533435344353543536435374353843539435404354143542435434354443545435464354743548435494355043551435524355343554435554355643557435584355943560435614356243563435644356543566435674356843569435704357143572435734357443575435764357743578435794358043581435824358343584435854358643587435884358943590435914359243593435944359543596435974359843599436004360143602436034360443605436064360743608436094361043611436124361343614436154361643617436184361943620436214362243623436244362543626436274362843629436304363143632436334363443635436364363743638436394364043641436424364343644436454364643647436484364943650436514365243653436544365543656436574365843659436604366143662436634366443665436664366743668436694367043671436724367343674436754367643677436784367943680436814368243683436844368543686436874368843689436904369143692436934369443695436964369743698436994370043701437024370343704437054370643707437084370943710437114371243713437144371543716437174371843719437204372143722437234372443725437264372743728437294373043731437324373343734437354373643737437384373943740437414374243743437444374543746437474374843749437504375143752437534375443755437564375743758437594376043761437624376343764437654376643767437684376943770437714377243773437744377543776437774377843779437804378143782437834378443785437864378743788437894379043791437924379343794437954379643797437984379943800438014380243803438044380543806438074380843809438104381143812438134381443815438164381743818438194382043821438224382343824438254382643827438284382943830438314383243833438344383543836438374383843839438404384143842438434384443845438464384743848438494385043851438524385343854438554385643857438584385943860438614386243863438644386543866438674386843869438704387143872438734387443875438764387743878438794388043881438824388343884438854388643887438884388943890438914389243893438944389543896438974389843899439004390143902439034390443905439064390743908439094391043911439124391343914439154391643917439184391943920439214392243923439244392543926439274392843929439304393143932439334393443935439364393743938439394394043941439424394343944439454394643947439484394943950439514395243953439544395543956439574395843959439604396143962439634396443965439664396743968439694397043971439724397343974439754397643977439784397943980439814398243983439844398543986439874398843989439904399143992439934399443995439964399743998439994400044001440024400344004440054400644007440084400944010440114401244013440144401544016440174401844019440204402144022440234402444025440264402744028440294403044031440324403344034440354403644037440384403944040440414404244043440444404544046440474404844049440504405144052440534405444055440564405744058440594406044061440624406344064440654406644067440684406944070440714407244073440744407544076440774407844079440804408144082440834408444085440864408744088440894409044091440924409344094440954409644097440984409944100441014410244103441044410544106441074410844109441104411144112441134411444115441164411744118441194412044121441224412344124441254412644127441284412944130441314413244133441344413544136441374413844139441404414144142441434414444145441464414744148441494415044151441524415344154441554415644157441584415944160441614416244163441644416544166441674416844169441704417144172441734417444175441764417744178441794418044181441824418344184441854418644187441884418944190441914419244193441944419544196441974419844199442004420144202442034420444205442064420744208442094421044211442124421344214442154421644217442184421944220442214422244223442244422544226442274422844229442304423144232442334423444235442364423744238442394424044241442424424344244442454424644247442484424944250442514425244253442544425544256442574425844259442604426144262442634426444265442664426744268442694427044271442724427344274442754427644277442784427944280442814428244283442844428544286442874428844289442904429144292442934429444295442964429744298442994430044301443024430344304443054430644307443084430944310443114431244313443144431544316443174431844319443204432144322443234432444325443264432744328443294433044331443324433344334443354433644337443384433944340443414434244343443444434544346443474434844349443504435144352443534435444355443564435744358443594436044361443624436344364443654436644367443684436944370443714437244373443744437544376443774437844379443804438144382443834438444385443864438744388443894439044391443924439344394443954439644397443984439944400444014440244403444044440544406444074440844409444104441144412444134441444415444164441744418444194442044421444224442344424444254442644427444284442944430444314443244433444344443544436444374443844439444404444144442444434444444445444464444744448444494445044451444524445344454444554445644457444584445944460444614446244463444644446544466444674446844469444704447144472444734447444475444764447744478444794448044481444824448344484444854448644487444884448944490444914449244493444944449544496444974449844499445004450144502445034450444505445064450744508445094451044511445124451344514445154451644517445184451944520445214452244523445244452544526445274452844529445304453144532445334453444535445364453744538445394454044541445424454344544445454454644547445484454944550445514455244553445544455544556445574455844559445604456144562445634456444565445664456744568445694457044571445724457344574445754457644577445784457944580445814458244583445844458544586445874458844589445904459144592445934459444595445964459744598445994460044601446024460344604446054460644607446084460944610446114461244613446144461544616446174461844619446204462144622446234462444625446264462744628446294463044631446324463344634446354463644637446384463944640446414464244643446444464544646446474464844649446504465144652446534465444655446564465744658446594466044661446624466344664446654466644667446684466944670446714467244673446744467544676446774467844679446804468144682446834468444685446864468744688446894469044691446924469344694446954469644697446984469944700447014470244703447044470544706447074470844709447104471144712447134471444715447164471744718447194472044721447224472344724447254472644727447284472944730447314473244733447344473544736447374473844739447404474144742447434474444745447464474744748447494475044751447524475344754447554475644757447584475944760447614476244763447644476544766447674476844769447704477144772447734477444775447764477744778447794478044781447824478344784447854478644787447884478944790447914479244793447944479544796447974479844799448004480144802448034480444805448064480744808448094481044811448124481344814448154481644817448184481944820448214482244823448244482544826448274482844829448304483144832448334483444835448364483744838448394484044841448424484344844448454484644847448484484944850448514485244853448544485544856448574485844859448604486144862448634486444865448664486744868448694487044871448724487344874448754487644877448784487944880448814488244883448844488544886448874488844889448904489144892448934489444895448964489744898448994490044901449024490344904449054490644907449084490944910449114491244913449144491544916449174491844919449204492144922449234492444925449264492744928449294493044931449324493344934449354493644937449384493944940449414494244943449444494544946449474494844949449504495144952449534495444955449564495744958449594496044961449624496344964449654496644967449684496944970449714497244973449744497544976449774497844979449804498144982449834498444985449864498744988449894499044991449924499344994449954499644997449984499945000450014500245003450044500545006450074500845009450104501145012450134501445015450164501745018450194502045021450224502345024450254502645027450284502945030450314503245033450344503545036450374503845039450404504145042450434504445045450464504745048450494505045051450524505345054450554505645057450584505945060450614506245063450644506545066450674506845069450704507145072450734507445075450764507745078450794508045081450824508345084450854508645087450884508945090450914509245093450944509545096450974509845099451004510145102451034510445105451064510745108451094511045111451124511345114451154511645117451184511945120451214512245123451244512545126451274512845129451304513145132451334513445135451364513745138451394514045141451424514345144451454514645147451484514945150451514515245153451544515545156451574515845159451604516145162451634516445165451664516745168451694517045171451724517345174451754517645177451784517945180451814518245183451844518545186451874518845189451904519145192451934519445195451964519745198451994520045201452024520345204452054520645207452084520945210452114521245213452144521545216452174521845219452204522145222452234522445225452264522745228452294523045231452324523345234452354523645237452384523945240452414524245243452444524545246452474524845249452504525145252452534525445255452564525745258452594526045261452624526345264452654526645267452684526945270452714527245273452744527545276452774527845279452804528145282452834528445285452864528745288452894529045291452924529345294452954529645297452984529945300453014530245303453044530545306453074530845309453104531145312453134531445315453164531745318453194532045321453224532345324453254532645327453284532945330453314533245333453344533545336453374533845339453404534145342453434534445345453464534745348453494535045351453524535345354453554535645357453584535945360453614536245363453644536545366453674536845369453704537145372453734537445375453764537745378453794538045381453824538345384453854538645387453884538945390453914539245393453944539545396453974539845399454004540145402454034540445405454064540745408454094541045411454124541345414454154541645417454184541945420454214542245423454244542545426454274542845429454304543145432454334543445435454364543745438454394544045441454424544345444454454544645447454484544945450454514545245453454544545545456454574545845459454604546145462454634546445465454664546745468454694547045471454724547345474454754547645477454784547945480454814548245483454844548545486454874548845489454904549145492454934549445495454964549745498454994550045501455024550345504455054550645507455084550945510455114551245513455144551545516455174551845519455204552145522455234552445525455264552745528455294553045531455324553345534455354553645537455384553945540455414554245543455444554545546455474554845549455504555145552455534555445555455564555745558455594556045561455624556345564455654556645567455684556945570455714557245573455744557545576455774557845579455804558145582455834558445585455864558745588455894559045591455924559345594455954559645597455984559945600456014560245603456044560545606456074560845609456104561145612456134561445615456164561745618456194562045621456224562345624456254562645627456284562945630456314563245633456344563545636456374563845639456404564145642456434564445645456464564745648456494565045651456524565345654456554565645657456584565945660456614566245663456644566545666456674566845669456704567145672456734567445675456764567745678456794568045681456824568345684456854568645687456884568945690456914569245693456944569545696456974569845699457004570145702457034570445705457064570745708457094571045711457124571345714457154571645717457184571945720457214572245723457244572545726457274572845729457304573145732457334573445735457364573745738457394574045741457424574345744457454574645747457484574945750457514575245753457544575545756457574575845759457604576145762457634576445765457664576745768457694577045771457724577345774457754577645777457784577945780457814578245783457844578545786457874578845789457904579145792457934579445795457964579745798457994580045801458024580345804458054580645807458084580945810458114581245813458144581545816458174581845819458204582145822458234582445825458264582745828458294583045831458324583345834458354583645837458384583945840458414584245843458444584545846458474584845849458504585145852458534585445855
  1. <?xml version="1.0"?>
  2. <!-- This file was automatically generated from C sources - DO NOT EDIT!
  3. To affect the contents of this file, edit the original C definitions,
  4. and/or use gtk-doc annotations. -->
  5. <repository version="1.2"
  6. xmlns="http://www.gtk.org/introspection/core/1.0"
  7. xmlns:c="http://www.gtk.org/introspection/c/1.0"
  8. xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
  9. <include name="GLib" version="2.0"/>
  10. <include name="GModule" version="2.0"/>
  11. <include name="GObject" version="2.0"/>
  12. <package name="gstreamer-1.0"/>
  13. <c:include name="gst/gst.h"/>
  14. <namespace name="Gst"
  15. version="1.0"
  16. shared-library="libgstreamer-1.0.so.0"
  17. c:identifier-prefixes="Gst"
  18. c:symbol-prefixes="gst">
  19. <alias name="ClockID" c:type="GstClockID">
  20. <doc xml:space="preserve">A datatype to hold the handle to an outstanding sync or async clock callback.</doc>
  21. <type name="gpointer" c:type="gpointer"/>
  22. </alias>
  23. <alias name="ClockTime" c:type="GstClockTime">
  24. <doc xml:space="preserve">A datatype to hold a time, measured in nanoseconds.</doc>
  25. <type name="guint64" c:type="guint64"/>
  26. </alias>
  27. <alias name="ClockTimeDiff" c:type="GstClockTimeDiff">
  28. <doc xml:space="preserve">A datatype to hold a time difference, measured in nanoseconds.</doc>
  29. <type name="gint64" c:type="gint64"/>
  30. </alias>
  31. <alias name="ElementFactoryListType" c:type="GstElementFactoryListType">
  32. <type name="guint64" c:type="guint64"/>
  33. </alias>
  34. <constant name="ALLOCATOR_SYSMEM"
  35. value="SystemMemory"
  36. c:type="GST_ALLOCATOR_SYSMEM">
  37. <doc xml:space="preserve">The allocator name for the default system memory allocator</doc>
  38. <type name="utf8" c:type="gchar*"/>
  39. </constant>
  40. <record name="AllocationParams"
  41. c:type="GstAllocationParams"
  42. glib:type-name="GstAllocationParams"
  43. glib:get-type="gst_allocation_params_get_type"
  44. c:symbol-prefix="allocation_params">
  45. <doc xml:space="preserve">Parameters to control the allocation of memory</doc>
  46. <field name="flags" writable="1">
  47. <doc xml:space="preserve">flags to control allocation</doc>
  48. <type name="MemoryFlags" c:type="GstMemoryFlags"/>
  49. </field>
  50. <field name="align" writable="1">
  51. <doc xml:space="preserve">the desired alignment of the memory</doc>
  52. <type name="gsize" c:type="gsize"/>
  53. </field>
  54. <field name="prefix" writable="1">
  55. <doc xml:space="preserve">the desired prefix</doc>
  56. <type name="gsize" c:type="gsize"/>
  57. </field>
  58. <field name="padding" writable="1">
  59. <doc xml:space="preserve">the desired padding</doc>
  60. <type name="gsize" c:type="gsize"/>
  61. </field>
  62. <field name="_gst_reserved" readable="0" private="1">
  63. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  64. <type name="gpointer" c:type="gpointer"/>
  65. </array>
  66. </field>
  67. <method name="copy" c:identifier="gst_allocation_params_copy">
  68. <doc xml:space="preserve">Create a copy of @params.
  69. Free-function: gst_allocation_params_free</doc>
  70. <return-value transfer-ownership="full">
  71. <doc xml:space="preserve">a new ##GstAllocationParams, free with
  72. gst_allocation_params_free().</doc>
  73. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  74. </return-value>
  75. <parameters>
  76. <instance-parameter name="params" transfer-ownership="none">
  77. <doc xml:space="preserve">a #GstAllocationParams</doc>
  78. <type name="AllocationParams" c:type="const GstAllocationParams*"/>
  79. </instance-parameter>
  80. </parameters>
  81. </method>
  82. <method name="free" c:identifier="gst_allocation_params_free">
  83. <doc xml:space="preserve">Free @params</doc>
  84. <return-value transfer-ownership="none">
  85. <type name="none" c:type="void"/>
  86. </return-value>
  87. <parameters>
  88. <instance-parameter name="params" transfer-ownership="full">
  89. <doc xml:space="preserve">a #GstAllocationParams</doc>
  90. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  91. </instance-parameter>
  92. </parameters>
  93. </method>
  94. <method name="init" c:identifier="gst_allocation_params_init">
  95. <doc xml:space="preserve">Initialize @params to its default values</doc>
  96. <return-value transfer-ownership="none">
  97. <type name="none" c:type="void"/>
  98. </return-value>
  99. <parameters>
  100. <instance-parameter name="params" transfer-ownership="none">
  101. <doc xml:space="preserve">a #GstAllocationParams</doc>
  102. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  103. </instance-parameter>
  104. </parameters>
  105. </method>
  106. </record>
  107. <class name="Allocator"
  108. c:symbol-prefix="allocator"
  109. c:type="GstAllocator"
  110. parent="Object"
  111. abstract="1"
  112. glib:type-name="GstAllocator"
  113. glib:get-type="gst_allocator_get_type"
  114. glib:type-struct="AllocatorClass">
  115. <doc xml:space="preserve">Memory is usually created by allocators with a gst_allocator_alloc()
  116. method call. When %NULL is used as the allocator, the default allocator will
  117. be used.
  118. New allocators can be registered with gst_allocator_register().
  119. Allocators are identified by name and can be retrieved with
  120. gst_allocator_find(). gst_allocator_set_default() can be used to change the
  121. default allocator.
  122. New memory can be created with gst_memory_new_wrapped() that wraps the memory
  123. allocated elsewhere.</doc>
  124. <function name="find" c:identifier="gst_allocator_find">
  125. <doc xml:space="preserve">Find a previously registered allocator with @name. When @name is %NULL, the
  126. default allocator will be returned.</doc>
  127. <return-value transfer-ownership="full" nullable="1">
  128. <doc xml:space="preserve">a #GstAllocator or %NULL when
  129. the allocator with @name was not registered. Use gst_object_unref()
  130. to release the allocator after usage.</doc>
  131. <type name="Allocator" c:type="GstAllocator*"/>
  132. </return-value>
  133. <parameters>
  134. <parameter name="name"
  135. transfer-ownership="none"
  136. nullable="1"
  137. allow-none="1">
  138. <doc xml:space="preserve">the name of the allocator</doc>
  139. <type name="utf8" c:type="const gchar*"/>
  140. </parameter>
  141. </parameters>
  142. </function>
  143. <function name="register" c:identifier="gst_allocator_register">
  144. <doc xml:space="preserve">Registers the memory @allocator with @name. This function takes ownership of
  145. @allocator.</doc>
  146. <return-value transfer-ownership="none">
  147. <type name="none" c:type="void"/>
  148. </return-value>
  149. <parameters>
  150. <parameter name="name" transfer-ownership="none">
  151. <doc xml:space="preserve">the name of the allocator</doc>
  152. <type name="utf8" c:type="const gchar*"/>
  153. </parameter>
  154. <parameter name="allocator" transfer-ownership="full">
  155. <doc xml:space="preserve">#GstAllocator</doc>
  156. <type name="Allocator" c:type="GstAllocator*"/>
  157. </parameter>
  158. </parameters>
  159. </function>
  160. <virtual-method name="alloc" invoker="alloc">
  161. <doc xml:space="preserve">Use @allocator to allocate a new memory block with memory that is at least
  162. @size big.
  163. The optional @params can specify the prefix and padding for the memory. If
  164. %NULL is passed, no flags, no extra prefix/padding and a default alignment is
  165. used.
  166. The prefix/padding will be filled with 0 if flags contains
  167. #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
  168. When @allocator is %NULL, the default allocator will be used.
  169. The alignment in @params is given as a bitmask so that @align + 1 equals
  170. the amount of bytes to align to. For example, to align to 8 bytes,
  171. use an alignment of 7.</doc>
  172. <return-value transfer-ownership="full">
  173. <doc xml:space="preserve">a new #GstMemory.</doc>
  174. <type name="Memory" c:type="GstMemory*"/>
  175. </return-value>
  176. <parameters>
  177. <instance-parameter name="allocator"
  178. transfer-ownership="none"
  179. nullable="1"
  180. allow-none="1">
  181. <doc xml:space="preserve">a #GstAllocator to use</doc>
  182. <type name="Allocator" c:type="GstAllocator*"/>
  183. </instance-parameter>
  184. <parameter name="size" transfer-ownership="none">
  185. <doc xml:space="preserve">size of the visible memory area</doc>
  186. <type name="gsize" c:type="gsize"/>
  187. </parameter>
  188. <parameter name="params"
  189. transfer-ownership="none"
  190. nullable="1"
  191. allow-none="1">
  192. <doc xml:space="preserve">optional parameters</doc>
  193. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  194. </parameter>
  195. </parameters>
  196. </virtual-method>
  197. <virtual-method name="free" invoker="free">
  198. <doc xml:space="preserve">Free @memory that was previously allocated with gst_allocator_alloc().</doc>
  199. <return-value transfer-ownership="none">
  200. <type name="none" c:type="void"/>
  201. </return-value>
  202. <parameters>
  203. <instance-parameter name="allocator" transfer-ownership="none">
  204. <doc xml:space="preserve">a #GstAllocator to use</doc>
  205. <type name="Allocator" c:type="GstAllocator*"/>
  206. </instance-parameter>
  207. <parameter name="memory" transfer-ownership="full">
  208. <doc xml:space="preserve">the memory to free</doc>
  209. <type name="Memory" c:type="GstMemory*"/>
  210. </parameter>
  211. </parameters>
  212. </virtual-method>
  213. <method name="alloc" c:identifier="gst_allocator_alloc">
  214. <doc xml:space="preserve">Use @allocator to allocate a new memory block with memory that is at least
  215. @size big.
  216. The optional @params can specify the prefix and padding for the memory. If
  217. %NULL is passed, no flags, no extra prefix/padding and a default alignment is
  218. used.
  219. The prefix/padding will be filled with 0 if flags contains
  220. #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.
  221. When @allocator is %NULL, the default allocator will be used.
  222. The alignment in @params is given as a bitmask so that @align + 1 equals
  223. the amount of bytes to align to. For example, to align to 8 bytes,
  224. use an alignment of 7.</doc>
  225. <return-value transfer-ownership="full">
  226. <doc xml:space="preserve">a new #GstMemory.</doc>
  227. <type name="Memory" c:type="GstMemory*"/>
  228. </return-value>
  229. <parameters>
  230. <instance-parameter name="allocator"
  231. transfer-ownership="none"
  232. nullable="1"
  233. allow-none="1">
  234. <doc xml:space="preserve">a #GstAllocator to use</doc>
  235. <type name="Allocator" c:type="GstAllocator*"/>
  236. </instance-parameter>
  237. <parameter name="size" transfer-ownership="none">
  238. <doc xml:space="preserve">size of the visible memory area</doc>
  239. <type name="gsize" c:type="gsize"/>
  240. </parameter>
  241. <parameter name="params"
  242. transfer-ownership="none"
  243. nullable="1"
  244. allow-none="1">
  245. <doc xml:space="preserve">optional parameters</doc>
  246. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  247. </parameter>
  248. </parameters>
  249. </method>
  250. <method name="free" c:identifier="gst_allocator_free">
  251. <doc xml:space="preserve">Free @memory that was previously allocated with gst_allocator_alloc().</doc>
  252. <return-value transfer-ownership="none">
  253. <type name="none" c:type="void"/>
  254. </return-value>
  255. <parameters>
  256. <instance-parameter name="allocator" transfer-ownership="none">
  257. <doc xml:space="preserve">a #GstAllocator to use</doc>
  258. <type name="Allocator" c:type="GstAllocator*"/>
  259. </instance-parameter>
  260. <parameter name="memory" transfer-ownership="full">
  261. <doc xml:space="preserve">the memory to free</doc>
  262. <type name="Memory" c:type="GstMemory*"/>
  263. </parameter>
  264. </parameters>
  265. </method>
  266. <method name="set_default" c:identifier="gst_allocator_set_default">
  267. <doc xml:space="preserve">Set the default allocator. This function takes ownership of @allocator.</doc>
  268. <return-value transfer-ownership="none">
  269. <type name="none" c:type="void"/>
  270. </return-value>
  271. <parameters>
  272. <instance-parameter name="allocator" transfer-ownership="full">
  273. <doc xml:space="preserve">a #GstAllocator</doc>
  274. <type name="Allocator" c:type="GstAllocator*"/>
  275. </instance-parameter>
  276. </parameters>
  277. </method>
  278. <field name="object">
  279. <type name="Object" c:type="GstObject"/>
  280. </field>
  281. <field name="mem_type">
  282. <type name="utf8" c:type="const gchar*"/>
  283. </field>
  284. <field name="mem_map">
  285. <doc xml:space="preserve">the implementation of the GstMemoryMapFunction</doc>
  286. <type name="MemoryMapFunction" c:type="GstMemoryMapFunction"/>
  287. </field>
  288. <field name="mem_unmap">
  289. <doc xml:space="preserve">the implementation of the GstMemoryUnmapFunction</doc>
  290. <type name="MemoryUnmapFunction" c:type="GstMemoryUnmapFunction"/>
  291. </field>
  292. <field name="mem_copy">
  293. <doc xml:space="preserve">the implementation of the GstMemoryCopyFunction</doc>
  294. <type name="MemoryCopyFunction" c:type="GstMemoryCopyFunction"/>
  295. </field>
  296. <field name="mem_share">
  297. <doc xml:space="preserve">the implementation of the GstMemoryShareFunction</doc>
  298. <type name="MemoryShareFunction" c:type="GstMemoryShareFunction"/>
  299. </field>
  300. <field name="mem_is_span">
  301. <doc xml:space="preserve">the implementation of the GstMemoryIsSpanFunction</doc>
  302. <type name="MemoryIsSpanFunction" c:type="GstMemoryIsSpanFunction"/>
  303. </field>
  304. <field name="mem_map_full">
  305. <doc xml:space="preserve">the implementation of the GstMemoryMapFullFunction.
  306. Will be used instead of @mem_map if present. (Since 1.6)</doc>
  307. <type name="MemoryMapFullFunction" c:type="GstMemoryMapFullFunction"/>
  308. </field>
  309. <field name="mem_unmap_full">
  310. <doc xml:space="preserve">the implementation of the GstMemoryUnmapFullFunction.
  311. Will be used instead of @mem_unmap if present. (Since 1.6)</doc>
  312. <type name="MemoryUnmapFullFunction"
  313. c:type="GstMemoryUnmapFullFunction"/>
  314. </field>
  315. <field name="_gst_reserved" readable="0" private="1">
  316. <array zero-terminated="0" c:type="gpointer" fixed-size="2">
  317. <type name="gpointer" c:type="gpointer"/>
  318. </array>
  319. </field>
  320. <field name="priv" readable="0" private="1">
  321. <type name="AllocatorPrivate" c:type="GstAllocatorPrivate*"/>
  322. </field>
  323. </class>
  324. <record name="AllocatorClass"
  325. c:type="GstAllocatorClass"
  326. glib:is-gtype-struct-for="Allocator">
  327. <doc xml:space="preserve">The #GstAllocator is used to create new memory.</doc>
  328. <field name="object_class">
  329. <doc xml:space="preserve">Object parent class</doc>
  330. <type name="ObjectClass" c:type="GstObjectClass"/>
  331. </field>
  332. <field name="alloc">
  333. <callback name="alloc">
  334. <return-value transfer-ownership="full">
  335. <doc xml:space="preserve">a new #GstMemory.</doc>
  336. <type name="Memory" c:type="GstMemory*"/>
  337. </return-value>
  338. <parameters>
  339. <parameter name="allocator"
  340. transfer-ownership="none"
  341. nullable="1"
  342. allow-none="1">
  343. <doc xml:space="preserve">a #GstAllocator to use</doc>
  344. <type name="Allocator" c:type="GstAllocator*"/>
  345. </parameter>
  346. <parameter name="size" transfer-ownership="none">
  347. <doc xml:space="preserve">size of the visible memory area</doc>
  348. <type name="gsize" c:type="gsize"/>
  349. </parameter>
  350. <parameter name="params"
  351. transfer-ownership="none"
  352. nullable="1"
  353. allow-none="1">
  354. <doc xml:space="preserve">optional parameters</doc>
  355. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  356. </parameter>
  357. </parameters>
  358. </callback>
  359. </field>
  360. <field name="free">
  361. <callback name="free">
  362. <return-value transfer-ownership="none">
  363. <type name="none" c:type="void"/>
  364. </return-value>
  365. <parameters>
  366. <parameter name="allocator" transfer-ownership="none">
  367. <doc xml:space="preserve">a #GstAllocator to use</doc>
  368. <type name="Allocator" c:type="GstAllocator*"/>
  369. </parameter>
  370. <parameter name="memory" transfer-ownership="full">
  371. <doc xml:space="preserve">the memory to free</doc>
  372. <type name="Memory" c:type="GstMemory*"/>
  373. </parameter>
  374. </parameters>
  375. </callback>
  376. </field>
  377. <field name="_gst_reserved" readable="0" private="1">
  378. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  379. <type name="gpointer" c:type="gpointer"/>
  380. </array>
  381. </field>
  382. </record>
  383. <bitfield name="AllocatorFlags"
  384. glib:type-name="GstAllocatorFlags"
  385. glib:get-type="gst_allocator_flags_get_type"
  386. c:type="GstAllocatorFlags">
  387. <doc xml:space="preserve">Flags for allocators.</doc>
  388. <member name="custom_alloc"
  389. value="16"
  390. c:identifier="GST_ALLOCATOR_FLAG_CUSTOM_ALLOC"
  391. glib:nick="custom-alloc">
  392. <doc xml:space="preserve">The allocator has a custom alloc function.</doc>
  393. </member>
  394. <member name="last"
  395. value="1048576"
  396. c:identifier="GST_ALLOCATOR_FLAG_LAST"
  397. glib:nick="last">
  398. <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
  399. </member>
  400. </bitfield>
  401. <record name="AllocatorPrivate" c:type="GstAllocatorPrivate" disguised="1">
  402. </record>
  403. <record name="AtomicQueue"
  404. c:type="GstAtomicQueue"
  405. glib:type-name="GstAtomicQueue"
  406. glib:get-type="gst_atomic_queue_get_type"
  407. c:symbol-prefix="atomic_queue">
  408. <doc xml:space="preserve">The #GstAtomicQueue object implements a queue that can be used from multiple
  409. threads without performing any blocking operations.</doc>
  410. <constructor name="new" c:identifier="gst_atomic_queue_new">
  411. <doc xml:space="preserve">Create a new atomic queue instance. @initial_size will be rounded up to the
  412. nearest power of 2 and used as the initial size of the queue.</doc>
  413. <return-value transfer-ownership="full">
  414. <doc xml:space="preserve">a new #GstAtomicQueue</doc>
  415. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  416. </return-value>
  417. <parameters>
  418. <parameter name="initial_size" transfer-ownership="none">
  419. <doc xml:space="preserve">initial queue size</doc>
  420. <type name="guint" c:type="guint"/>
  421. </parameter>
  422. </parameters>
  423. </constructor>
  424. <method name="length" c:identifier="gst_atomic_queue_length">
  425. <doc xml:space="preserve">Get the amount of items in the queue.</doc>
  426. <return-value transfer-ownership="none">
  427. <doc xml:space="preserve">the number of elements in the queue.</doc>
  428. <type name="guint" c:type="guint"/>
  429. </return-value>
  430. <parameters>
  431. <instance-parameter name="queue" transfer-ownership="none">
  432. <doc xml:space="preserve">a #GstAtomicQueue</doc>
  433. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  434. </instance-parameter>
  435. </parameters>
  436. </method>
  437. <method name="peek" c:identifier="gst_atomic_queue_peek">
  438. <doc xml:space="preserve">Peek the head element of the queue without removing it from the queue.</doc>
  439. <return-value transfer-ownership="none" nullable="1">
  440. <doc xml:space="preserve">the head element of @queue or
  441. %NULL when the queue is empty.</doc>
  442. <type name="gpointer" c:type="gpointer"/>
  443. </return-value>
  444. <parameters>
  445. <instance-parameter name="queue" transfer-ownership="none">
  446. <doc xml:space="preserve">a #GstAtomicQueue</doc>
  447. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  448. </instance-parameter>
  449. </parameters>
  450. </method>
  451. <method name="pop" c:identifier="gst_atomic_queue_pop">
  452. <doc xml:space="preserve">Get the head element of the queue.</doc>
  453. <return-value transfer-ownership="full" nullable="1">
  454. <doc xml:space="preserve">the head element of @queue or %NULL when
  455. the queue is empty.</doc>
  456. <type name="gpointer" c:type="gpointer"/>
  457. </return-value>
  458. <parameters>
  459. <instance-parameter name="queue" transfer-ownership="none">
  460. <doc xml:space="preserve">a #GstAtomicQueue</doc>
  461. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  462. </instance-parameter>
  463. </parameters>
  464. </method>
  465. <method name="push" c:identifier="gst_atomic_queue_push">
  466. <doc xml:space="preserve">Append @data to the tail of the queue.</doc>
  467. <return-value transfer-ownership="none">
  468. <type name="none" c:type="void"/>
  469. </return-value>
  470. <parameters>
  471. <instance-parameter name="queue" transfer-ownership="none">
  472. <doc xml:space="preserve">a #GstAtomicQueue</doc>
  473. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  474. </instance-parameter>
  475. <parameter name="data"
  476. transfer-ownership="none"
  477. nullable="1"
  478. allow-none="1">
  479. <doc xml:space="preserve">the data</doc>
  480. <type name="gpointer" c:type="gpointer"/>
  481. </parameter>
  482. </parameters>
  483. </method>
  484. <method name="ref" c:identifier="gst_atomic_queue_ref">
  485. <doc xml:space="preserve">Increase the refcount of @queue.</doc>
  486. <return-value transfer-ownership="none">
  487. <type name="none" c:type="void"/>
  488. </return-value>
  489. <parameters>
  490. <instance-parameter name="queue" transfer-ownership="none">
  491. <doc xml:space="preserve">a #GstAtomicQueue</doc>
  492. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  493. </instance-parameter>
  494. </parameters>
  495. </method>
  496. <method name="unref" c:identifier="gst_atomic_queue_unref">
  497. <doc xml:space="preserve">Unref @queue and free the memory when the refcount reaches 0.</doc>
  498. <return-value transfer-ownership="none">
  499. <type name="none" c:type="void"/>
  500. </return-value>
  501. <parameters>
  502. <instance-parameter name="queue" transfer-ownership="none">
  503. <doc xml:space="preserve">a #GstAtomicQueue</doc>
  504. <type name="AtomicQueue" c:type="GstAtomicQueue*"/>
  505. </instance-parameter>
  506. </parameters>
  507. </method>
  508. </record>
  509. <constant name="BUFFER_COPY_ALL" value="0" c:type="GST_BUFFER_COPY_ALL">
  510. <doc xml:space="preserve">Combination of all possible fields that can be copied with
  511. gst_buffer_copy_into().</doc>
  512. <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
  513. </constant>
  514. <constant name="BUFFER_COPY_METADATA"
  515. value="0"
  516. c:type="GST_BUFFER_COPY_METADATA">
  517. <doc xml:space="preserve">Combination of all possible metadata fields that can be copied with
  518. gst_buffer_copy_into().</doc>
  519. <type name="gint" c:type="gint"/>
  520. </constant>
  521. <constant name="BUFFER_OFFSET_NONE"
  522. value="18446744073709551615"
  523. c:type="GST_BUFFER_OFFSET_NONE">
  524. <doc xml:space="preserve">Constant for no-offset return results.</doc>
  525. <type name="guint64" c:type="guint64"/>
  526. </constant>
  527. <class name="Bin"
  528. c:symbol-prefix="bin"
  529. c:type="GstBin"
  530. parent="Element"
  531. glib:type-name="GstBin"
  532. glib:get-type="gst_bin_get_type"
  533. glib:type-struct="BinClass">
  534. <doc xml:space="preserve">#GstBin is an element that can contain other #GstElement, allowing them to be
  535. managed as a group.
  536. Pads from the child elements can be ghosted to the bin, see #GstGhostPad.
  537. This makes the bin look like any other elements and enables creation of
  538. higher-level abstraction elements.
  539. A new #GstBin is created with gst_bin_new(). Use a #GstPipeline instead if you
  540. want to create a toplevel bin because a normal bin doesn't have a bus or
  541. handle clock distribution of its own.
  542. After the bin has been created you will typically add elements to it with
  543. gst_bin_add(). You can remove elements with gst_bin_remove().
  544. An element can be retrieved from a bin with gst_bin_get_by_name(), using the
  545. elements name. gst_bin_get_by_name_recurse_up() is mainly used for internal
  546. purposes and will query the parent bins when the element is not found in the
  547. current bin.
  548. An iterator of elements in a bin can be retrieved with
  549. gst_bin_iterate_elements(). Various other iterators exist to retrieve the
  550. elements in a bin.
  551. gst_object_unref() is used to drop your reference to the bin.
  552. The #GstBin::element-added signal is fired whenever a new element is added to
  553. the bin. Likewise the #GstBin::element-removed signal is fired whenever an
  554. element is removed from the bin.
  555. &lt;refsect2&gt;&lt;title&gt;Notes&lt;/title&gt;
  556. &lt;para&gt;
  557. A #GstBin internally intercepts every #GstMessage posted by its children and
  558. implements the following default behaviour for each of them:
  559. &lt;variablelist&gt;
  560. &lt;varlistentry&gt;
  561. &lt;term&gt;GST_MESSAGE_EOS&lt;/term&gt;
  562. &lt;listitem&gt;&lt;para&gt;This message is only posted by sinks in the PLAYING
  563. state. If all sinks posted the EOS message, this bin will post and EOS
  564. message upwards.&lt;/para&gt;&lt;/listitem&gt;
  565. &lt;/varlistentry&gt;
  566. &lt;varlistentry&gt;
  567. &lt;term&gt;GST_MESSAGE_SEGMENT_START&lt;/term&gt;
  568. &lt;listitem&gt;&lt;para&gt;just collected and never forwarded upwards.
  569. The messages are used to decide when all elements have completed playback
  570. of their segment.&lt;/para&gt;&lt;/listitem&gt;
  571. &lt;/varlistentry&gt;
  572. &lt;varlistentry&gt;
  573. &lt;term&gt;GST_MESSAGE_SEGMENT_DONE&lt;/term&gt;
  574. &lt;listitem&gt;&lt;para&gt; Is posted by #GstBin when all elements that posted
  575. a SEGMENT_START have posted a SEGMENT_DONE.&lt;/para&gt;&lt;/listitem&gt;
  576. &lt;/varlistentry&gt;
  577. &lt;varlistentry&gt;
  578. &lt;term&gt;GST_MESSAGE_DURATION_CHANGED&lt;/term&gt;
  579. &lt;listitem&gt;&lt;para&gt; Is posted by an element that detected a change
  580. in the stream duration. The default bin behaviour is to clear any
  581. cached duration values so that the next duration query will perform
  582. a full duration recalculation. The duration change is posted to the
  583. application so that it can refetch the new duration with a duration
  584. query. Note that these messages can be posted before the bin is
  585. prerolled, in which case the duration query might fail.
  586. &lt;/para&gt;&lt;/listitem&gt;
  587. &lt;/varlistentry&gt;
  588. &lt;varlistentry&gt;
  589. &lt;term&gt;GST_MESSAGE_CLOCK_LOST&lt;/term&gt;
  590. &lt;listitem&gt;&lt;para&gt; This message is posted by an element when it
  591. can no longer provide a clock. The default bin behaviour is to
  592. check if the lost clock was the one provided by the bin. If so and
  593. the bin is currently in the PLAYING state, the message is forwarded to
  594. the bin parent.
  595. This message is also generated when a clock provider is removed from
  596. the bin. If this message is received by the application, it should
  597. PAUSE the pipeline and set it back to PLAYING to force a new clock
  598. distribution.
  599. &lt;/para&gt;&lt;/listitem&gt;
  600. &lt;/varlistentry&gt;
  601. &lt;varlistentry&gt;
  602. &lt;term&gt;GST_MESSAGE_CLOCK_PROVIDE&lt;/term&gt;
  603. &lt;listitem&gt;&lt;para&gt; This message is generated when an element
  604. can provide a clock. This mostly happens when a new clock
  605. provider is added to the bin. The default behaviour of the bin is to
  606. mark the currently selected clock as dirty, which will perform a clock
  607. recalculation the next time the bin is asked to provide a clock.
  608. This message is never sent tot the application but is forwarded to
  609. the parent of the bin.
  610. &lt;/para&gt;&lt;/listitem&gt;
  611. &lt;/varlistentry&gt;
  612. &lt;varlistentry&gt;
  613. &lt;term&gt;OTHERS&lt;/term&gt;
  614. &lt;listitem&gt;&lt;para&gt; posted upwards.&lt;/para&gt;&lt;/listitem&gt;
  615. &lt;/varlistentry&gt;
  616. &lt;/variablelist&gt;
  617. A #GstBin implements the following default behaviour for answering to a
  618. #GstQuery:
  619. &lt;variablelist&gt;
  620. &lt;varlistentry&gt;
  621. &lt;term&gt;GST_QUERY_DURATION&lt;/term&gt;
  622. &lt;listitem&gt;&lt;para&gt;If the query has been asked before with the same format
  623. and the bin is a toplevel bin (ie. has no parent),
  624. use the cached previous value. If no previous value was cached, the
  625. query is sent to all sink elements in the bin and the MAXIMUM of all
  626. values is returned. If the bin is a toplevel bin the value is cached.
  627. If no sinks are available in the bin, the query fails.
  628. &lt;/para&gt;&lt;/listitem&gt;
  629. &lt;/varlistentry&gt;
  630. &lt;varlistentry&gt;
  631. &lt;term&gt;GST_QUERY_POSITION&lt;/term&gt;
  632. &lt;listitem&gt;&lt;para&gt;The query is sent to all sink elements in the bin and the
  633. MAXIMUM of all values is returned. If no sinks are available in the bin,
  634. the query fails.
  635. &lt;/para&gt;&lt;/listitem&gt;
  636. &lt;/varlistentry&gt;
  637. &lt;varlistentry&gt;
  638. &lt;term&gt;OTHERS&lt;/term&gt;
  639. &lt;listitem&gt;&lt;para&gt;the query is forwarded to all sink elements, the result
  640. of the first sink that answers the query successfully is returned. If no
  641. sink is in the bin, the query fails.&lt;/para&gt;&lt;/listitem&gt;
  642. &lt;/varlistentry&gt;
  643. &lt;/variablelist&gt;
  644. A #GstBin will by default forward any event sent to it to all sink elements.
  645. If all the sinks return %TRUE, the bin will also return %TRUE, else %FALSE is
  646. returned. If no sinks are in the bin, the event handler will return %TRUE.
  647. &lt;/para&gt;
  648. &lt;/refsect2&gt;</doc>
  649. <implements name="ChildProxy"/>
  650. <constructor name="new" c:identifier="gst_bin_new">
  651. <doc xml:space="preserve">Creates a new bin with the given name.</doc>
  652. <return-value transfer-ownership="none">
  653. <doc xml:space="preserve">a new #GstBin</doc>
  654. <type name="Element" c:type="GstElement*"/>
  655. </return-value>
  656. <parameters>
  657. <parameter name="name"
  658. transfer-ownership="none"
  659. nullable="1"
  660. allow-none="1">
  661. <doc xml:space="preserve">the name of the new bin</doc>
  662. <type name="utf8" c:type="const gchar*"/>
  663. </parameter>
  664. </parameters>
  665. </constructor>
  666. <virtual-method name="add_element">
  667. <return-value transfer-ownership="none">
  668. <type name="gboolean" c:type="gboolean"/>
  669. </return-value>
  670. <parameters>
  671. <instance-parameter name="bin" transfer-ownership="none">
  672. <type name="Bin" c:type="GstBin*"/>
  673. </instance-parameter>
  674. <parameter name="element" transfer-ownership="none">
  675. <type name="Element" c:type="GstElement*"/>
  676. </parameter>
  677. </parameters>
  678. </virtual-method>
  679. <virtual-method name="do_latency">
  680. <return-value transfer-ownership="none">
  681. <type name="gboolean" c:type="gboolean"/>
  682. </return-value>
  683. <parameters>
  684. <instance-parameter name="bin" transfer-ownership="none">
  685. <type name="Bin" c:type="GstBin*"/>
  686. </instance-parameter>
  687. </parameters>
  688. </virtual-method>
  689. <virtual-method name="element_added">
  690. <return-value transfer-ownership="none">
  691. <type name="none" c:type="void"/>
  692. </return-value>
  693. <parameters>
  694. <instance-parameter name="bin" transfer-ownership="none">
  695. <type name="Bin" c:type="GstBin*"/>
  696. </instance-parameter>
  697. <parameter name="child" transfer-ownership="none">
  698. <type name="Element" c:type="GstElement*"/>
  699. </parameter>
  700. </parameters>
  701. </virtual-method>
  702. <virtual-method name="element_removed">
  703. <return-value transfer-ownership="none">
  704. <type name="none" c:type="void"/>
  705. </return-value>
  706. <parameters>
  707. <instance-parameter name="bin" transfer-ownership="none">
  708. <type name="Bin" c:type="GstBin*"/>
  709. </instance-parameter>
  710. <parameter name="child" transfer-ownership="none">
  711. <type name="Element" c:type="GstElement*"/>
  712. </parameter>
  713. </parameters>
  714. </virtual-method>
  715. <virtual-method name="handle_message">
  716. <return-value transfer-ownership="none">
  717. <type name="none" c:type="void"/>
  718. </return-value>
  719. <parameters>
  720. <instance-parameter name="bin" transfer-ownership="none">
  721. <type name="Bin" c:type="GstBin*"/>
  722. </instance-parameter>
  723. <parameter name="message" transfer-ownership="none">
  724. <type name="Message" c:type="GstMessage*"/>
  725. </parameter>
  726. </parameters>
  727. </virtual-method>
  728. <virtual-method name="remove_element">
  729. <return-value transfer-ownership="none">
  730. <type name="gboolean" c:type="gboolean"/>
  731. </return-value>
  732. <parameters>
  733. <instance-parameter name="bin" transfer-ownership="none">
  734. <type name="Bin" c:type="GstBin*"/>
  735. </instance-parameter>
  736. <parameter name="element" transfer-ownership="none">
  737. <type name="Element" c:type="GstElement*"/>
  738. </parameter>
  739. </parameters>
  740. </virtual-method>
  741. <method name="add" c:identifier="gst_bin_add">
  742. <doc xml:space="preserve">Adds the given element to the bin. Sets the element's parent, and thus
  743. takes ownership of the element. An element can only be added to one bin.
  744. If the element's pads are linked to other pads, the pads will be unlinked
  745. before the element is added to the bin.
  746. &lt;note&gt;
  747. When you add an element to an already-running pipeline, you will have to
  748. take care to set the state of the newly-added element to the desired
  749. state (usually PLAYING or PAUSED, same you set the pipeline to originally)
  750. with gst_element_set_state(), or use gst_element_sync_state_with_parent().
  751. The bin or pipeline will not take care of this for you.
  752. &lt;/note&gt;
  753. MT safe.</doc>
  754. <return-value transfer-ownership="none">
  755. <doc xml:space="preserve">%TRUE if the element could be added, %FALSE if
  756. the bin does not want to accept the element.</doc>
  757. <type name="gboolean" c:type="gboolean"/>
  758. </return-value>
  759. <parameters>
  760. <instance-parameter name="bin" transfer-ownership="none">
  761. <doc xml:space="preserve">a #GstBin</doc>
  762. <type name="Bin" c:type="GstBin*"/>
  763. </instance-parameter>
  764. <parameter name="element" transfer-ownership="full">
  765. <doc xml:space="preserve">the #GstElement to add</doc>
  766. <type name="Element" c:type="GstElement*"/>
  767. </parameter>
  768. </parameters>
  769. </method>
  770. <method name="add_many"
  771. c:identifier="gst_bin_add_many"
  772. introspectable="0">
  773. <doc xml:space="preserve">Adds a %NULL-terminated list of elements to a bin. This function is
  774. equivalent to calling gst_bin_add() for each member of the list. The return
  775. value of each gst_bin_add() is ignored.</doc>
  776. <return-value transfer-ownership="none">
  777. <type name="none" c:type="void"/>
  778. </return-value>
  779. <parameters>
  780. <instance-parameter name="bin" transfer-ownership="none">
  781. <doc xml:space="preserve">a #GstBin</doc>
  782. <type name="Bin" c:type="GstBin*"/>
  783. </instance-parameter>
  784. <parameter name="element_1" transfer-ownership="full">
  785. <doc xml:space="preserve">the #GstElement element to add to the bin</doc>
  786. <type name="Element" c:type="GstElement*"/>
  787. </parameter>
  788. <parameter name="..." transfer-ownership="full">
  789. <doc xml:space="preserve">additional elements to add to the bin</doc>
  790. <varargs/>
  791. </parameter>
  792. </parameters>
  793. </method>
  794. <method name="find_unlinked_pad"
  795. c:identifier="gst_bin_find_unlinked_pad">
  796. <doc xml:space="preserve">Recursively looks for elements with an unlinked pad of the given
  797. direction within the specified bin and returns an unlinked pad
  798. if one is found, or %NULL otherwise. If a pad is found, the caller
  799. owns a reference to it and should use gst_object_unref() on the
  800. pad when it is not needed any longer.</doc>
  801. <return-value transfer-ownership="full" nullable="1">
  802. <doc xml:space="preserve">unlinked pad of the given
  803. direction, %NULL.</doc>
  804. <type name="Pad" c:type="GstPad*"/>
  805. </return-value>
  806. <parameters>
  807. <instance-parameter name="bin" transfer-ownership="none">
  808. <doc xml:space="preserve">bin in which to look for elements with unlinked pads</doc>
  809. <type name="Bin" c:type="GstBin*"/>
  810. </instance-parameter>
  811. <parameter name="direction" transfer-ownership="none">
  812. <doc xml:space="preserve">whether to look for an unlinked source or sink pad</doc>
  813. <type name="PadDirection" c:type="GstPadDirection"/>
  814. </parameter>
  815. </parameters>
  816. </method>
  817. <method name="get_by_interface" c:identifier="gst_bin_get_by_interface">
  818. <doc xml:space="preserve">Looks for an element inside the bin that implements the given
  819. interface. If such an element is found, it returns the element.
  820. You can cast this element to the given interface afterwards. If you want
  821. all elements that implement the interface, use
  822. gst_bin_iterate_all_by_interface(). This function recurses into child bins.
  823. MT safe. Caller owns returned reference.</doc>
  824. <return-value transfer-ownership="full">
  825. <doc xml:space="preserve">A #GstElement inside the bin implementing the interface</doc>
  826. <type name="Element" c:type="GstElement*"/>
  827. </return-value>
  828. <parameters>
  829. <instance-parameter name="bin" transfer-ownership="none">
  830. <doc xml:space="preserve">a #GstBin</doc>
  831. <type name="Bin" c:type="GstBin*"/>
  832. </instance-parameter>
  833. <parameter name="iface" transfer-ownership="none">
  834. <doc xml:space="preserve">the #GType of an interface</doc>
  835. <type name="GType" c:type="GType"/>
  836. </parameter>
  837. </parameters>
  838. </method>
  839. <method name="get_by_name" c:identifier="gst_bin_get_by_name">
  840. <doc xml:space="preserve">Gets the element with the given name from a bin. This
  841. function recurses into child bins.
  842. Returns %NULL if no element with the given name is found in the bin.
  843. MT safe. Caller owns returned reference.</doc>
  844. <return-value transfer-ownership="full" nullable="1">
  845. <doc xml:space="preserve">the #GstElement with the given
  846. name, or %NULL</doc>
  847. <type name="Element" c:type="GstElement*"/>
  848. </return-value>
  849. <parameters>
  850. <instance-parameter name="bin" transfer-ownership="none">
  851. <doc xml:space="preserve">a #GstBin</doc>
  852. <type name="Bin" c:type="GstBin*"/>
  853. </instance-parameter>
  854. <parameter name="name" transfer-ownership="none">
  855. <doc xml:space="preserve">the element name to search for</doc>
  856. <type name="utf8" c:type="const gchar*"/>
  857. </parameter>
  858. </parameters>
  859. </method>
  860. <method name="get_by_name_recurse_up"
  861. c:identifier="gst_bin_get_by_name_recurse_up">
  862. <doc xml:space="preserve">Gets the element with the given name from this bin. If the
  863. element is not found, a recursion is performed on the parent bin.
  864. Returns %NULL if:
  865. - no element with the given name is found in the bin
  866. MT safe. Caller owns returned reference.</doc>
  867. <return-value transfer-ownership="full" nullable="1">
  868. <doc xml:space="preserve">the #GstElement with the given
  869. name, or %NULL</doc>
  870. <type name="Element" c:type="GstElement*"/>
  871. </return-value>
  872. <parameters>
  873. <instance-parameter name="bin" transfer-ownership="none">
  874. <doc xml:space="preserve">a #GstBin</doc>
  875. <type name="Bin" c:type="GstBin*"/>
  876. </instance-parameter>
  877. <parameter name="name" transfer-ownership="none">
  878. <doc xml:space="preserve">the element name to search for</doc>
  879. <type name="utf8" c:type="const gchar*"/>
  880. </parameter>
  881. </parameters>
  882. </method>
  883. <method name="iterate_all_by_interface"
  884. c:identifier="gst_bin_iterate_all_by_interface">
  885. <doc xml:space="preserve">Looks for all elements inside the bin that implements the given
  886. interface. You can safely cast all returned elements to the given interface.
  887. The function recurses inside child bins. The iterator will yield a series
  888. of #GstElement that should be unreffed after use.
  889. MT safe. Caller owns returned value.</doc>
  890. <return-value transfer-ownership="full" nullable="1">
  891. <doc xml:space="preserve">a #GstIterator of #GstElement
  892. for all elements in the bin implementing the given interface,
  893. or %NULL</doc>
  894. <type name="Iterator" c:type="GstIterator*"/>
  895. </return-value>
  896. <parameters>
  897. <instance-parameter name="bin" transfer-ownership="none">
  898. <doc xml:space="preserve">a #GstBin</doc>
  899. <type name="Bin" c:type="GstBin*"/>
  900. </instance-parameter>
  901. <parameter name="iface" transfer-ownership="none">
  902. <doc xml:space="preserve">the #GType of an interface</doc>
  903. <type name="GType" c:type="GType"/>
  904. </parameter>
  905. </parameters>
  906. </method>
  907. <method name="iterate_elements" c:identifier="gst_bin_iterate_elements">
  908. <doc xml:space="preserve">Gets an iterator for the elements in this bin.
  909. MT safe. Caller owns returned value.</doc>
  910. <return-value transfer-ownership="full" nullable="1">
  911. <doc xml:space="preserve">a #GstIterator of #GstElement,
  912. or %NULL</doc>
  913. <type name="Iterator" c:type="GstIterator*"/>
  914. </return-value>
  915. <parameters>
  916. <instance-parameter name="bin" transfer-ownership="none">
  917. <doc xml:space="preserve">a #GstBin</doc>
  918. <type name="Bin" c:type="GstBin*"/>
  919. </instance-parameter>
  920. </parameters>
  921. </method>
  922. <method name="iterate_recurse" c:identifier="gst_bin_iterate_recurse">
  923. <doc xml:space="preserve">Gets an iterator for the elements in this bin.
  924. This iterator recurses into GstBin children.
  925. MT safe. Caller owns returned value.</doc>
  926. <return-value transfer-ownership="full" nullable="1">
  927. <doc xml:space="preserve">a #GstIterator of #GstElement,
  928. or %NULL</doc>
  929. <type name="Iterator" c:type="GstIterator*"/>
  930. </return-value>
  931. <parameters>
  932. <instance-parameter name="bin" transfer-ownership="none">
  933. <doc xml:space="preserve">a #GstBin</doc>
  934. <type name="Bin" c:type="GstBin*"/>
  935. </instance-parameter>
  936. </parameters>
  937. </method>
  938. <method name="iterate_sinks" c:identifier="gst_bin_iterate_sinks">
  939. <doc xml:space="preserve">Gets an iterator for all elements in the bin that have the
  940. #GST_ELEMENT_FLAG_SINK flag set.
  941. MT safe. Caller owns returned value.</doc>
  942. <return-value transfer-ownership="full" nullable="1">
  943. <doc xml:space="preserve">a #GstIterator of #GstElement,
  944. or %NULL</doc>
  945. <type name="Iterator" c:type="GstIterator*"/>
  946. </return-value>
  947. <parameters>
  948. <instance-parameter name="bin" transfer-ownership="none">
  949. <doc xml:space="preserve">a #GstBin</doc>
  950. <type name="Bin" c:type="GstBin*"/>
  951. </instance-parameter>
  952. </parameters>
  953. </method>
  954. <method name="iterate_sorted" c:identifier="gst_bin_iterate_sorted">
  955. <doc xml:space="preserve">Gets an iterator for the elements in this bin in topologically
  956. sorted order. This means that the elements are returned from
  957. the most downstream elements (sinks) to the sources.
  958. This function is used internally to perform the state changes
  959. of the bin elements and for clock selection.
  960. MT safe. Caller owns returned value.</doc>
  961. <return-value transfer-ownership="full" nullable="1">
  962. <doc xml:space="preserve">a #GstIterator of #GstElement,
  963. or %NULL</doc>
  964. <type name="Iterator" c:type="GstIterator*"/>
  965. </return-value>
  966. <parameters>
  967. <instance-parameter name="bin" transfer-ownership="none">
  968. <doc xml:space="preserve">a #GstBin</doc>
  969. <type name="Bin" c:type="GstBin*"/>
  970. </instance-parameter>
  971. </parameters>
  972. </method>
  973. <method name="iterate_sources" c:identifier="gst_bin_iterate_sources">
  974. <doc xml:space="preserve">Gets an iterator for all elements in the bin that have the
  975. #GST_ELEMENT_FLAG_SOURCE flag set.
  976. MT safe. Caller owns returned value.</doc>
  977. <return-value transfer-ownership="full" nullable="1">
  978. <doc xml:space="preserve">a #GstIterator of #GstElement,
  979. or %NULL</doc>
  980. <type name="Iterator" c:type="GstIterator*"/>
  981. </return-value>
  982. <parameters>
  983. <instance-parameter name="bin" transfer-ownership="none">
  984. <doc xml:space="preserve">a #GstBin</doc>
  985. <type name="Bin" c:type="GstBin*"/>
  986. </instance-parameter>
  987. </parameters>
  988. </method>
  989. <method name="recalculate_latency"
  990. c:identifier="gst_bin_recalculate_latency">
  991. <doc xml:space="preserve">Query @bin for the current latency using and reconfigures this latency to all the
  992. elements with a LATENCY event.
  993. This method is typically called on the pipeline when a #GST_MESSAGE_LATENCY
  994. is posted on the bus.
  995. This function simply emits the 'do-latency' signal so any custom latency
  996. calculations will be performed.</doc>
  997. <return-value transfer-ownership="none">
  998. <doc xml:space="preserve">%TRUE if the latency could be queried and reconfigured.</doc>
  999. <type name="gboolean" c:type="gboolean"/>
  1000. </return-value>
  1001. <parameters>
  1002. <instance-parameter name="bin" transfer-ownership="none">
  1003. <doc xml:space="preserve">a #GstBin</doc>
  1004. <type name="Bin" c:type="GstBin*"/>
  1005. </instance-parameter>
  1006. </parameters>
  1007. </method>
  1008. <method name="remove" c:identifier="gst_bin_remove">
  1009. <doc xml:space="preserve">Removes the element from the bin, unparenting it as well.
  1010. Unparenting the element means that the element will be dereferenced,
  1011. so if the bin holds the only reference to the element, the element
  1012. will be freed in the process of removing it from the bin. If you
  1013. want the element to still exist after removing, you need to call
  1014. gst_object_ref() before removing it from the bin.
  1015. If the element's pads are linked to other pads, the pads will be unlinked
  1016. before the element is removed from the bin.
  1017. MT safe.</doc>
  1018. <return-value transfer-ownership="none">
  1019. <doc xml:space="preserve">%TRUE if the element could be removed, %FALSE if
  1020. the bin does not want to remove the element.</doc>
  1021. <type name="gboolean" c:type="gboolean"/>
  1022. </return-value>
  1023. <parameters>
  1024. <instance-parameter name="bin" transfer-ownership="none">
  1025. <doc xml:space="preserve">a #GstBin</doc>
  1026. <type name="Bin" c:type="GstBin*"/>
  1027. </instance-parameter>
  1028. <parameter name="element" transfer-ownership="none">
  1029. <doc xml:space="preserve">the #GstElement to remove</doc>
  1030. <type name="Element" c:type="GstElement*"/>
  1031. </parameter>
  1032. </parameters>
  1033. </method>
  1034. <method name="remove_many"
  1035. c:identifier="gst_bin_remove_many"
  1036. introspectable="0">
  1037. <doc xml:space="preserve">Remove a list of elements from a bin. This function is equivalent
  1038. to calling gst_bin_remove() with each member of the list.</doc>
  1039. <return-value transfer-ownership="none">
  1040. <type name="none" c:type="void"/>
  1041. </return-value>
  1042. <parameters>
  1043. <instance-parameter name="bin" transfer-ownership="none">
  1044. <doc xml:space="preserve">a #GstBin</doc>
  1045. <type name="Bin" c:type="GstBin*"/>
  1046. </instance-parameter>
  1047. <parameter name="element_1" transfer-ownership="none">
  1048. <doc xml:space="preserve">the first #GstElement to remove from the bin</doc>
  1049. <type name="Element" c:type="GstElement*"/>
  1050. </parameter>
  1051. <parameter name="..." transfer-ownership="none">
  1052. <doc xml:space="preserve">%NULL-terminated list of elements to remove from the bin</doc>
  1053. <varargs/>
  1054. </parameter>
  1055. </parameters>
  1056. </method>
  1057. <method name="sync_children_states"
  1058. c:identifier="gst_bin_sync_children_states"
  1059. version="1.6">
  1060. <doc xml:space="preserve">Synchronizes the state of every child of @bin with the state
  1061. of @bin. See also gst_element_sync_state_with_parent().</doc>
  1062. <return-value transfer-ownership="none">
  1063. <doc xml:space="preserve">%TRUE if syncing the state was successful for all children,
  1064. otherwise %FALSE.</doc>
  1065. <type name="gboolean" c:type="gboolean"/>
  1066. </return-value>
  1067. <parameters>
  1068. <instance-parameter name="bin" transfer-ownership="none">
  1069. <doc xml:space="preserve">a #GstBin</doc>
  1070. <type name="Bin" c:type="GstBin*"/>
  1071. </instance-parameter>
  1072. </parameters>
  1073. </method>
  1074. <property name="async-handling" writable="1" transfer-ownership="none">
  1075. <doc xml:space="preserve">If set to %TRUE, the bin will handle asynchronous state changes.
  1076. This should be used only if the bin subclass is modifying the state
  1077. of its children on its own.</doc>
  1078. <type name="gboolean" c:type="gboolean"/>
  1079. </property>
  1080. <property name="message-forward" writable="1" transfer-ownership="none">
  1081. <doc xml:space="preserve">Forward all children messages, even those that would normally be filtered by
  1082. the bin. This can be interesting when one wants to be notified of the EOS
  1083. state of individual elements, for example.
  1084. The messages are converted to an ELEMENT message with the bin as the
  1085. source. The structure of the message is named 'GstBinForwarded' and contains
  1086. a field named 'message' of type GST_TYPE_MESSAGE that contains the original
  1087. forwarded message.</doc>
  1088. <type name="gboolean" c:type="gboolean"/>
  1089. </property>
  1090. <field name="element">
  1091. <type name="Element" c:type="GstElement"/>
  1092. </field>
  1093. <field name="numchildren">
  1094. <doc xml:space="preserve">the number of children in this bin</doc>
  1095. <type name="gint" c:type="gint"/>
  1096. </field>
  1097. <field name="children">
  1098. <doc xml:space="preserve">the list of children in this bin</doc>
  1099. <type name="GLib.List" c:type="GList*">
  1100. <type name="Element"/>
  1101. </type>
  1102. </field>
  1103. <field name="children_cookie">
  1104. <doc xml:space="preserve">updated whenever @children changes</doc>
  1105. <type name="guint32" c:type="guint32"/>
  1106. </field>
  1107. <field name="child_bus">
  1108. <doc xml:space="preserve">internal bus for handling child messages</doc>
  1109. <type name="Bus" c:type="GstBus*"/>
  1110. </field>
  1111. <field name="messages">
  1112. <doc xml:space="preserve">queued and cached messages</doc>
  1113. <type name="GLib.List" c:type="GList*">
  1114. <type name="Message"/>
  1115. </type>
  1116. </field>
  1117. <field name="polling">
  1118. <doc xml:space="preserve">the bin is currently calculating its state</doc>
  1119. <type name="gboolean" c:type="gboolean"/>
  1120. </field>
  1121. <field name="state_dirty">
  1122. <doc xml:space="preserve">the bin needs to recalculate its state (deprecated)</doc>
  1123. <type name="gboolean" c:type="gboolean"/>
  1124. </field>
  1125. <field name="clock_dirty">
  1126. <doc xml:space="preserve">the bin needs to select a new clock</doc>
  1127. <type name="gboolean" c:type="gboolean"/>
  1128. </field>
  1129. <field name="provided_clock">
  1130. <doc xml:space="preserve">the last clock selected</doc>
  1131. <type name="Clock" c:type="GstClock*"/>
  1132. </field>
  1133. <field name="clock_provider">
  1134. <doc xml:space="preserve">the element that provided @provided_clock</doc>
  1135. <type name="Element" c:type="GstElement*"/>
  1136. </field>
  1137. <field name="priv" readable="0" private="1">
  1138. <type name="BinPrivate" c:type="GstBinPrivate*"/>
  1139. </field>
  1140. <field name="_gst_reserved" readable="0" private="1">
  1141. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  1142. <type name="gpointer" c:type="gpointer"/>
  1143. </array>
  1144. </field>
  1145. <glib:signal name="do-latency" when="last">
  1146. <doc xml:space="preserve">Will be emitted when the bin needs to perform latency calculations. This
  1147. signal is only emitted for toplevel bins or when async-handling is
  1148. enabled.
  1149. Only one signal handler is invoked. If no signals are connected, the
  1150. default handler is invoked, which will query and distribute the lowest
  1151. possible latency to all sinks.
  1152. Connect to this signal if the default latency calculations are not
  1153. sufficient, like when you need different latencies for different sinks in
  1154. the same pipeline.</doc>
  1155. <return-value transfer-ownership="none">
  1156. <type name="gboolean" c:type="gboolean"/>
  1157. </return-value>
  1158. </glib:signal>
  1159. <glib:signal name="element-added" when="first">
  1160. <doc xml:space="preserve">Will be emitted after the element was added to the bin.</doc>
  1161. <return-value transfer-ownership="none">
  1162. <type name="none" c:type="void"/>
  1163. </return-value>
  1164. <parameters>
  1165. <parameter name="element" transfer-ownership="none">
  1166. <doc xml:space="preserve">the #GstElement that was added to the bin</doc>
  1167. <type name="Element"/>
  1168. </parameter>
  1169. </parameters>
  1170. </glib:signal>
  1171. <glib:signal name="element-removed" when="first">
  1172. <doc xml:space="preserve">Will be emitted after the element was removed from the bin.</doc>
  1173. <return-value transfer-ownership="none">
  1174. <type name="none" c:type="void"/>
  1175. </return-value>
  1176. <parameters>
  1177. <parameter name="element" transfer-ownership="none">
  1178. <doc xml:space="preserve">the #GstElement that was removed from the bin</doc>
  1179. <type name="Element"/>
  1180. </parameter>
  1181. </parameters>
  1182. </glib:signal>
  1183. </class>
  1184. <record name="BinClass"
  1185. c:type="GstBinClass"
  1186. glib:is-gtype-struct-for="Bin">
  1187. <doc xml:space="preserve">Subclasses can override the @add_element and @remove_element to
  1188. update the list of children in the bin.
  1189. The @handle_message method can be overridden to implement custom
  1190. message handling. @handle_message takes ownership of the message, just like
  1191. #gst_element_post_message.</doc>
  1192. <field name="parent_class">
  1193. <doc xml:space="preserve">bin parent class</doc>
  1194. <type name="ElementClass" c:type="GstElementClass"/>
  1195. </field>
  1196. <field name="pool" readable="0" private="1">
  1197. <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
  1198. </field>
  1199. <field name="element_added">
  1200. <callback name="element_added">
  1201. <return-value transfer-ownership="none">
  1202. <type name="none" c:type="void"/>
  1203. </return-value>
  1204. <parameters>
  1205. <parameter name="bin" transfer-ownership="none">
  1206. <type name="Bin" c:type="GstBin*"/>
  1207. </parameter>
  1208. <parameter name="child" transfer-ownership="none">
  1209. <type name="Element" c:type="GstElement*"/>
  1210. </parameter>
  1211. </parameters>
  1212. </callback>
  1213. </field>
  1214. <field name="element_removed">
  1215. <callback name="element_removed">
  1216. <return-value transfer-ownership="none">
  1217. <type name="none" c:type="void"/>
  1218. </return-value>
  1219. <parameters>
  1220. <parameter name="bin" transfer-ownership="none">
  1221. <type name="Bin" c:type="GstBin*"/>
  1222. </parameter>
  1223. <parameter name="child" transfer-ownership="none">
  1224. <type name="Element" c:type="GstElement*"/>
  1225. </parameter>
  1226. </parameters>
  1227. </callback>
  1228. </field>
  1229. <field name="add_element">
  1230. <callback name="add_element">
  1231. <return-value transfer-ownership="none">
  1232. <type name="gboolean" c:type="gboolean"/>
  1233. </return-value>
  1234. <parameters>
  1235. <parameter name="bin" transfer-ownership="none">
  1236. <type name="Bin" c:type="GstBin*"/>
  1237. </parameter>
  1238. <parameter name="element" transfer-ownership="none">
  1239. <type name="Element" c:type="GstElement*"/>
  1240. </parameter>
  1241. </parameters>
  1242. </callback>
  1243. </field>
  1244. <field name="remove_element">
  1245. <callback name="remove_element">
  1246. <return-value transfer-ownership="none">
  1247. <type name="gboolean" c:type="gboolean"/>
  1248. </return-value>
  1249. <parameters>
  1250. <parameter name="bin" transfer-ownership="none">
  1251. <type name="Bin" c:type="GstBin*"/>
  1252. </parameter>
  1253. <parameter name="element" transfer-ownership="none">
  1254. <type name="Element" c:type="GstElement*"/>
  1255. </parameter>
  1256. </parameters>
  1257. </callback>
  1258. </field>
  1259. <field name="handle_message">
  1260. <callback name="handle_message">
  1261. <return-value transfer-ownership="none">
  1262. <type name="none" c:type="void"/>
  1263. </return-value>
  1264. <parameters>
  1265. <parameter name="bin" transfer-ownership="none">
  1266. <type name="Bin" c:type="GstBin*"/>
  1267. </parameter>
  1268. <parameter name="message" transfer-ownership="none">
  1269. <type name="Message" c:type="GstMessage*"/>
  1270. </parameter>
  1271. </parameters>
  1272. </callback>
  1273. </field>
  1274. <field name="do_latency">
  1275. <callback name="do_latency">
  1276. <return-value transfer-ownership="none">
  1277. <type name="gboolean" c:type="gboolean"/>
  1278. </return-value>
  1279. <parameters>
  1280. <parameter name="bin" transfer-ownership="none">
  1281. <type name="Bin" c:type="GstBin*"/>
  1282. </parameter>
  1283. </parameters>
  1284. </callback>
  1285. </field>
  1286. <field name="_gst_reserved" readable="0" private="1">
  1287. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  1288. <type name="gpointer" c:type="gpointer"/>
  1289. </array>
  1290. </field>
  1291. </record>
  1292. <bitfield name="BinFlags"
  1293. glib:type-name="GstBinFlags"
  1294. glib:get-type="gst_bin_flags_get_type"
  1295. c:type="GstBinFlags">
  1296. <doc xml:space="preserve">GstBinFlags are a set of flags specific to bins. Most are set/used
  1297. internally. They can be checked using the GST_OBJECT_FLAG_IS_SET () macro,
  1298. and (un)set using GST_OBJECT_FLAG_SET () and GST_OBJECT_FLAG_UNSET ().</doc>
  1299. <member name="no_resync"
  1300. value="16384"
  1301. c:identifier="GST_BIN_FLAG_NO_RESYNC"
  1302. glib:nick="no-resync">
  1303. <doc xml:space="preserve">don't resync a state change when elements are
  1304. added or linked in the bin (Since 1.0.5)</doc>
  1305. </member>
  1306. <member name="last"
  1307. value="524288"
  1308. c:identifier="GST_BIN_FLAG_LAST"
  1309. glib:nick="last">
  1310. <doc xml:space="preserve">the last enum in the series of flags for bins.
  1311. Derived classes can use this as first value in a list of flags.</doc>
  1312. </member>
  1313. </bitfield>
  1314. <record name="BinPrivate" c:type="GstBinPrivate" disguised="1">
  1315. </record>
  1316. <class name="Bitmask"
  1317. c:symbol-prefix="bitmask"
  1318. glib:type-name="GstBitmask"
  1319. glib:get-type="gst_bitmask_get_type"
  1320. glib:fundamental="1">
  1321. </class>
  1322. <record name="Buffer"
  1323. c:type="GstBuffer"
  1324. glib:type-name="GstBuffer"
  1325. glib:get-type="gst_buffer_get_type"
  1326. c:symbol-prefix="buffer">
  1327. <doc xml:space="preserve">Buffers are the basic unit of data transfer in GStreamer. They contain the
  1328. timing and offset along with other arbitrary metadata that is associated
  1329. with the #GstMemory blocks that the buffer contains.
  1330. Buffers are usually created with gst_buffer_new(). After a buffer has been
  1331. created one will typically allocate memory for it and add it to the buffer.
  1332. The following example creates a buffer that can hold a given video frame
  1333. with a given width, height and bits per plane.
  1334. |[&lt;!-- language="C" --&gt;
  1335. GstBuffer *buffer;
  1336. GstMemory *memory;
  1337. gint size, width, height, bpp;
  1338. ...
  1339. size = width * height * bpp;
  1340. buffer = gst_buffer_new ();
  1341. memory = gst_allocator_alloc (NULL, size, NULL);
  1342. gst_buffer_insert_memory (buffer, -1, memory);
  1343. ...
  1344. ]|
  1345. Alternatively, use gst_buffer_new_allocate() to create a buffer with
  1346. preallocated data of a given size.
  1347. Buffers can contain a list of #GstMemory objects. You can retrieve how many
  1348. memory objects with gst_buffer_n_memory() and you can get a pointer
  1349. to memory with gst_buffer_peek_memory()
  1350. A buffer will usually have timestamps, and a duration, but neither of these
  1351. are guaranteed (they may be set to #GST_CLOCK_TIME_NONE). Whenever a
  1352. meaningful value can be given for these, they should be set. The timestamps
  1353. and duration are measured in nanoseconds (they are #GstClockTime values).
  1354. The buffer DTS refers to the timestamp when the buffer should be decoded and
  1355. is usually monotonically increasing. The buffer PTS refers to the timestamp when
  1356. the buffer content should be presented to the user and is not always
  1357. monotonically increasing.
  1358. A buffer can also have one or both of a start and an end offset. These are
  1359. media-type specific. For video buffers, the start offset will generally be
  1360. the frame number. For audio buffers, it will be the number of samples
  1361. produced so far. For compressed data, it could be the byte offset in a
  1362. source or destination file. Likewise, the end offset will be the offset of
  1363. the end of the buffer. These can only be meaningfully interpreted if you
  1364. know the media type of the buffer (the preceding CAPS event). Either or both
  1365. can be set to #GST_BUFFER_OFFSET_NONE.
  1366. gst_buffer_ref() is used to increase the refcount of a buffer. This must be
  1367. done when you want to keep a handle to the buffer after pushing it to the
  1368. next element. The buffer refcount determines the writability of the buffer, a
  1369. buffer is only writable when the refcount is exactly 1, i.e. when the caller
  1370. has the only reference to the buffer.
  1371. To efficiently create a smaller buffer out of an existing one, you can
  1372. use gst_buffer_copy_region(). This method tries to share the memory objects
  1373. between the two buffers.
  1374. If a plug-in wants to modify the buffer data or metadata in-place, it should
  1375. first obtain a buffer that is safe to modify by using
  1376. gst_buffer_make_writable(). This function is optimized so that a copy will
  1377. only be made when it is necessary.
  1378. Several flags of the buffer can be set and unset with the
  1379. GST_BUFFER_FLAG_SET() and GST_BUFFER_FLAG_UNSET() macros. Use
  1380. GST_BUFFER_FLAG_IS_SET() to test if a certain #GstBufferFlags flag is set.
  1381. Buffers can be efficiently merged into a larger buffer with
  1382. gst_buffer_append(). Copying of memory will only be done when absolutely
  1383. needed.
  1384. Arbitrary extra metadata can be set on a buffer with gst_buffer_add_meta().
  1385. Metadata can be retrieved with gst_buffer_get_meta(). See also #GstMeta
  1386. An element should either unref the buffer or push it out on a src pad
  1387. using gst_pad_push() (see #GstPad).
  1388. Buffers are usually freed by unreffing them with gst_buffer_unref(). When
  1389. the refcount drops to 0, any memory and metadata pointed to by the buffer is
  1390. unreffed as well. Buffers allocated from a #GstBufferPool will be returned to
  1391. the pool when the refcount drops to 0.
  1392. The #GstParentBufferMeta is a meta which can be attached to a #GstBuffer
  1393. to hold a reference to another buffer that is only released when the child
  1394. #GstBuffer is released.
  1395. Typically, #GstParentBufferMeta is used when the child buffer is directly
  1396. using the #GstMemory of the parent buffer, and wants to prevent the parent
  1397. buffer from being returned to a buffer pool until the #GstMemory is available
  1398. for re-use. (Since 1.6)</doc>
  1399. <field name="mini_object" writable="1">
  1400. <doc xml:space="preserve">the parent structure</doc>
  1401. <type name="MiniObject" c:type="GstMiniObject"/>
  1402. </field>
  1403. <field name="pool" writable="1">
  1404. <doc xml:space="preserve">pointer to the pool owner of the buffer</doc>
  1405. <type name="BufferPool" c:type="GstBufferPool*"/>
  1406. </field>
  1407. <field name="pts" writable="1">
  1408. <doc xml:space="preserve">presentation timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
  1409. pts is not known or relevant. The pts contains the timestamp when the
  1410. media should be presented to the user.</doc>
  1411. <type name="ClockTime" c:type="GstClockTime"/>
  1412. </field>
  1413. <field name="dts" writable="1">
  1414. <doc xml:space="preserve">decoding timestamp of the buffer, can be #GST_CLOCK_TIME_NONE when the
  1415. dts is not known or relevant. The dts contains the timestamp when the
  1416. media should be processed.</doc>
  1417. <type name="ClockTime" c:type="GstClockTime"/>
  1418. </field>
  1419. <field name="duration" writable="1">
  1420. <doc xml:space="preserve">duration in time of the buffer data, can be #GST_CLOCK_TIME_NONE
  1421. when the duration is not known or relevant.</doc>
  1422. <type name="ClockTime" c:type="GstClockTime"/>
  1423. </field>
  1424. <field name="offset" writable="1">
  1425. <doc xml:space="preserve">a media specific offset for the buffer data.
  1426. For video frames, this is the frame number of this buffer.
  1427. For audio samples, this is the offset of the first sample in this buffer.
  1428. For file data or compressed data this is the byte offset of the first
  1429. byte in this buffer.</doc>
  1430. <type name="guint64" c:type="guint64"/>
  1431. </field>
  1432. <field name="offset_end" writable="1">
  1433. <doc xml:space="preserve">the last offset contained in this buffer. It has the same
  1434. format as @offset.</doc>
  1435. <type name="guint64" c:type="guint64"/>
  1436. </field>
  1437. <constructor name="new" c:identifier="gst_buffer_new">
  1438. <doc xml:space="preserve">Creates a newly allocated buffer without any data.
  1439. MT safe.</doc>
  1440. <return-value transfer-ownership="full">
  1441. <doc xml:space="preserve">the new #GstBuffer.</doc>
  1442. <type name="Buffer" c:type="GstBuffer*"/>
  1443. </return-value>
  1444. </constructor>
  1445. <constructor name="new_allocate" c:identifier="gst_buffer_new_allocate">
  1446. <doc xml:space="preserve">Tries to create a newly allocated buffer with data of the given size and
  1447. extra parameters from @allocator. If the requested amount of memory can't be
  1448. allocated, %NULL will be returned. The allocated buffer memory is not cleared.
  1449. When @allocator is %NULL, the default memory allocator will be used.
  1450. Note that when @size == 0, the buffer will not have memory associated with it.
  1451. MT safe.</doc>
  1452. <return-value transfer-ownership="full" nullable="1">
  1453. <doc xml:space="preserve">a new #GstBuffer, or %NULL if
  1454. the memory couldn't be allocated.</doc>
  1455. <type name="Buffer" c:type="GstBuffer*"/>
  1456. </return-value>
  1457. <parameters>
  1458. <parameter name="allocator"
  1459. transfer-ownership="none"
  1460. nullable="1"
  1461. allow-none="1">
  1462. <doc xml:space="preserve">the #GstAllocator to use, or %NULL to use the
  1463. default allocator</doc>
  1464. <type name="Allocator" c:type="GstAllocator*"/>
  1465. </parameter>
  1466. <parameter name="size" transfer-ownership="none">
  1467. <doc xml:space="preserve">the size in bytes of the new buffer's data.</doc>
  1468. <type name="gsize" c:type="gsize"/>
  1469. </parameter>
  1470. <parameter name="params"
  1471. transfer-ownership="none"
  1472. nullable="1"
  1473. allow-none="1">
  1474. <doc xml:space="preserve">optional parameters</doc>
  1475. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  1476. </parameter>
  1477. </parameters>
  1478. </constructor>
  1479. <constructor name="new_wrapped" c:identifier="gst_buffer_new_wrapped">
  1480. <doc xml:space="preserve">Creates a new buffer that wraps the given @data. The memory will be freed
  1481. with g_free and will be marked writable.
  1482. MT safe.</doc>
  1483. <return-value transfer-ownership="full">
  1484. <doc xml:space="preserve">a new #GstBuffer</doc>
  1485. <type name="Buffer" c:type="GstBuffer*"/>
  1486. </return-value>
  1487. <parameters>
  1488. <parameter name="data" transfer-ownership="full">
  1489. <doc xml:space="preserve">data to wrap</doc>
  1490. <array length="1" zero-terminated="0" c:type="gpointer">
  1491. <type name="guint8"/>
  1492. </array>
  1493. </parameter>
  1494. <parameter name="size" transfer-ownership="none">
  1495. <doc xml:space="preserve">allocated size of @data</doc>
  1496. <type name="gsize" c:type="gsize"/>
  1497. </parameter>
  1498. </parameters>
  1499. </constructor>
  1500. <constructor name="new_wrapped_full"
  1501. c:identifier="gst_buffer_new_wrapped_full">
  1502. <doc xml:space="preserve">Allocate a new buffer that wraps the given memory. @data must point to
  1503. @maxsize of memory, the wrapped buffer will have the region from @offset and
  1504. @size visible.
  1505. When the buffer is destroyed, @notify will be called with @user_data.
  1506. The prefix/padding must be filled with 0 if @flags contains
  1507. #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.</doc>
  1508. <return-value transfer-ownership="full">
  1509. <doc xml:space="preserve">a new #GstBuffer</doc>
  1510. <type name="Buffer" c:type="GstBuffer*"/>
  1511. </return-value>
  1512. <parameters>
  1513. <parameter name="flags" transfer-ownership="none">
  1514. <doc xml:space="preserve">#GstMemoryFlags</doc>
  1515. <type name="MemoryFlags" c:type="GstMemoryFlags"/>
  1516. </parameter>
  1517. <parameter name="data" transfer-ownership="none">
  1518. <doc xml:space="preserve">data to wrap</doc>
  1519. <array length="4" zero-terminated="0" c:type="gpointer">
  1520. <type name="guint8"/>
  1521. </array>
  1522. </parameter>
  1523. <parameter name="maxsize" transfer-ownership="none">
  1524. <doc xml:space="preserve">allocated size of @data</doc>
  1525. <type name="gsize" c:type="gsize"/>
  1526. </parameter>
  1527. <parameter name="offset" transfer-ownership="none">
  1528. <doc xml:space="preserve">offset in @data</doc>
  1529. <type name="gsize" c:type="gsize"/>
  1530. </parameter>
  1531. <parameter name="size" transfer-ownership="none">
  1532. <doc xml:space="preserve">size of valid data</doc>
  1533. <type name="gsize" c:type="gsize"/>
  1534. </parameter>
  1535. <parameter name="user_data"
  1536. transfer-ownership="none"
  1537. nullable="1"
  1538. allow-none="1">
  1539. <doc xml:space="preserve">user_data</doc>
  1540. <type name="gpointer" c:type="gpointer"/>
  1541. </parameter>
  1542. <parameter name="notify"
  1543. transfer-ownership="none"
  1544. nullable="1"
  1545. allow-none="1"
  1546. scope="async"
  1547. closure="5">
  1548. <doc xml:space="preserve">called with @user_data when the memory is freed</doc>
  1549. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  1550. </parameter>
  1551. </parameters>
  1552. </constructor>
  1553. <method name="add_meta" c:identifier="gst_buffer_add_meta">
  1554. <doc xml:space="preserve">Add metadata for @info to @buffer using the parameters in @params.</doc>
  1555. <return-value transfer-ownership="none">
  1556. <doc xml:space="preserve">the metadata for the api in @info on @buffer.</doc>
  1557. <type name="Meta" c:type="GstMeta*"/>
  1558. </return-value>
  1559. <parameters>
  1560. <instance-parameter name="buffer" transfer-ownership="none">
  1561. <doc xml:space="preserve">a #GstBuffer</doc>
  1562. <type name="Buffer" c:type="GstBuffer*"/>
  1563. </instance-parameter>
  1564. <parameter name="info" transfer-ownership="none">
  1565. <doc xml:space="preserve">a #GstMetaInfo</doc>
  1566. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  1567. </parameter>
  1568. <parameter name="params"
  1569. transfer-ownership="none"
  1570. nullable="1"
  1571. allow-none="1">
  1572. <doc xml:space="preserve">params for @info</doc>
  1573. <type name="gpointer" c:type="gpointer"/>
  1574. </parameter>
  1575. </parameters>
  1576. </method>
  1577. <method name="add_parent_buffer_meta"
  1578. c:identifier="gst_buffer_add_parent_buffer_meta"
  1579. version="1.6">
  1580. <doc xml:space="preserve">Add a #GstParentBufferMeta to @buffer that holds a reference on
  1581. @ref until the buffer is freed.</doc>
  1582. <return-value transfer-ownership="none">
  1583. <doc xml:space="preserve">The #GstParentBufferMeta that was added to the buffer</doc>
  1584. <type name="ParentBufferMeta" c:type="GstParentBufferMeta*"/>
  1585. </return-value>
  1586. <parameters>
  1587. <instance-parameter name="buffer" transfer-ownership="none">
  1588. <doc xml:space="preserve">a #GstBuffer</doc>
  1589. <type name="Buffer" c:type="GstBuffer*"/>
  1590. </instance-parameter>
  1591. <parameter name="ref" transfer-ownership="none">
  1592. <doc xml:space="preserve">a #GstBuffer to ref</doc>
  1593. <type name="Buffer" c:type="GstBuffer*"/>
  1594. </parameter>
  1595. </parameters>
  1596. </method>
  1597. <method name="add_protection_meta"
  1598. c:identifier="gst_buffer_add_protection_meta"
  1599. version="1.6">
  1600. <doc xml:space="preserve">Attaches protection metadata to a #GstBuffer.</doc>
  1601. <return-value transfer-ownership="none">
  1602. <doc xml:space="preserve">a pointer to the added #GstProtectionMeta if successful; %NULL if
  1603. unsuccessful.</doc>
  1604. <type name="ProtectionMeta" c:type="GstProtectionMeta*"/>
  1605. </return-value>
  1606. <parameters>
  1607. <instance-parameter name="buffer" transfer-ownership="none">
  1608. <doc xml:space="preserve">#GstBuffer holding an encrypted sample, to which protection
  1609. metadata should be added.</doc>
  1610. <type name="Buffer" c:type="GstBuffer*"/>
  1611. </instance-parameter>
  1612. <parameter name="info" transfer-ownership="full">
  1613. <doc xml:space="preserve">a #GstStructure holding cryptographic
  1614. information relating to the sample contained in @buffer. This
  1615. function takes ownership of @info.</doc>
  1616. <type name="Structure" c:type="GstStructure*"/>
  1617. </parameter>
  1618. </parameters>
  1619. </method>
  1620. <method name="append" c:identifier="gst_buffer_append">
  1621. <doc xml:space="preserve">Append all the memory from @buf2 to @buf1. The result buffer will contain a
  1622. concatenation of the memory of @buf1 and @buf2.</doc>
  1623. <return-value transfer-ownership="full">
  1624. <doc xml:space="preserve">the new #GstBuffer that contains the memory
  1625. of the two source buffers.</doc>
  1626. <type name="Buffer" c:type="GstBuffer*"/>
  1627. </return-value>
  1628. <parameters>
  1629. <instance-parameter name="buf1" transfer-ownership="full">
  1630. <doc xml:space="preserve">the first source #GstBuffer to append.</doc>
  1631. <type name="Buffer" c:type="GstBuffer*"/>
  1632. </instance-parameter>
  1633. <parameter name="buf2" transfer-ownership="full">
  1634. <doc xml:space="preserve">the second source #GstBuffer to append.</doc>
  1635. <type name="Buffer" c:type="GstBuffer*"/>
  1636. </parameter>
  1637. </parameters>
  1638. </method>
  1639. <method name="append_memory" c:identifier="gst_buffer_append_memory">
  1640. <doc xml:space="preserve">Append the memory block @mem to @buffer. This function takes
  1641. ownership of @mem and thus doesn't increase its refcount.
  1642. This function is identical to gst_buffer_insert_memory() with an index of -1.
  1643. See gst_buffer_insert_memory() for more details.</doc>
  1644. <return-value transfer-ownership="none">
  1645. <type name="none" c:type="void"/>
  1646. </return-value>
  1647. <parameters>
  1648. <instance-parameter name="buffer" transfer-ownership="none">
  1649. <doc xml:space="preserve">a #GstBuffer.</doc>
  1650. <type name="Buffer" c:type="GstBuffer*"/>
  1651. </instance-parameter>
  1652. <parameter name="mem" transfer-ownership="full">
  1653. <doc xml:space="preserve">a #GstMemory.</doc>
  1654. <type name="Memory" c:type="GstMemory*"/>
  1655. </parameter>
  1656. </parameters>
  1657. </method>
  1658. <method name="append_region" c:identifier="gst_buffer_append_region">
  1659. <doc xml:space="preserve">Append @size bytes at @offset from @buf2 to @buf1. The result buffer will
  1660. contain a concatenation of the memory of @buf1 and the requested region of
  1661. @buf2.</doc>
  1662. <return-value transfer-ownership="full">
  1663. <doc xml:space="preserve">the new #GstBuffer that contains the memory
  1664. of the two source buffers.</doc>
  1665. <type name="Buffer" c:type="GstBuffer*"/>
  1666. </return-value>
  1667. <parameters>
  1668. <instance-parameter name="buf1" transfer-ownership="full">
  1669. <doc xml:space="preserve">the first source #GstBuffer to append.</doc>
  1670. <type name="Buffer" c:type="GstBuffer*"/>
  1671. </instance-parameter>
  1672. <parameter name="buf2" transfer-ownership="full">
  1673. <doc xml:space="preserve">the second source #GstBuffer to append.</doc>
  1674. <type name="Buffer" c:type="GstBuffer*"/>
  1675. </parameter>
  1676. <parameter name="offset" transfer-ownership="none">
  1677. <doc xml:space="preserve">the offset in @buf2</doc>
  1678. <type name="gssize" c:type="gssize"/>
  1679. </parameter>
  1680. <parameter name="size" transfer-ownership="none">
  1681. <doc xml:space="preserve">the size or -1 of @buf2</doc>
  1682. <type name="gssize" c:type="gssize"/>
  1683. </parameter>
  1684. </parameters>
  1685. </method>
  1686. <method name="copy_deep"
  1687. c:identifier="gst_buffer_copy_deep"
  1688. version="1.6">
  1689. <doc xml:space="preserve">Create a copy of the given buffer. This will make a newly allocated
  1690. copy of the data the source buffer contains.</doc>
  1691. <return-value transfer-ownership="full">
  1692. <doc xml:space="preserve">a new copy of @buf.</doc>
  1693. <type name="Buffer" c:type="GstBuffer*"/>
  1694. </return-value>
  1695. <parameters>
  1696. <instance-parameter name="buf" transfer-ownership="none">
  1697. <doc xml:space="preserve">a #GstBuffer.</doc>
  1698. <type name="Buffer" c:type="const GstBuffer*"/>
  1699. </instance-parameter>
  1700. </parameters>
  1701. </method>
  1702. <method name="copy_into" c:identifier="gst_buffer_copy_into">
  1703. <doc xml:space="preserve">Copies the information from @src into @dest.
  1704. If @dest already contains memory and @flags contains GST_BUFFER_COPY_MEMORY,
  1705. the memory from @src will be appended to @dest.
  1706. @flags indicate which fields will be copied.</doc>
  1707. <return-value transfer-ownership="none">
  1708. <doc xml:space="preserve">%TRUE if the copying succeeded, %FALSE otherwise.</doc>
  1709. <type name="gboolean" c:type="gboolean"/>
  1710. </return-value>
  1711. <parameters>
  1712. <instance-parameter name="dest" transfer-ownership="none">
  1713. <doc xml:space="preserve">a destination #GstBuffer</doc>
  1714. <type name="Buffer" c:type="GstBuffer*"/>
  1715. </instance-parameter>
  1716. <parameter name="src" transfer-ownership="none">
  1717. <doc xml:space="preserve">a source #GstBuffer</doc>
  1718. <type name="Buffer" c:type="GstBuffer*"/>
  1719. </parameter>
  1720. <parameter name="flags" transfer-ownership="none">
  1721. <doc xml:space="preserve">flags indicating what metadata fields should be copied.</doc>
  1722. <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
  1723. </parameter>
  1724. <parameter name="offset" transfer-ownership="none">
  1725. <doc xml:space="preserve">offset to copy from</doc>
  1726. <type name="gsize" c:type="gsize"/>
  1727. </parameter>
  1728. <parameter name="size" transfer-ownership="none">
  1729. <doc xml:space="preserve">total size to copy. If -1, all data is copied.</doc>
  1730. <type name="gsize" c:type="gsize"/>
  1731. </parameter>
  1732. </parameters>
  1733. </method>
  1734. <method name="copy_region" c:identifier="gst_buffer_copy_region">
  1735. <doc xml:space="preserve">Creates a sub-buffer from @parent at @offset and @size.
  1736. This sub-buffer uses the actual memory space of the parent buffer.
  1737. This function will copy the offset and timestamp fields when the
  1738. offset is 0. If not, they will be set to #GST_CLOCK_TIME_NONE and
  1739. #GST_BUFFER_OFFSET_NONE.
  1740. If @offset equals 0 and @size equals the total size of @buffer, the
  1741. duration and offset end fields are also copied. If not they will be set
  1742. to #GST_CLOCK_TIME_NONE and #GST_BUFFER_OFFSET_NONE.
  1743. MT safe.</doc>
  1744. <return-value transfer-ownership="full">
  1745. <doc xml:space="preserve">the new #GstBuffer or %NULL if the arguments were
  1746. invalid.</doc>
  1747. <type name="Buffer" c:type="GstBuffer*"/>
  1748. </return-value>
  1749. <parameters>
  1750. <instance-parameter name="parent" transfer-ownership="none">
  1751. <doc xml:space="preserve">a #GstBuffer.</doc>
  1752. <type name="Buffer" c:type="GstBuffer*"/>
  1753. </instance-parameter>
  1754. <parameter name="flags" transfer-ownership="none">
  1755. <doc xml:space="preserve">the #GstBufferCopyFlags</doc>
  1756. <type name="BufferCopyFlags" c:type="GstBufferCopyFlags"/>
  1757. </parameter>
  1758. <parameter name="offset" transfer-ownership="none">
  1759. <doc xml:space="preserve">the offset into parent #GstBuffer at which the new sub-buffer
  1760. begins.</doc>
  1761. <type name="gsize" c:type="gsize"/>
  1762. </parameter>
  1763. <parameter name="size" transfer-ownership="none">
  1764. <doc xml:space="preserve">the size of the new #GstBuffer sub-buffer, in bytes. If -1, all
  1765. data is copied.</doc>
  1766. <type name="gsize" c:type="gsize"/>
  1767. </parameter>
  1768. </parameters>
  1769. </method>
  1770. <method name="extract" c:identifier="gst_buffer_extract">
  1771. <doc xml:space="preserve">Copy @size bytes starting from @offset in @buffer to @dest.</doc>
  1772. <return-value transfer-ownership="none">
  1773. <doc xml:space="preserve">The amount of bytes extracted. This value can be lower than @size
  1774. when @buffer did not contain enough data.</doc>
  1775. <type name="gsize" c:type="gsize"/>
  1776. </return-value>
  1777. <parameters>
  1778. <instance-parameter name="buffer" transfer-ownership="none">
  1779. <doc xml:space="preserve">a #GstBuffer.</doc>
  1780. <type name="Buffer" c:type="GstBuffer*"/>
  1781. </instance-parameter>
  1782. <parameter name="offset" transfer-ownership="none">
  1783. <doc xml:space="preserve">the offset to extract</doc>
  1784. <type name="gsize" c:type="gsize"/>
  1785. </parameter>
  1786. <parameter name="dest"
  1787. transfer-ownership="none"
  1788. nullable="1"
  1789. allow-none="1">
  1790. <doc xml:space="preserve">the destination address</doc>
  1791. <type name="gpointer" c:type="gpointer"/>
  1792. </parameter>
  1793. <parameter name="size" transfer-ownership="none">
  1794. <doc xml:space="preserve">the size to extract</doc>
  1795. <type name="gsize" c:type="gsize"/>
  1796. </parameter>
  1797. </parameters>
  1798. </method>
  1799. <method name="extract_dup"
  1800. c:identifier="gst_buffer_extract_dup"
  1801. version="1.0.10">
  1802. <doc xml:space="preserve">Extracts a copy of at most @size bytes the data at @offset into
  1803. newly-allocated memory. @dest must be freed using g_free() when done.</doc>
  1804. <return-value transfer-ownership="none">
  1805. <type name="none" c:type="void"/>
  1806. </return-value>
  1807. <parameters>
  1808. <instance-parameter name="buffer" transfer-ownership="none">
  1809. <doc xml:space="preserve">a #GstBuffer</doc>
  1810. <type name="Buffer" c:type="GstBuffer*"/>
  1811. </instance-parameter>
  1812. <parameter name="offset" transfer-ownership="none">
  1813. <doc xml:space="preserve">the offset to extract</doc>
  1814. <type name="gsize" c:type="gsize"/>
  1815. </parameter>
  1816. <parameter name="size" transfer-ownership="none">
  1817. <doc xml:space="preserve">the size to extract</doc>
  1818. <type name="gsize" c:type="gsize"/>
  1819. </parameter>
  1820. <parameter name="dest"
  1821. direction="out"
  1822. caller-allocates="0"
  1823. transfer-ownership="full">
  1824. <doc xml:space="preserve">A pointer where
  1825. the destination array will be written.</doc>
  1826. <array length="3" zero-terminated="0" c:type="gpointer*">
  1827. <type name="guint8"/>
  1828. </array>
  1829. </parameter>
  1830. <parameter name="dest_size"
  1831. direction="out"
  1832. caller-allocates="0"
  1833. transfer-ownership="full">
  1834. <doc xml:space="preserve">A location where the size of @dest can be written</doc>
  1835. <type name="gsize" c:type="gsize*"/>
  1836. </parameter>
  1837. </parameters>
  1838. </method>
  1839. <method name="fill" c:identifier="gst_buffer_fill">
  1840. <doc xml:space="preserve">Copy @size bytes from @src to @buffer at @offset.</doc>
  1841. <return-value transfer-ownership="none">
  1842. <doc xml:space="preserve">The amount of bytes copied. This value can be lower than @size
  1843. when @buffer did not contain enough data.</doc>
  1844. <type name="gsize" c:type="gsize"/>
  1845. </return-value>
  1846. <parameters>
  1847. <instance-parameter name="buffer" transfer-ownership="none">
  1848. <doc xml:space="preserve">a #GstBuffer.</doc>
  1849. <type name="Buffer" c:type="GstBuffer*"/>
  1850. </instance-parameter>
  1851. <parameter name="offset" transfer-ownership="none">
  1852. <doc xml:space="preserve">the offset to fill</doc>
  1853. <type name="gsize" c:type="gsize"/>
  1854. </parameter>
  1855. <parameter name="src" transfer-ownership="none">
  1856. <doc xml:space="preserve">the source address</doc>
  1857. <array length="2" zero-terminated="0" c:type="gconstpointer">
  1858. <type name="guint8"/>
  1859. </array>
  1860. </parameter>
  1861. <parameter name="size" transfer-ownership="none">
  1862. <doc xml:space="preserve">the size to fill</doc>
  1863. <type name="gsize" c:type="gsize"/>
  1864. </parameter>
  1865. </parameters>
  1866. </method>
  1867. <method name="find_memory" c:identifier="gst_buffer_find_memory">
  1868. <doc xml:space="preserve">Find the memory blocks that span @size bytes starting from @offset
  1869. in @buffer.
  1870. When this function returns %TRUE, @idx will contain the index of the first
  1871. memory block where the byte for @offset can be found and @length contains the
  1872. number of memory blocks containing the @size remaining bytes. @skip contains
  1873. the number of bytes to skip in the memory block at @idx to get to the byte
  1874. for @offset.
  1875. @size can be -1 to get all the memory blocks after @idx.</doc>
  1876. <return-value transfer-ownership="none">
  1877. <doc xml:space="preserve">%TRUE when @size bytes starting from @offset could be found in
  1878. @buffer and @idx, @length and @skip will be filled.</doc>
  1879. <type name="gboolean" c:type="gboolean"/>
  1880. </return-value>
  1881. <parameters>
  1882. <instance-parameter name="buffer" transfer-ownership="none">
  1883. <doc xml:space="preserve">a #GstBuffer.</doc>
  1884. <type name="Buffer" c:type="GstBuffer*"/>
  1885. </instance-parameter>
  1886. <parameter name="offset" transfer-ownership="none">
  1887. <doc xml:space="preserve">an offset</doc>
  1888. <type name="gsize" c:type="gsize"/>
  1889. </parameter>
  1890. <parameter name="size" transfer-ownership="none">
  1891. <doc xml:space="preserve">a size</doc>
  1892. <type name="gsize" c:type="gsize"/>
  1893. </parameter>
  1894. <parameter name="idx"
  1895. direction="out"
  1896. caller-allocates="0"
  1897. transfer-ownership="full">
  1898. <doc xml:space="preserve">pointer to index</doc>
  1899. <type name="guint" c:type="guint*"/>
  1900. </parameter>
  1901. <parameter name="length"
  1902. direction="out"
  1903. caller-allocates="0"
  1904. transfer-ownership="full">
  1905. <doc xml:space="preserve">pointer to length</doc>
  1906. <type name="guint" c:type="guint*"/>
  1907. </parameter>
  1908. <parameter name="skip"
  1909. direction="out"
  1910. caller-allocates="0"
  1911. transfer-ownership="full">
  1912. <doc xml:space="preserve">pointer to skip</doc>
  1913. <type name="gsize" c:type="gsize*"/>
  1914. </parameter>
  1915. </parameters>
  1916. </method>
  1917. <method name="foreach_meta" c:identifier="gst_buffer_foreach_meta">
  1918. <doc xml:space="preserve">Call @func with @user_data for each meta in @buffer.
  1919. @func can modify the passed meta pointer or its contents. The return value
  1920. of @func define if this function returns or if the remaining metadata items
  1921. in the buffer should be skipped.</doc>
  1922. <return-value transfer-ownership="none">
  1923. <doc xml:space="preserve">%FALSE when @func returned %FALSE for one of the metadata.</doc>
  1924. <type name="gboolean" c:type="gboolean"/>
  1925. </return-value>
  1926. <parameters>
  1927. <instance-parameter name="buffer" transfer-ownership="none">
  1928. <doc xml:space="preserve">a #GstBuffer</doc>
  1929. <type name="Buffer" c:type="GstBuffer*"/>
  1930. </instance-parameter>
  1931. <parameter name="func"
  1932. transfer-ownership="none"
  1933. scope="call"
  1934. closure="1">
  1935. <doc xml:space="preserve">a #GstBufferForeachMetaFunc to call</doc>
  1936. <type name="BufferForeachMetaFunc"
  1937. c:type="GstBufferForeachMetaFunc"/>
  1938. </parameter>
  1939. <parameter name="user_data"
  1940. transfer-ownership="none"
  1941. nullable="1"
  1942. allow-none="1">
  1943. <doc xml:space="preserve">user data passed to @func</doc>
  1944. <type name="gpointer" c:type="gpointer"/>
  1945. </parameter>
  1946. </parameters>
  1947. </method>
  1948. <method name="get_all_memory" c:identifier="gst_buffer_get_all_memory">
  1949. <doc xml:space="preserve">Get all the memory block in @buffer. The memory blocks will be merged
  1950. into one large #GstMemory.</doc>
  1951. <return-value transfer-ownership="full">
  1952. <doc xml:space="preserve">a #GstMemory that contains the merged memory.
  1953. Use gst_memory_unref () after usage.</doc>
  1954. <type name="Memory" c:type="GstMemory*"/>
  1955. </return-value>
  1956. <parameters>
  1957. <instance-parameter name="buffer" transfer-ownership="none">
  1958. <doc xml:space="preserve">a #GstBuffer.</doc>
  1959. <type name="Buffer" c:type="GstBuffer*"/>
  1960. </instance-parameter>
  1961. </parameters>
  1962. </method>
  1963. <method name="get_memory" c:identifier="gst_buffer_get_memory">
  1964. <doc xml:space="preserve">Get the memory block at index @idx in @buffer.</doc>
  1965. <return-value transfer-ownership="full">
  1966. <doc xml:space="preserve">a #GstMemory that contains the data of the
  1967. memory block at @idx. Use gst_memory_unref () after usage.</doc>
  1968. <type name="Memory" c:type="GstMemory*"/>
  1969. </return-value>
  1970. <parameters>
  1971. <instance-parameter name="buffer" transfer-ownership="none">
  1972. <doc xml:space="preserve">a #GstBuffer.</doc>
  1973. <type name="Buffer" c:type="GstBuffer*"/>
  1974. </instance-parameter>
  1975. <parameter name="idx" transfer-ownership="none">
  1976. <doc xml:space="preserve">an index</doc>
  1977. <type name="guint" c:type="guint"/>
  1978. </parameter>
  1979. </parameters>
  1980. </method>
  1981. <method name="get_memory_range"
  1982. c:identifier="gst_buffer_get_memory_range">
  1983. <doc xml:space="preserve">Get @length memory blocks in @buffer starting at @idx. The memory blocks will
  1984. be merged into one large #GstMemory.
  1985. If @length is -1, all memory starting from @idx is merged.</doc>
  1986. <return-value transfer-ownership="full">
  1987. <doc xml:space="preserve">a #GstMemory that contains the merged data of @length
  1988. blocks starting at @idx. Use gst_memory_unref () after usage.</doc>
  1989. <type name="Memory" c:type="GstMemory*"/>
  1990. </return-value>
  1991. <parameters>
  1992. <instance-parameter name="buffer" transfer-ownership="none">
  1993. <doc xml:space="preserve">a #GstBuffer.</doc>
  1994. <type name="Buffer" c:type="GstBuffer*"/>
  1995. </instance-parameter>
  1996. <parameter name="idx" transfer-ownership="none">
  1997. <doc xml:space="preserve">an index</doc>
  1998. <type name="guint" c:type="guint"/>
  1999. </parameter>
  2000. <parameter name="length" transfer-ownership="none">
  2001. <doc xml:space="preserve">a length</doc>
  2002. <type name="gint" c:type="gint"/>
  2003. </parameter>
  2004. </parameters>
  2005. </method>
  2006. <method name="get_meta" c:identifier="gst_buffer_get_meta">
  2007. <doc xml:space="preserve">Get the metadata for @api on buffer. When there is no such metadata, %NULL is
  2008. returned. If multiple metadata with the given @api are attached to this
  2009. buffer only the first one is returned. To handle multiple metadata with a
  2010. given API use gst_buffer_iterate_meta() or gst_buffer_foreach_meta() instead
  2011. and check the meta-&gt;info.api member for the API type.</doc>
  2012. <return-value transfer-ownership="none" nullable="1">
  2013. <doc xml:space="preserve">the metadata for @api on
  2014. @buffer.</doc>
  2015. <type name="Meta" c:type="GstMeta*"/>
  2016. </return-value>
  2017. <parameters>
  2018. <instance-parameter name="buffer" transfer-ownership="none">
  2019. <doc xml:space="preserve">a #GstBuffer</doc>
  2020. <type name="Buffer" c:type="GstBuffer*"/>
  2021. </instance-parameter>
  2022. <parameter name="api" transfer-ownership="none">
  2023. <doc xml:space="preserve">the #GType of an API</doc>
  2024. <type name="GType" c:type="GType"/>
  2025. </parameter>
  2026. </parameters>
  2027. </method>
  2028. <method name="get_size" c:identifier="gst_buffer_get_size">
  2029. <doc xml:space="preserve">Get the total size of the memory blocks in @buffer.</doc>
  2030. <return-value transfer-ownership="none">
  2031. <doc xml:space="preserve">total size of the memory blocks in @buffer.</doc>
  2032. <type name="gsize" c:type="gsize"/>
  2033. </return-value>
  2034. <parameters>
  2035. <instance-parameter name="buffer" transfer-ownership="none">
  2036. <doc xml:space="preserve">a #GstBuffer.</doc>
  2037. <type name="Buffer" c:type="GstBuffer*"/>
  2038. </instance-parameter>
  2039. </parameters>
  2040. </method>
  2041. <method name="get_sizes" c:identifier="gst_buffer_get_sizes">
  2042. <doc xml:space="preserve">Get the total size of the memory blocks in @b.
  2043. When not %NULL, @offset will contain the offset of the data in the
  2044. first memory block in @buffer and @maxsize will contain the sum of
  2045. the size and @offset and the amount of extra padding on the last
  2046. memory block. @offset and @maxsize can be used to resize the
  2047. buffer memory blocks with gst_buffer_resize().</doc>
  2048. <return-value transfer-ownership="none">
  2049. <doc xml:space="preserve">total size of the memory blocks in @buffer.</doc>
  2050. <type name="gsize" c:type="gsize"/>
  2051. </return-value>
  2052. <parameters>
  2053. <instance-parameter name="buffer" transfer-ownership="none">
  2054. <doc xml:space="preserve">a #GstBuffer.</doc>
  2055. <type name="Buffer" c:type="GstBuffer*"/>
  2056. </instance-parameter>
  2057. <parameter name="offset"
  2058. direction="out"
  2059. caller-allocates="0"
  2060. transfer-ownership="full"
  2061. optional="1"
  2062. allow-none="1">
  2063. <doc xml:space="preserve">a pointer to the offset</doc>
  2064. <type name="gsize" c:type="gsize*"/>
  2065. </parameter>
  2066. <parameter name="maxsize"
  2067. direction="out"
  2068. caller-allocates="0"
  2069. transfer-ownership="full"
  2070. optional="1"
  2071. allow-none="1">
  2072. <doc xml:space="preserve">a pointer to the maxsize</doc>
  2073. <type name="gsize" c:type="gsize*"/>
  2074. </parameter>
  2075. </parameters>
  2076. </method>
  2077. <method name="get_sizes_range" c:identifier="gst_buffer_get_sizes_range">
  2078. <doc xml:space="preserve">Get the total size of @length memory blocks stating from @idx in @buffer.
  2079. When not %NULL, @offset will contain the offset of the data in the
  2080. memory block in @buffer at @idx and @maxsize will contain the sum of the size
  2081. and @offset and the amount of extra padding on the memory block at @idx +
  2082. @length -1.
  2083. @offset and @maxsize can be used to resize the buffer memory blocks with
  2084. gst_buffer_resize_range().</doc>
  2085. <return-value transfer-ownership="none">
  2086. <doc xml:space="preserve">total size of @length memory blocks starting at @idx in @buffer.</doc>
  2087. <type name="gsize" c:type="gsize"/>
  2088. </return-value>
  2089. <parameters>
  2090. <instance-parameter name="buffer" transfer-ownership="none">
  2091. <doc xml:space="preserve">a #GstBuffer.</doc>
  2092. <type name="Buffer" c:type="GstBuffer*"/>
  2093. </instance-parameter>
  2094. <parameter name="idx" transfer-ownership="none">
  2095. <doc xml:space="preserve">an index</doc>
  2096. <type name="guint" c:type="guint"/>
  2097. </parameter>
  2098. <parameter name="length" transfer-ownership="none">
  2099. <doc xml:space="preserve">a length</doc>
  2100. <type name="gint" c:type="gint"/>
  2101. </parameter>
  2102. <parameter name="offset"
  2103. direction="out"
  2104. caller-allocates="0"
  2105. transfer-ownership="full"
  2106. optional="1"
  2107. allow-none="1">
  2108. <doc xml:space="preserve">a pointer to the offset</doc>
  2109. <type name="gsize" c:type="gsize*"/>
  2110. </parameter>
  2111. <parameter name="maxsize"
  2112. direction="out"
  2113. caller-allocates="0"
  2114. transfer-ownership="full"
  2115. optional="1"
  2116. allow-none="1">
  2117. <doc xml:space="preserve">a pointer to the maxsize</doc>
  2118. <type name="gsize" c:type="gsize*"/>
  2119. </parameter>
  2120. </parameters>
  2121. </method>
  2122. <method name="insert_memory" c:identifier="gst_buffer_insert_memory">
  2123. <doc xml:space="preserve">Insert the memory block @mem to @buffer at @idx. This function takes ownership
  2124. of @mem and thus doesn't increase its refcount.
  2125. Only gst_buffer_get_max_memory() can be added to a buffer. If more memory is
  2126. added, existing memory blocks will automatically be merged to make room for
  2127. the new memory.</doc>
  2128. <return-value transfer-ownership="none">
  2129. <type name="none" c:type="void"/>
  2130. </return-value>
  2131. <parameters>
  2132. <instance-parameter name="buffer" transfer-ownership="none">
  2133. <doc xml:space="preserve">a #GstBuffer.</doc>
  2134. <type name="Buffer" c:type="GstBuffer*"/>
  2135. </instance-parameter>
  2136. <parameter name="idx" transfer-ownership="none">
  2137. <doc xml:space="preserve">the index to add the memory at, or -1 to append it to the end</doc>
  2138. <type name="gint" c:type="gint"/>
  2139. </parameter>
  2140. <parameter name="mem" transfer-ownership="full">
  2141. <doc xml:space="preserve">a #GstMemory.</doc>
  2142. <type name="Memory" c:type="GstMemory*"/>
  2143. </parameter>
  2144. </parameters>
  2145. </method>
  2146. <method name="is_all_memory_writable"
  2147. c:identifier="gst_buffer_is_all_memory_writable"
  2148. version="1.4">
  2149. <doc xml:space="preserve">Check if all memory blocks in @buffer are writable.
  2150. Note that this function does not check if @buffer is writable, use
  2151. gst_buffer_is_writable() to check that if needed.</doc>
  2152. <return-value transfer-ownership="none">
  2153. <doc xml:space="preserve">%TRUE if all memory blocks in @buffer are writable</doc>
  2154. <type name="gboolean" c:type="gboolean"/>
  2155. </return-value>
  2156. <parameters>
  2157. <instance-parameter name="buffer" transfer-ownership="none">
  2158. <doc xml:space="preserve">a #GstBuffer.</doc>
  2159. <type name="Buffer" c:type="GstBuffer*"/>
  2160. </instance-parameter>
  2161. </parameters>
  2162. </method>
  2163. <method name="is_memory_range_writable"
  2164. c:identifier="gst_buffer_is_memory_range_writable"
  2165. version="1.4">
  2166. <doc xml:space="preserve">Check if @length memory blocks in @buffer starting from @idx are writable.
  2167. @length can be -1 to check all the memory blocks after @idx.
  2168. Note that this function does not check if @buffer is writable, use
  2169. gst_buffer_is_writable() to check that if needed.</doc>
  2170. <return-value transfer-ownership="none">
  2171. <doc xml:space="preserve">%TRUE if the memory range is writable</doc>
  2172. <type name="gboolean" c:type="gboolean"/>
  2173. </return-value>
  2174. <parameters>
  2175. <instance-parameter name="buffer" transfer-ownership="none">
  2176. <doc xml:space="preserve">a #GstBuffer.</doc>
  2177. <type name="Buffer" c:type="GstBuffer*"/>
  2178. </instance-parameter>
  2179. <parameter name="idx" transfer-ownership="none">
  2180. <doc xml:space="preserve">an index</doc>
  2181. <type name="guint" c:type="guint"/>
  2182. </parameter>
  2183. <parameter name="length" transfer-ownership="none">
  2184. <doc xml:space="preserve">a length should not be 0</doc>
  2185. <type name="gint" c:type="gint"/>
  2186. </parameter>
  2187. </parameters>
  2188. </method>
  2189. <method name="iterate_meta" c:identifier="gst_buffer_iterate_meta">
  2190. <doc xml:space="preserve">Retrieve the next #GstMeta after @current. If @state points
  2191. to %NULL, the first metadata is returned.
  2192. @state will be updated with an opaque state pointer</doc>
  2193. <return-value transfer-ownership="none" nullable="1">
  2194. <doc xml:space="preserve">The next #GstMeta or %NULL
  2195. when there are no more items.</doc>
  2196. <type name="Meta" c:type="GstMeta*"/>
  2197. </return-value>
  2198. <parameters>
  2199. <instance-parameter name="buffer" transfer-ownership="none">
  2200. <doc xml:space="preserve">a #GstBuffer</doc>
  2201. <type name="Buffer" c:type="GstBuffer*"/>
  2202. </instance-parameter>
  2203. <parameter name="state"
  2204. transfer-ownership="none"
  2205. nullable="1"
  2206. allow-none="1">
  2207. <doc xml:space="preserve">an opaque state pointer</doc>
  2208. <type name="gpointer" c:type="gpointer*"/>
  2209. </parameter>
  2210. </parameters>
  2211. </method>
  2212. <method name="map" c:identifier="gst_buffer_map">
  2213. <doc xml:space="preserve">This function fills @info with the #GstMapInfo of all merged memory
  2214. blocks in @buffer.
  2215. @flags describe the desired access of the memory. When @flags is
  2216. #GST_MAP_WRITE, @buffer should be writable (as returned from
  2217. gst_buffer_is_writable()).
  2218. When @buffer is writable but the memory isn't, a writable copy will
  2219. automatically be created and returned. The readonly copy of the
  2220. buffer memory will then also be replaced with this writable copy.
  2221. The memory in @info should be unmapped with gst_buffer_unmap() after
  2222. usage.</doc>
  2223. <return-value transfer-ownership="none">
  2224. <doc xml:space="preserve">%TRUE if the map succeeded and @info contains valid data.</doc>
  2225. <type name="gboolean" c:type="gboolean"/>
  2226. </return-value>
  2227. <parameters>
  2228. <instance-parameter name="buffer" transfer-ownership="none">
  2229. <doc xml:space="preserve">a #GstBuffer.</doc>
  2230. <type name="Buffer" c:type="GstBuffer*"/>
  2231. </instance-parameter>
  2232. <parameter name="info"
  2233. direction="out"
  2234. caller-allocates="1"
  2235. transfer-ownership="none">
  2236. <doc xml:space="preserve">info about the mapping</doc>
  2237. <type name="MapInfo" c:type="GstMapInfo*"/>
  2238. </parameter>
  2239. <parameter name="flags" transfer-ownership="none">
  2240. <doc xml:space="preserve">flags for the mapping</doc>
  2241. <type name="MapFlags" c:type="GstMapFlags"/>
  2242. </parameter>
  2243. </parameters>
  2244. </method>
  2245. <method name="map_range" c:identifier="gst_buffer_map_range">
  2246. <doc xml:space="preserve">This function fills @info with the #GstMapInfo of @length merged memory blocks
  2247. starting at @idx in @buffer. When @length is -1, all memory blocks starting
  2248. from @idx are merged and mapped.
  2249. @flags describe the desired access of the memory. When @flags is
  2250. #GST_MAP_WRITE, @buffer should be writable (as returned from
  2251. gst_buffer_is_writable()).
  2252. When @buffer is writable but the memory isn't, a writable copy will
  2253. automatically be created and returned. The readonly copy of the buffer memory
  2254. will then also be replaced with this writable copy.
  2255. The memory in @info should be unmapped with gst_buffer_unmap() after usage.</doc>
  2256. <return-value transfer-ownership="none">
  2257. <doc xml:space="preserve">%TRUE if the map succeeded and @info contains valid
  2258. data.</doc>
  2259. <type name="gboolean" c:type="gboolean"/>
  2260. </return-value>
  2261. <parameters>
  2262. <instance-parameter name="buffer" transfer-ownership="none">
  2263. <doc xml:space="preserve">a #GstBuffer.</doc>
  2264. <type name="Buffer" c:type="GstBuffer*"/>
  2265. </instance-parameter>
  2266. <parameter name="idx" transfer-ownership="none">
  2267. <doc xml:space="preserve">an index</doc>
  2268. <type name="guint" c:type="guint"/>
  2269. </parameter>
  2270. <parameter name="length" transfer-ownership="none">
  2271. <doc xml:space="preserve">a length</doc>
  2272. <type name="gint" c:type="gint"/>
  2273. </parameter>
  2274. <parameter name="info"
  2275. direction="out"
  2276. caller-allocates="1"
  2277. transfer-ownership="none">
  2278. <doc xml:space="preserve">info about the mapping</doc>
  2279. <type name="MapInfo" c:type="GstMapInfo*"/>
  2280. </parameter>
  2281. <parameter name="flags" transfer-ownership="none">
  2282. <doc xml:space="preserve">flags for the mapping</doc>
  2283. <type name="MapFlags" c:type="GstMapFlags"/>
  2284. </parameter>
  2285. </parameters>
  2286. </method>
  2287. <method name="memcmp" c:identifier="gst_buffer_memcmp">
  2288. <doc xml:space="preserve">Compare @size bytes starting from @offset in @buffer with the memory in @mem.</doc>
  2289. <return-value transfer-ownership="none">
  2290. <doc xml:space="preserve">0 if the memory is equal.</doc>
  2291. <type name="gint" c:type="gint"/>
  2292. </return-value>
  2293. <parameters>
  2294. <instance-parameter name="buffer" transfer-ownership="none">
  2295. <doc xml:space="preserve">a #GstBuffer.</doc>
  2296. <type name="Buffer" c:type="GstBuffer*"/>
  2297. </instance-parameter>
  2298. <parameter name="offset" transfer-ownership="none">
  2299. <doc xml:space="preserve">the offset in @buffer</doc>
  2300. <type name="gsize" c:type="gsize"/>
  2301. </parameter>
  2302. <parameter name="mem" transfer-ownership="none">
  2303. <doc xml:space="preserve">the memory to compare</doc>
  2304. <array length="2" zero-terminated="0" c:type="gconstpointer">
  2305. <type name="guint8"/>
  2306. </array>
  2307. </parameter>
  2308. <parameter name="size" transfer-ownership="none">
  2309. <doc xml:space="preserve">the size to compare</doc>
  2310. <type name="gsize" c:type="gsize"/>
  2311. </parameter>
  2312. </parameters>
  2313. </method>
  2314. <method name="memset" c:identifier="gst_buffer_memset">
  2315. <doc xml:space="preserve">Fill @buf with @size bytes with @val starting from @offset.</doc>
  2316. <return-value transfer-ownership="none">
  2317. <doc xml:space="preserve">The amount of bytes filled. This value can be lower than @size
  2318. when @buffer did not contain enough data.</doc>
  2319. <type name="gsize" c:type="gsize"/>
  2320. </return-value>
  2321. <parameters>
  2322. <instance-parameter name="buffer" transfer-ownership="none">
  2323. <doc xml:space="preserve">a #GstBuffer.</doc>
  2324. <type name="Buffer" c:type="GstBuffer*"/>
  2325. </instance-parameter>
  2326. <parameter name="offset" transfer-ownership="none">
  2327. <doc xml:space="preserve">the offset in @buffer</doc>
  2328. <type name="gsize" c:type="gsize"/>
  2329. </parameter>
  2330. <parameter name="val" transfer-ownership="none">
  2331. <doc xml:space="preserve">the value to set</doc>
  2332. <type name="guint8" c:type="guint8"/>
  2333. </parameter>
  2334. <parameter name="size" transfer-ownership="none">
  2335. <doc xml:space="preserve">the size to set</doc>
  2336. <type name="gsize" c:type="gsize"/>
  2337. </parameter>
  2338. </parameters>
  2339. </method>
  2340. <method name="n_memory" c:identifier="gst_buffer_n_memory">
  2341. <doc xml:space="preserve">Get the amount of memory blocks that this buffer has. This amount is never
  2342. larger than what gst_buffer_get_max_memory() returns.</doc>
  2343. <return-value transfer-ownership="none">
  2344. <doc xml:space="preserve">the amount of memory block in this buffer.</doc>
  2345. <type name="guint" c:type="guint"/>
  2346. </return-value>
  2347. <parameters>
  2348. <instance-parameter name="buffer" transfer-ownership="none">
  2349. <doc xml:space="preserve">a #GstBuffer.</doc>
  2350. <type name="Buffer" c:type="GstBuffer*"/>
  2351. </instance-parameter>
  2352. </parameters>
  2353. </method>
  2354. <method name="peek_memory" c:identifier="gst_buffer_peek_memory">
  2355. <doc xml:space="preserve">Get the memory block at @idx in @buffer. The memory block stays valid until
  2356. the memory block in @buffer is removed, replaced or merged, typically with
  2357. any call that modifies the memory in @buffer.</doc>
  2358. <return-value transfer-ownership="none">
  2359. <doc xml:space="preserve">the #GstMemory at @idx.</doc>
  2360. <type name="Memory" c:type="GstMemory*"/>
  2361. </return-value>
  2362. <parameters>
  2363. <instance-parameter name="buffer" transfer-ownership="none">
  2364. <doc xml:space="preserve">a #GstBuffer.</doc>
  2365. <type name="Buffer" c:type="GstBuffer*"/>
  2366. </instance-parameter>
  2367. <parameter name="idx" transfer-ownership="none">
  2368. <doc xml:space="preserve">an index</doc>
  2369. <type name="guint" c:type="guint"/>
  2370. </parameter>
  2371. </parameters>
  2372. </method>
  2373. <method name="prepend_memory" c:identifier="gst_buffer_prepend_memory">
  2374. <doc xml:space="preserve">Prepend the memory block @mem to @buffer. This function takes
  2375. ownership of @mem and thus doesn't increase its refcount.
  2376. This function is identical to gst_buffer_insert_memory() with an index of 0.
  2377. See gst_buffer_insert_memory() for more details.</doc>
  2378. <return-value transfer-ownership="none">
  2379. <type name="none" c:type="void"/>
  2380. </return-value>
  2381. <parameters>
  2382. <instance-parameter name="buffer" transfer-ownership="none">
  2383. <doc xml:space="preserve">a #GstBuffer.</doc>
  2384. <type name="Buffer" c:type="GstBuffer*"/>
  2385. </instance-parameter>
  2386. <parameter name="mem" transfer-ownership="full">
  2387. <doc xml:space="preserve">a #GstMemory.</doc>
  2388. <type name="Memory" c:type="GstMemory*"/>
  2389. </parameter>
  2390. </parameters>
  2391. </method>
  2392. <method name="remove_all_memory"
  2393. c:identifier="gst_buffer_remove_all_memory">
  2394. <doc xml:space="preserve">Remove all the memory blocks in @buffer.</doc>
  2395. <return-value transfer-ownership="none">
  2396. <type name="none" c:type="void"/>
  2397. </return-value>
  2398. <parameters>
  2399. <instance-parameter name="buffer" transfer-ownership="none">
  2400. <doc xml:space="preserve">a #GstBuffer.</doc>
  2401. <type name="Buffer" c:type="GstBuffer*"/>
  2402. </instance-parameter>
  2403. </parameters>
  2404. </method>
  2405. <method name="remove_memory" c:identifier="gst_buffer_remove_memory">
  2406. <doc xml:space="preserve">Remove the memory block in @b at index @i.</doc>
  2407. <return-value transfer-ownership="none">
  2408. <type name="none" c:type="void"/>
  2409. </return-value>
  2410. <parameters>
  2411. <instance-parameter name="buffer" transfer-ownership="none">
  2412. <doc xml:space="preserve">a #GstBuffer.</doc>
  2413. <type name="Buffer" c:type="GstBuffer*"/>
  2414. </instance-parameter>
  2415. <parameter name="idx" transfer-ownership="none">
  2416. <doc xml:space="preserve">an index</doc>
  2417. <type name="guint" c:type="guint"/>
  2418. </parameter>
  2419. </parameters>
  2420. </method>
  2421. <method name="remove_memory_range"
  2422. c:identifier="gst_buffer_remove_memory_range">
  2423. <doc xml:space="preserve">Remove @length memory blocks in @buffer starting from @idx.
  2424. @length can be -1, in which case all memory starting from @idx is removed.</doc>
  2425. <return-value transfer-ownership="none">
  2426. <type name="none" c:type="void"/>
  2427. </return-value>
  2428. <parameters>
  2429. <instance-parameter name="buffer" transfer-ownership="none">
  2430. <doc xml:space="preserve">a #GstBuffer.</doc>
  2431. <type name="Buffer" c:type="GstBuffer*"/>
  2432. </instance-parameter>
  2433. <parameter name="idx" transfer-ownership="none">
  2434. <doc xml:space="preserve">an index</doc>
  2435. <type name="guint" c:type="guint"/>
  2436. </parameter>
  2437. <parameter name="length" transfer-ownership="none">
  2438. <doc xml:space="preserve">a length</doc>
  2439. <type name="gint" c:type="gint"/>
  2440. </parameter>
  2441. </parameters>
  2442. </method>
  2443. <method name="remove_meta" c:identifier="gst_buffer_remove_meta">
  2444. <doc xml:space="preserve">Remove the metadata for @meta on @buffer.</doc>
  2445. <return-value transfer-ownership="none">
  2446. <doc xml:space="preserve">%TRUE if the metadata existed and was removed, %FALSE if no such
  2447. metadata was on @buffer.</doc>
  2448. <type name="gboolean" c:type="gboolean"/>
  2449. </return-value>
  2450. <parameters>
  2451. <instance-parameter name="buffer" transfer-ownership="none">
  2452. <doc xml:space="preserve">a #GstBuffer</doc>
  2453. <type name="Buffer" c:type="GstBuffer*"/>
  2454. </instance-parameter>
  2455. <parameter name="meta" transfer-ownership="none">
  2456. <doc xml:space="preserve">a #GstMeta</doc>
  2457. <type name="Meta" c:type="GstMeta*"/>
  2458. </parameter>
  2459. </parameters>
  2460. </method>
  2461. <method name="replace_all_memory"
  2462. c:identifier="gst_buffer_replace_all_memory">
  2463. <doc xml:space="preserve">Replaces all memory in @buffer with @mem.</doc>
  2464. <return-value transfer-ownership="none">
  2465. <type name="none" c:type="void"/>
  2466. </return-value>
  2467. <parameters>
  2468. <instance-parameter name="buffer" transfer-ownership="none">
  2469. <doc xml:space="preserve">a #GstBuffer.</doc>
  2470. <type name="Buffer" c:type="GstBuffer*"/>
  2471. </instance-parameter>
  2472. <parameter name="mem" transfer-ownership="full">
  2473. <doc xml:space="preserve">a #GstMemory</doc>
  2474. <type name="Memory" c:type="GstMemory*"/>
  2475. </parameter>
  2476. </parameters>
  2477. </method>
  2478. <method name="replace_memory" c:identifier="gst_buffer_replace_memory">
  2479. <doc xml:space="preserve">Replaces the memory block at index @idx in @buffer with @mem.</doc>
  2480. <return-value transfer-ownership="none">
  2481. <type name="none" c:type="void"/>
  2482. </return-value>
  2483. <parameters>
  2484. <instance-parameter name="buffer" transfer-ownership="none">
  2485. <doc xml:space="preserve">a #GstBuffer.</doc>
  2486. <type name="Buffer" c:type="GstBuffer*"/>
  2487. </instance-parameter>
  2488. <parameter name="idx" transfer-ownership="none">
  2489. <doc xml:space="preserve">an index</doc>
  2490. <type name="guint" c:type="guint"/>
  2491. </parameter>
  2492. <parameter name="mem" transfer-ownership="full">
  2493. <doc xml:space="preserve">a #GstMemory</doc>
  2494. <type name="Memory" c:type="GstMemory*"/>
  2495. </parameter>
  2496. </parameters>
  2497. </method>
  2498. <method name="replace_memory_range"
  2499. c:identifier="gst_buffer_replace_memory_range">
  2500. <doc xml:space="preserve">Replaces @length memory blocks in @buffer starting at @idx with @mem.
  2501. If @length is -1, all memory starting from @idx will be removed and
  2502. replaced with @mem.
  2503. @buffer should be writable.</doc>
  2504. <return-value transfer-ownership="none">
  2505. <type name="none" c:type="void"/>
  2506. </return-value>
  2507. <parameters>
  2508. <instance-parameter name="buffer" transfer-ownership="none">
  2509. <doc xml:space="preserve">a #GstBuffer.</doc>
  2510. <type name="Buffer" c:type="GstBuffer*"/>
  2511. </instance-parameter>
  2512. <parameter name="idx" transfer-ownership="none">
  2513. <doc xml:space="preserve">an index</doc>
  2514. <type name="guint" c:type="guint"/>
  2515. </parameter>
  2516. <parameter name="length" transfer-ownership="none">
  2517. <doc xml:space="preserve">a length should not be 0</doc>
  2518. <type name="gint" c:type="gint"/>
  2519. </parameter>
  2520. <parameter name="mem" transfer-ownership="full">
  2521. <doc xml:space="preserve">a #GstMemory</doc>
  2522. <type name="Memory" c:type="GstMemory*"/>
  2523. </parameter>
  2524. </parameters>
  2525. </method>
  2526. <method name="resize" c:identifier="gst_buffer_resize">
  2527. <doc xml:space="preserve">Set the offset and total size of the memory blocks in @buffer.</doc>
  2528. <return-value transfer-ownership="none">
  2529. <type name="none" c:type="void"/>
  2530. </return-value>
  2531. <parameters>
  2532. <instance-parameter name="buffer" transfer-ownership="none">
  2533. <doc xml:space="preserve">a #GstBuffer.</doc>
  2534. <type name="Buffer" c:type="GstBuffer*"/>
  2535. </instance-parameter>
  2536. <parameter name="offset" transfer-ownership="none">
  2537. <doc xml:space="preserve">the offset adjustment</doc>
  2538. <type name="gssize" c:type="gssize"/>
  2539. </parameter>
  2540. <parameter name="size" transfer-ownership="none">
  2541. <doc xml:space="preserve">the new size or -1 to just adjust the offset</doc>
  2542. <type name="gssize" c:type="gssize"/>
  2543. </parameter>
  2544. </parameters>
  2545. </method>
  2546. <method name="resize_range" c:identifier="gst_buffer_resize_range">
  2547. <doc xml:space="preserve">Set the total size of the @length memory blocks starting at @idx in
  2548. @buffer</doc>
  2549. <return-value transfer-ownership="none">
  2550. <doc xml:space="preserve">%TRUE if resizing succeeded, %FALSE otherwise.</doc>
  2551. <type name="gboolean" c:type="gboolean"/>
  2552. </return-value>
  2553. <parameters>
  2554. <instance-parameter name="buffer" transfer-ownership="none">
  2555. <doc xml:space="preserve">a #GstBuffer.</doc>
  2556. <type name="Buffer" c:type="GstBuffer*"/>
  2557. </instance-parameter>
  2558. <parameter name="idx" transfer-ownership="none">
  2559. <doc xml:space="preserve">an index</doc>
  2560. <type name="guint" c:type="guint"/>
  2561. </parameter>
  2562. <parameter name="length" transfer-ownership="none">
  2563. <doc xml:space="preserve">a length</doc>
  2564. <type name="gint" c:type="gint"/>
  2565. </parameter>
  2566. <parameter name="offset" transfer-ownership="none">
  2567. <doc xml:space="preserve">the offset adjustment</doc>
  2568. <type name="gssize" c:type="gssize"/>
  2569. </parameter>
  2570. <parameter name="size" transfer-ownership="none">
  2571. <doc xml:space="preserve">the new size or -1 to just adjust the offset</doc>
  2572. <type name="gssize" c:type="gssize"/>
  2573. </parameter>
  2574. </parameters>
  2575. </method>
  2576. <method name="set_size" c:identifier="gst_buffer_set_size">
  2577. <doc xml:space="preserve">Set the total size of the memory blocks in @buffer.</doc>
  2578. <return-value transfer-ownership="none">
  2579. <type name="none" c:type="void"/>
  2580. </return-value>
  2581. <parameters>
  2582. <instance-parameter name="buffer" transfer-ownership="none">
  2583. <doc xml:space="preserve">a #GstBuffer.</doc>
  2584. <type name="Buffer" c:type="GstBuffer*"/>
  2585. </instance-parameter>
  2586. <parameter name="size" transfer-ownership="none">
  2587. <doc xml:space="preserve">the new size</doc>
  2588. <type name="gssize" c:type="gssize"/>
  2589. </parameter>
  2590. </parameters>
  2591. </method>
  2592. <method name="unmap" c:identifier="gst_buffer_unmap">
  2593. <doc xml:space="preserve">Release the memory previously mapped with gst_buffer_map().</doc>
  2594. <return-value transfer-ownership="none">
  2595. <type name="none" c:type="void"/>
  2596. </return-value>
  2597. <parameters>
  2598. <instance-parameter name="buffer" transfer-ownership="none">
  2599. <doc xml:space="preserve">a #GstBuffer.</doc>
  2600. <type name="Buffer" c:type="GstBuffer*"/>
  2601. </instance-parameter>
  2602. <parameter name="info" transfer-ownership="none">
  2603. <doc xml:space="preserve">a #GstMapInfo</doc>
  2604. <type name="MapInfo" c:type="GstMapInfo*"/>
  2605. </parameter>
  2606. </parameters>
  2607. </method>
  2608. <function name="get_max_memory"
  2609. c:identifier="gst_buffer_get_max_memory"
  2610. version="1.2">
  2611. <doc xml:space="preserve">Get the maximum amount of memory blocks that a buffer can hold. This is a
  2612. compile time constant that can be queried with the function.
  2613. When more memory blocks are added, existing memory blocks will be merged
  2614. together to make room for the new block.</doc>
  2615. <return-value transfer-ownership="none">
  2616. <doc xml:space="preserve">the maximum amount of memory blocks that a buffer can hold.</doc>
  2617. <type name="guint" c:type="guint"/>
  2618. </return-value>
  2619. </function>
  2620. </record>
  2621. <bitfield name="BufferCopyFlags"
  2622. glib:type-name="GstBufferCopyFlags"
  2623. glib:get-type="gst_buffer_copy_flags_get_type"
  2624. c:type="GstBufferCopyFlags">
  2625. <doc xml:space="preserve">A set of flags that can be provided to the gst_buffer_copy_into()
  2626. function to specify which items should be copied.</doc>
  2627. <member name="none"
  2628. value="0"
  2629. c:identifier="GST_BUFFER_COPY_NONE"
  2630. glib:nick="none">
  2631. <doc xml:space="preserve">copy nothing</doc>
  2632. </member>
  2633. <member name="flags"
  2634. value="1"
  2635. c:identifier="GST_BUFFER_COPY_FLAGS"
  2636. glib:nick="flags">
  2637. <doc xml:space="preserve">flag indicating that buffer flags should be copied</doc>
  2638. </member>
  2639. <member name="timestamps"
  2640. value="2"
  2641. c:identifier="GST_BUFFER_COPY_TIMESTAMPS"
  2642. glib:nick="timestamps">
  2643. <doc xml:space="preserve">flag indicating that buffer pts, dts,
  2644. duration, offset and offset_end should be copied</doc>
  2645. </member>
  2646. <member name="meta"
  2647. value="4"
  2648. c:identifier="GST_BUFFER_COPY_META"
  2649. glib:nick="meta">
  2650. <doc xml:space="preserve">flag indicating that buffer meta should be
  2651. copied</doc>
  2652. </member>
  2653. <member name="memory"
  2654. value="8"
  2655. c:identifier="GST_BUFFER_COPY_MEMORY"
  2656. glib:nick="memory">
  2657. <doc xml:space="preserve">flag indicating that buffer memory should be reffed
  2658. and appended to already existing memory. Unless the memory is marked as
  2659. NO_SHARE, no actual copy of the memory is made but it is simply reffed.
  2660. Add @GST_BUFFER_COPY_DEEP to force a real copy.</doc>
  2661. </member>
  2662. <member name="merge"
  2663. value="16"
  2664. c:identifier="GST_BUFFER_COPY_MERGE"
  2665. glib:nick="merge">
  2666. <doc xml:space="preserve">flag indicating that buffer memory should be
  2667. merged</doc>
  2668. </member>
  2669. <member name="deep"
  2670. value="32"
  2671. c:identifier="GST_BUFFER_COPY_DEEP"
  2672. glib:nick="deep">
  2673. <doc xml:space="preserve">flag indicating that memory should always be
  2674. copied instead of reffed (Since 1.2)</doc>
  2675. </member>
  2676. </bitfield>
  2677. <bitfield name="BufferFlags"
  2678. glib:type-name="GstBufferFlags"
  2679. glib:get-type="gst_buffer_flags_get_type"
  2680. c:type="GstBufferFlags">
  2681. <doc xml:space="preserve">A set of buffer flags used to describe properties of a #GstBuffer.</doc>
  2682. <member name="live"
  2683. value="16"
  2684. c:identifier="GST_BUFFER_FLAG_LIVE"
  2685. glib:nick="live">
  2686. <doc xml:space="preserve">the buffer is live data and should be discarded in
  2687. the PAUSED state.</doc>
  2688. </member>
  2689. <member name="decode_only"
  2690. value="32"
  2691. c:identifier="GST_BUFFER_FLAG_DECODE_ONLY"
  2692. glib:nick="decode-only">
  2693. <doc xml:space="preserve">the buffer contains data that should be dropped
  2694. because it will be clipped against the segment
  2695. boundaries or because it does not contain data
  2696. that should be shown to the user.</doc>
  2697. </member>
  2698. <member name="discont"
  2699. value="64"
  2700. c:identifier="GST_BUFFER_FLAG_DISCONT"
  2701. glib:nick="discont">
  2702. <doc xml:space="preserve">the buffer marks a data discontinuity in the stream.
  2703. This typically occurs after a seek or a dropped buffer
  2704. from a live or network source.</doc>
  2705. </member>
  2706. <member name="resync"
  2707. value="128"
  2708. c:identifier="GST_BUFFER_FLAG_RESYNC"
  2709. glib:nick="resync">
  2710. <doc xml:space="preserve">the buffer timestamps might have a discontinuity
  2711. and this buffer is a good point to resynchronize.</doc>
  2712. </member>
  2713. <member name="corrupted"
  2714. value="256"
  2715. c:identifier="GST_BUFFER_FLAG_CORRUPTED"
  2716. glib:nick="corrupted">
  2717. <doc xml:space="preserve">the buffer data is corrupted.</doc>
  2718. </member>
  2719. <member name="marker"
  2720. value="512"
  2721. c:identifier="GST_BUFFER_FLAG_MARKER"
  2722. glib:nick="marker">
  2723. <doc xml:space="preserve">the buffer contains a media specific marker. for
  2724. video this is typically the end of a frame boundary, for audio
  2725. this is usually the start of a talkspurt.</doc>
  2726. </member>
  2727. <member name="header"
  2728. value="1024"
  2729. c:identifier="GST_BUFFER_FLAG_HEADER"
  2730. glib:nick="header">
  2731. <doc xml:space="preserve">the buffer contains header information that is
  2732. needed to decode the following data.</doc>
  2733. </member>
  2734. <member name="gap"
  2735. value="2048"
  2736. c:identifier="GST_BUFFER_FLAG_GAP"
  2737. glib:nick="gap">
  2738. <doc xml:space="preserve">the buffer has been created to fill a gap in the
  2739. stream and contains media neutral data (elements can
  2740. switch to optimized code path that ignores the buffer
  2741. content).</doc>
  2742. </member>
  2743. <member name="droppable"
  2744. value="4096"
  2745. c:identifier="GST_BUFFER_FLAG_DROPPABLE"
  2746. glib:nick="droppable">
  2747. <doc xml:space="preserve">the buffer can be dropped without breaking the
  2748. stream, for example to reduce bandwidth.</doc>
  2749. </member>
  2750. <member name="delta_unit"
  2751. value="8192"
  2752. c:identifier="GST_BUFFER_FLAG_DELTA_UNIT"
  2753. glib:nick="delta-unit">
  2754. <doc xml:space="preserve">this unit cannot be decoded independently.</doc>
  2755. </member>
  2756. <member name="tag_memory"
  2757. value="16384"
  2758. c:identifier="GST_BUFFER_FLAG_TAG_MEMORY"
  2759. glib:nick="tag-memory">
  2760. <doc xml:space="preserve">this flag is set when memory of the buffer
  2761. is added/removed</doc>
  2762. </member>
  2763. <member name="sync_after"
  2764. value="32768"
  2765. c:identifier="GST_BUFFER_FLAG_SYNC_AFTER"
  2766. glib:nick="sync-after">
  2767. <doc xml:space="preserve">Elements which write to disk or permanent
  2768. storage should ensure the data is synced after
  2769. writing the contents of this buffer. (Since 1.6)</doc>
  2770. </member>
  2771. <member name="last"
  2772. value="1048576"
  2773. c:identifier="GST_BUFFER_FLAG_LAST"
  2774. glib:nick="last">
  2775. <doc xml:space="preserve">additional media specific flags can be added starting from
  2776. this flag.</doc>
  2777. </member>
  2778. </bitfield>
  2779. <callback name="BufferForeachMetaFunc" c:type="GstBufferForeachMetaFunc">
  2780. <doc xml:space="preserve">A function that will be called from gst_buffer_foreach_meta(). The @meta
  2781. field will point to a the reference of the meta.
  2782. @buffer should not be modified from this callback.
  2783. When this function returns %TRUE, the next meta will be
  2784. returned. When %FALSE is returned, gst_buffer_foreach_meta() will return.
  2785. When @meta is set to %NULL, the item will be removed from the buffer.</doc>
  2786. <return-value transfer-ownership="none">
  2787. <doc xml:space="preserve">%FALSE when gst_buffer_foreach_meta() should stop</doc>
  2788. <type name="gboolean" c:type="gboolean"/>
  2789. </return-value>
  2790. <parameters>
  2791. <parameter name="buffer" transfer-ownership="none">
  2792. <doc xml:space="preserve">a #GstBuffer</doc>
  2793. <type name="Buffer" c:type="GstBuffer*"/>
  2794. </parameter>
  2795. <parameter name="meta"
  2796. direction="out"
  2797. caller-allocates="0"
  2798. transfer-ownership="full"
  2799. nullable="1">
  2800. <doc xml:space="preserve">a pointer to a #GstMeta</doc>
  2801. <type name="Meta" c:type="GstMeta**"/>
  2802. </parameter>
  2803. <parameter name="user_data"
  2804. transfer-ownership="none"
  2805. nullable="1"
  2806. allow-none="1"
  2807. closure="2">
  2808. <doc xml:space="preserve">user data passed to gst_buffer_foreach_meta()</doc>
  2809. <type name="gpointer" c:type="gpointer"/>
  2810. </parameter>
  2811. </parameters>
  2812. </callback>
  2813. <record name="BufferList"
  2814. c:type="GstBufferList"
  2815. glib:type-name="GstBufferList"
  2816. glib:get-type="gst_buffer_list_get_type"
  2817. c:symbol-prefix="buffer_list">
  2818. <doc xml:space="preserve">Buffer lists are an object containing a list of buffers.
  2819. Buffer lists are created with gst_buffer_list_new() and filled with data
  2820. using a gst_buffer_list_insert().
  2821. Buffer lists can be pushed on a srcpad with gst_pad_push_list(). This is
  2822. interesting when multiple buffers need to be pushed in one go because it
  2823. can reduce the amount of overhead for pushing each buffer individually.</doc>
  2824. <constructor name="new" c:identifier="gst_buffer_list_new">
  2825. <doc xml:space="preserve">Creates a new, empty #GstBufferList. The caller is responsible for unreffing
  2826. the returned #GstBufferList.
  2827. Free-function: gst_buffer_list_unref</doc>
  2828. <return-value transfer-ownership="full">
  2829. <doc xml:space="preserve">the new #GstBufferList. gst_buffer_list_unref()
  2830. after usage.</doc>
  2831. <type name="BufferList" c:type="GstBufferList*"/>
  2832. </return-value>
  2833. </constructor>
  2834. <constructor name="new_sized" c:identifier="gst_buffer_list_new_sized">
  2835. <doc xml:space="preserve">Creates a new, empty #GstBufferList. The caller is responsible for unreffing
  2836. the returned #GstBufferList. The list will have @size space preallocated so
  2837. that memory reallocations can be avoided.
  2838. Free-function: gst_buffer_list_unref</doc>
  2839. <return-value transfer-ownership="full">
  2840. <doc xml:space="preserve">the new #GstBufferList. gst_buffer_list_unref()
  2841. after usage.</doc>
  2842. <type name="BufferList" c:type="GstBufferList*"/>
  2843. </return-value>
  2844. <parameters>
  2845. <parameter name="size" transfer-ownership="none">
  2846. <doc xml:space="preserve">an initial reserved size</doc>
  2847. <type name="guint" c:type="guint"/>
  2848. </parameter>
  2849. </parameters>
  2850. </constructor>
  2851. <method name="copy_deep"
  2852. c:identifier="gst_buffer_list_copy_deep"
  2853. version="1.6">
  2854. <doc xml:space="preserve">Create a copy of the given buffer list. This will make a newly allocated
  2855. copy of the buffer that the source buffer list contains.</doc>
  2856. <return-value transfer-ownership="full">
  2857. <doc xml:space="preserve">a new copy of @list.</doc>
  2858. <type name="BufferList" c:type="GstBufferList*"/>
  2859. </return-value>
  2860. <parameters>
  2861. <instance-parameter name="list" transfer-ownership="none">
  2862. <doc xml:space="preserve">a #GstBufferList</doc>
  2863. <type name="BufferList" c:type="const GstBufferList*"/>
  2864. </instance-parameter>
  2865. </parameters>
  2866. </method>
  2867. <method name="foreach" c:identifier="gst_buffer_list_foreach">
  2868. <doc xml:space="preserve">Call @func with @data for each buffer in @list.
  2869. @func can modify the passed buffer pointer or its contents. The return value
  2870. of @func define if this function returns or if the remaining buffers in
  2871. the list should be skipped.</doc>
  2872. <return-value transfer-ownership="none">
  2873. <doc xml:space="preserve">%TRUE when @func returned %TRUE for each buffer in @list or when
  2874. @list is empty.</doc>
  2875. <type name="gboolean" c:type="gboolean"/>
  2876. </return-value>
  2877. <parameters>
  2878. <instance-parameter name="list" transfer-ownership="none">
  2879. <doc xml:space="preserve">a #GstBufferList</doc>
  2880. <type name="BufferList" c:type="GstBufferList*"/>
  2881. </instance-parameter>
  2882. <parameter name="func"
  2883. transfer-ownership="none"
  2884. scope="call"
  2885. closure="1">
  2886. <doc xml:space="preserve">a #GstBufferListFunc to call</doc>
  2887. <type name="BufferListFunc" c:type="GstBufferListFunc"/>
  2888. </parameter>
  2889. <parameter name="user_data"
  2890. transfer-ownership="none"
  2891. nullable="1"
  2892. allow-none="1">
  2893. <doc xml:space="preserve">user data passed to @func</doc>
  2894. <type name="gpointer" c:type="gpointer"/>
  2895. </parameter>
  2896. </parameters>
  2897. </method>
  2898. <method name="get" c:identifier="gst_buffer_list_get">
  2899. <doc xml:space="preserve">Get the buffer at @idx.</doc>
  2900. <return-value transfer-ownership="none" nullable="1">
  2901. <doc xml:space="preserve">the buffer at @idx in @group
  2902. or %NULL when there is no buffer. The buffer remains valid as
  2903. long as @list is valid and buffer is not removed from the list.</doc>
  2904. <type name="Buffer" c:type="GstBuffer*"/>
  2905. </return-value>
  2906. <parameters>
  2907. <instance-parameter name="list" transfer-ownership="none">
  2908. <doc xml:space="preserve">a #GstBufferList</doc>
  2909. <type name="BufferList" c:type="GstBufferList*"/>
  2910. </instance-parameter>
  2911. <parameter name="idx" transfer-ownership="none">
  2912. <doc xml:space="preserve">the index</doc>
  2913. <type name="guint" c:type="guint"/>
  2914. </parameter>
  2915. </parameters>
  2916. </method>
  2917. <method name="insert" c:identifier="gst_buffer_list_insert">
  2918. <doc xml:space="preserve">Insert @buffer at @idx in @list. Other buffers are moved to make room for
  2919. this new buffer.
  2920. A -1 value for @idx will append the buffer at the end.</doc>
  2921. <return-value transfer-ownership="none">
  2922. <type name="none" c:type="void"/>
  2923. </return-value>
  2924. <parameters>
  2925. <instance-parameter name="list" transfer-ownership="none">
  2926. <doc xml:space="preserve">a #GstBufferList</doc>
  2927. <type name="BufferList" c:type="GstBufferList*"/>
  2928. </instance-parameter>
  2929. <parameter name="idx" transfer-ownership="none">
  2930. <doc xml:space="preserve">the index</doc>
  2931. <type name="gint" c:type="gint"/>
  2932. </parameter>
  2933. <parameter name="buffer" transfer-ownership="full">
  2934. <doc xml:space="preserve">a #GstBuffer</doc>
  2935. <type name="Buffer" c:type="GstBuffer*"/>
  2936. </parameter>
  2937. </parameters>
  2938. </method>
  2939. <method name="length" c:identifier="gst_buffer_list_length">
  2940. <doc xml:space="preserve">Returns the number of buffers in @list.</doc>
  2941. <return-value transfer-ownership="none">
  2942. <doc xml:space="preserve">the number of buffers in the buffer list</doc>
  2943. <type name="guint" c:type="guint"/>
  2944. </return-value>
  2945. <parameters>
  2946. <instance-parameter name="list" transfer-ownership="none">
  2947. <doc xml:space="preserve">a #GstBufferList</doc>
  2948. <type name="BufferList" c:type="GstBufferList*"/>
  2949. </instance-parameter>
  2950. </parameters>
  2951. </method>
  2952. <method name="remove" c:identifier="gst_buffer_list_remove">
  2953. <doc xml:space="preserve">Remove @length buffers starting from @idx in @list. The following buffers
  2954. are moved to close the gap.</doc>
  2955. <return-value transfer-ownership="none">
  2956. <type name="none" c:type="void"/>
  2957. </return-value>
  2958. <parameters>
  2959. <instance-parameter name="list" transfer-ownership="none">
  2960. <doc xml:space="preserve">a #GstBufferList</doc>
  2961. <type name="BufferList" c:type="GstBufferList*"/>
  2962. </instance-parameter>
  2963. <parameter name="idx" transfer-ownership="none">
  2964. <doc xml:space="preserve">the index</doc>
  2965. <type name="guint" c:type="guint"/>
  2966. </parameter>
  2967. <parameter name="length" transfer-ownership="none">
  2968. <doc xml:space="preserve">the amount to remove</doc>
  2969. <type name="guint" c:type="guint"/>
  2970. </parameter>
  2971. </parameters>
  2972. </method>
  2973. </record>
  2974. <callback name="BufferListFunc" c:type="GstBufferListFunc">
  2975. <doc xml:space="preserve">A function that will be called from gst_buffer_list_foreach(). The @buffer
  2976. field will point to a the reference of the buffer at @idx.
  2977. When this function returns %TRUE, the next buffer will be
  2978. returned. When %FALSE is returned, gst_buffer_list_foreach() will return.
  2979. When @buffer is set to %NULL, the item will be removed from the bufferlist.
  2980. When @buffer has been made writable, the new buffer reference can be assigned
  2981. to @buffer. This function is responsible for unreffing the old buffer when
  2982. removing or modifying.</doc>
  2983. <return-value transfer-ownership="none">
  2984. <doc xml:space="preserve">%FALSE when gst_buffer_list_foreach() should stop</doc>
  2985. <type name="gboolean" c:type="gboolean"/>
  2986. </return-value>
  2987. <parameters>
  2988. <parameter name="buffer"
  2989. direction="out"
  2990. caller-allocates="0"
  2991. transfer-ownership="full"
  2992. nullable="1">
  2993. <doc xml:space="preserve">pointer the buffer</doc>
  2994. <type name="Buffer" c:type="GstBuffer**"/>
  2995. </parameter>
  2996. <parameter name="idx" transfer-ownership="none">
  2997. <doc xml:space="preserve">the index of @buffer</doc>
  2998. <type name="guint" c:type="guint"/>
  2999. </parameter>
  3000. <parameter name="user_data"
  3001. transfer-ownership="none"
  3002. nullable="1"
  3003. allow-none="1"
  3004. closure="2">
  3005. <doc xml:space="preserve">user data passed to gst_buffer_list_foreach()</doc>
  3006. <type name="gpointer" c:type="gpointer"/>
  3007. </parameter>
  3008. </parameters>
  3009. </callback>
  3010. <class name="BufferPool"
  3011. c:symbol-prefix="buffer_pool"
  3012. c:type="GstBufferPool"
  3013. parent="Object"
  3014. glib:type-name="GstBufferPool"
  3015. glib:get-type="gst_buffer_pool_get_type"
  3016. glib:type-struct="BufferPoolClass">
  3017. <doc xml:space="preserve">A #GstBufferPool is an object that can be used to pre-allocate and recycle
  3018. buffers of the same size and with the same properties.
  3019. A #GstBufferPool is created with gst_buffer_pool_new().
  3020. Once a pool is created, it needs to be configured. A call to
  3021. gst_buffer_pool_get_config() returns the current configuration structure from
  3022. the pool. With gst_buffer_pool_config_set_params() and
  3023. gst_buffer_pool_config_set_allocator() the bufferpool parameters and
  3024. allocator can be configured. Other properties can be configured in the pool
  3025. depending on the pool implementation.
  3026. A bufferpool can have extra options that can be enabled with
  3027. gst_buffer_pool_config_add_option(). The available options can be retrieved
  3028. with gst_buffer_pool_get_options(). Some options allow for additional
  3029. configuration properties to be set.
  3030. After the configuration structure has been configured,
  3031. gst_buffer_pool_set_config() updates the configuration in the pool. This can
  3032. fail when the configuration structure is not accepted.
  3033. After the a pool has been configured, it can be activated with
  3034. gst_buffer_pool_set_active(). This will preallocate the configured resources
  3035. in the pool.
  3036. When the pool is active, gst_buffer_pool_acquire_buffer() can be used to
  3037. retrieve a buffer from the pool.
  3038. Buffers allocated from a bufferpool will automatically be returned to the
  3039. pool with gst_buffer_pool_release_buffer() when their refcount drops to 0.
  3040. The bufferpool can be deactivated again with gst_buffer_pool_set_active().
  3041. All further gst_buffer_pool_acquire_buffer() calls will return an error. When
  3042. all buffers are returned to the pool they will be freed.
  3043. Use gst_object_unref() to release the reference to a bufferpool. If the
  3044. refcount of the pool reaches 0, the pool will be freed.</doc>
  3045. <constructor name="new" c:identifier="gst_buffer_pool_new">
  3046. <doc xml:space="preserve">Creates a new #GstBufferPool instance.</doc>
  3047. <return-value transfer-ownership="none">
  3048. <doc xml:space="preserve">a new #GstBufferPool instance</doc>
  3049. <type name="BufferPool" c:type="GstBufferPool*"/>
  3050. </return-value>
  3051. </constructor>
  3052. <function name="config_add_option"
  3053. c:identifier="gst_buffer_pool_config_add_option">
  3054. <doc xml:space="preserve">Enabled the option in @config. This will instruct the @bufferpool to enable
  3055. the specified option on the buffers that it allocates.
  3056. The supported options by @pool can be retrieved with gst_buffer_pool_get_options().</doc>
  3057. <return-value transfer-ownership="none">
  3058. <type name="none" c:type="void"/>
  3059. </return-value>
  3060. <parameters>
  3061. <parameter name="config" transfer-ownership="none">
  3062. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3063. <type name="Structure" c:type="GstStructure*"/>
  3064. </parameter>
  3065. <parameter name="option" transfer-ownership="none">
  3066. <doc xml:space="preserve">an option to add</doc>
  3067. <type name="utf8" c:type="const gchar*"/>
  3068. </parameter>
  3069. </parameters>
  3070. </function>
  3071. <function name="config_get_allocator"
  3072. c:identifier="gst_buffer_pool_config_get_allocator">
  3073. <doc xml:space="preserve">Get the @allocator and @params from @config.</doc>
  3074. <return-value transfer-ownership="none">
  3075. <doc xml:space="preserve">%TRUE, if the values are set.</doc>
  3076. <type name="gboolean" c:type="gboolean"/>
  3077. </return-value>
  3078. <parameters>
  3079. <parameter name="config" transfer-ownership="none">
  3080. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3081. <type name="Structure" c:type="GstStructure*"/>
  3082. </parameter>
  3083. <parameter name="allocator"
  3084. direction="out"
  3085. caller-allocates="0"
  3086. transfer-ownership="none"
  3087. optional="1"
  3088. allow-none="1">
  3089. <doc xml:space="preserve">a #GstAllocator, or %NULL</doc>
  3090. <type name="Allocator" c:type="GstAllocator**"/>
  3091. </parameter>
  3092. <parameter name="params"
  3093. direction="out"
  3094. caller-allocates="1"
  3095. transfer-ownership="none"
  3096. optional="1"
  3097. allow-none="1">
  3098. <doc xml:space="preserve">#GstAllocationParams, or %NULL</doc>
  3099. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  3100. </parameter>
  3101. </parameters>
  3102. </function>
  3103. <function name="config_get_option"
  3104. c:identifier="gst_buffer_pool_config_get_option">
  3105. <doc xml:space="preserve">Parse an available @config and get the option at @index of the options API
  3106. array.</doc>
  3107. <return-value transfer-ownership="none">
  3108. <doc xml:space="preserve">a #gchar of the option at @index.</doc>
  3109. <type name="utf8" c:type="const gchar*"/>
  3110. </return-value>
  3111. <parameters>
  3112. <parameter name="config" transfer-ownership="none">
  3113. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3114. <type name="Structure" c:type="GstStructure*"/>
  3115. </parameter>
  3116. <parameter name="index" transfer-ownership="none">
  3117. <doc xml:space="preserve">position in the option array to read</doc>
  3118. <type name="guint" c:type="guint"/>
  3119. </parameter>
  3120. </parameters>
  3121. </function>
  3122. <function name="config_get_params"
  3123. c:identifier="gst_buffer_pool_config_get_params">
  3124. <doc xml:space="preserve">Get the configuration values from @config.</doc>
  3125. <return-value transfer-ownership="none">
  3126. <doc xml:space="preserve">%TRUE if all parameters could be fetched.</doc>
  3127. <type name="gboolean" c:type="gboolean"/>
  3128. </return-value>
  3129. <parameters>
  3130. <parameter name="config" transfer-ownership="none">
  3131. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3132. <type name="Structure" c:type="GstStructure*"/>
  3133. </parameter>
  3134. <parameter name="caps"
  3135. direction="out"
  3136. caller-allocates="0"
  3137. transfer-ownership="none"
  3138. optional="1"
  3139. allow-none="1">
  3140. <doc xml:space="preserve">the caps of buffers</doc>
  3141. <type name="Caps" c:type="GstCaps**"/>
  3142. </parameter>
  3143. <parameter name="size"
  3144. direction="out"
  3145. caller-allocates="0"
  3146. transfer-ownership="full"
  3147. optional="1"
  3148. allow-none="1">
  3149. <doc xml:space="preserve">the size of each buffer, not including prefix and padding</doc>
  3150. <type name="guint" c:type="guint*"/>
  3151. </parameter>
  3152. <parameter name="min_buffers"
  3153. direction="out"
  3154. caller-allocates="0"
  3155. transfer-ownership="full"
  3156. optional="1"
  3157. allow-none="1">
  3158. <doc xml:space="preserve">the minimum amount of buffers to allocate.</doc>
  3159. <type name="guint" c:type="guint*"/>
  3160. </parameter>
  3161. <parameter name="max_buffers"
  3162. direction="out"
  3163. caller-allocates="0"
  3164. transfer-ownership="full"
  3165. optional="1"
  3166. allow-none="1">
  3167. <doc xml:space="preserve">the maximum amount of buffers to allocate or 0 for unlimited.</doc>
  3168. <type name="guint" c:type="guint*"/>
  3169. </parameter>
  3170. </parameters>
  3171. </function>
  3172. <function name="config_has_option"
  3173. c:identifier="gst_buffer_pool_config_has_option">
  3174. <doc xml:space="preserve">Check if @config contains @option.</doc>
  3175. <return-value transfer-ownership="none">
  3176. <doc xml:space="preserve">%TRUE if the options array contains @option.</doc>
  3177. <type name="gboolean" c:type="gboolean"/>
  3178. </return-value>
  3179. <parameters>
  3180. <parameter name="config" transfer-ownership="none">
  3181. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3182. <type name="Structure" c:type="GstStructure*"/>
  3183. </parameter>
  3184. <parameter name="option" transfer-ownership="none">
  3185. <doc xml:space="preserve">an option</doc>
  3186. <type name="utf8" c:type="const gchar*"/>
  3187. </parameter>
  3188. </parameters>
  3189. </function>
  3190. <function name="config_n_options"
  3191. c:identifier="gst_buffer_pool_config_n_options">
  3192. <doc xml:space="preserve">Retrieve the number of values currently stored in the options array of the
  3193. @config structure.</doc>
  3194. <return-value transfer-ownership="none">
  3195. <doc xml:space="preserve">the options array size as a #guint.</doc>
  3196. <type name="guint" c:type="guint"/>
  3197. </return-value>
  3198. <parameters>
  3199. <parameter name="config" transfer-ownership="none">
  3200. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3201. <type name="Structure" c:type="GstStructure*"/>
  3202. </parameter>
  3203. </parameters>
  3204. </function>
  3205. <function name="config_set_allocator"
  3206. c:identifier="gst_buffer_pool_config_set_allocator">
  3207. <doc xml:space="preserve">Set the @allocator and @params on @config.
  3208. One of @allocator and @params can be %NULL, but not both. When @allocator
  3209. is %NULL, the default allocator of the pool will use the values in @param
  3210. to perform its allocation. When @param is %NULL, the pool will use the
  3211. provided @allocator with its default #GstAllocationParams.
  3212. A call to gst_buffer_pool_set_config() can update the allocator and params
  3213. with the values that it is able to do. Some pools are, for example, not able
  3214. to operate with different allocators or cannot allocate with the values
  3215. specified in @params. Use gst_buffer_pool_get_config() to get the currently
  3216. used values.</doc>
  3217. <return-value transfer-ownership="none">
  3218. <type name="none" c:type="void"/>
  3219. </return-value>
  3220. <parameters>
  3221. <parameter name="config" transfer-ownership="none">
  3222. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3223. <type name="Structure" c:type="GstStructure*"/>
  3224. </parameter>
  3225. <parameter name="allocator"
  3226. transfer-ownership="none"
  3227. nullable="1"
  3228. allow-none="1">
  3229. <doc xml:space="preserve">a #GstAllocator</doc>
  3230. <type name="Allocator" c:type="GstAllocator*"/>
  3231. </parameter>
  3232. <parameter name="params"
  3233. transfer-ownership="none"
  3234. nullable="1"
  3235. allow-none="1">
  3236. <doc xml:space="preserve">#GstAllocationParams</doc>
  3237. <type name="AllocationParams" c:type="const GstAllocationParams*"/>
  3238. </parameter>
  3239. </parameters>
  3240. </function>
  3241. <function name="config_set_params"
  3242. c:identifier="gst_buffer_pool_config_set_params">
  3243. <doc xml:space="preserve">Configure @config with the given parameters.</doc>
  3244. <return-value transfer-ownership="none">
  3245. <type name="none" c:type="void"/>
  3246. </return-value>
  3247. <parameters>
  3248. <parameter name="config" transfer-ownership="none">
  3249. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3250. <type name="Structure" c:type="GstStructure*"/>
  3251. </parameter>
  3252. <parameter name="caps" transfer-ownership="none">
  3253. <doc xml:space="preserve">caps for the buffers</doc>
  3254. <type name="Caps" c:type="GstCaps*"/>
  3255. </parameter>
  3256. <parameter name="size" transfer-ownership="none">
  3257. <doc xml:space="preserve">the size of each buffer, not including prefix and padding</doc>
  3258. <type name="guint" c:type="guint"/>
  3259. </parameter>
  3260. <parameter name="min_buffers" transfer-ownership="none">
  3261. <doc xml:space="preserve">the minimum amount of buffers to allocate.</doc>
  3262. <type name="guint" c:type="guint"/>
  3263. </parameter>
  3264. <parameter name="max_buffers" transfer-ownership="none">
  3265. <doc xml:space="preserve">the maximum amount of buffers to allocate or 0 for unlimited.</doc>
  3266. <type name="guint" c:type="guint"/>
  3267. </parameter>
  3268. </parameters>
  3269. </function>
  3270. <function name="config_validate_params"
  3271. c:identifier="gst_buffer_pool_config_validate_params"
  3272. version="1.4">
  3273. <doc xml:space="preserve">Validate that changes made to @config are still valid in the context of the
  3274. expected parameters. This function is a helper that can be used to validate
  3275. changes made by a pool to a config when gst_buffer_pool_set_config()
  3276. returns %FALSE. This expects that @caps haven't changed and that
  3277. @min_buffers aren't lower then what we initially expected.
  3278. This does not check if options or allocator parameters are still valid,
  3279. won't check if size have changed, since changing the size is valid to adapt
  3280. padding.</doc>
  3281. <return-value transfer-ownership="none">
  3282. <doc xml:space="preserve">%TRUE, if the parameters are valid in this context.</doc>
  3283. <type name="gboolean" c:type="gboolean"/>
  3284. </return-value>
  3285. <parameters>
  3286. <parameter name="config" transfer-ownership="none">
  3287. <doc xml:space="preserve">a #GstBufferPool configuration</doc>
  3288. <type name="Structure" c:type="GstStructure*"/>
  3289. </parameter>
  3290. <parameter name="caps" transfer-ownership="none">
  3291. <doc xml:space="preserve">the excepted caps of buffers</doc>
  3292. <type name="Caps" c:type="GstCaps*"/>
  3293. </parameter>
  3294. <parameter name="size" transfer-ownership="none">
  3295. <doc xml:space="preserve">the expected size of each buffer, not including prefix and padding</doc>
  3296. <type name="guint" c:type="guint"/>
  3297. </parameter>
  3298. <parameter name="min_buffers" transfer-ownership="none">
  3299. <doc xml:space="preserve">the expected minimum amount of buffers to allocate.</doc>
  3300. <type name="guint" c:type="guint"/>
  3301. </parameter>
  3302. <parameter name="max_buffers" transfer-ownership="none">
  3303. <doc xml:space="preserve">the expect maximum amount of buffers to allocate or 0 for unlimited.</doc>
  3304. <type name="guint" c:type="guint"/>
  3305. </parameter>
  3306. </parameters>
  3307. </function>
  3308. <virtual-method name="acquire_buffer" invoker="acquire_buffer">
  3309. <doc xml:space="preserve">Acquire a buffer from @pool. @buffer should point to a memory location that
  3310. can hold a pointer to the new buffer.
  3311. @params can be %NULL or contain optional parameters to influence the
  3312. allocation.</doc>
  3313. <return-value transfer-ownership="none">
  3314. <doc xml:space="preserve">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is
  3315. inactive.</doc>
  3316. <type name="FlowReturn" c:type="GstFlowReturn"/>
  3317. </return-value>
  3318. <parameters>
  3319. <instance-parameter name="pool" transfer-ownership="none">
  3320. <doc xml:space="preserve">a #GstBufferPool</doc>
  3321. <type name="BufferPool" c:type="GstBufferPool*"/>
  3322. </instance-parameter>
  3323. <parameter name="buffer"
  3324. direction="out"
  3325. caller-allocates="0"
  3326. transfer-ownership="full">
  3327. <doc xml:space="preserve">a location for a #GstBuffer</doc>
  3328. <type name="Buffer" c:type="GstBuffer**"/>
  3329. </parameter>
  3330. <parameter name="params"
  3331. transfer-ownership="none"
  3332. nullable="1"
  3333. allow-none="1">
  3334. <doc xml:space="preserve">parameters.</doc>
  3335. <type name="BufferPoolAcquireParams"
  3336. c:type="GstBufferPoolAcquireParams*"/>
  3337. </parameter>
  3338. </parameters>
  3339. </virtual-method>
  3340. <virtual-method name="alloc_buffer">
  3341. <return-value transfer-ownership="none">
  3342. <type name="FlowReturn" c:type="GstFlowReturn"/>
  3343. </return-value>
  3344. <parameters>
  3345. <instance-parameter name="pool" transfer-ownership="none">
  3346. <type name="BufferPool" c:type="GstBufferPool*"/>
  3347. </instance-parameter>
  3348. <parameter name="buffer" transfer-ownership="none">
  3349. <type name="Buffer" c:type="GstBuffer**"/>
  3350. </parameter>
  3351. <parameter name="params" transfer-ownership="none">
  3352. <type name="BufferPoolAcquireParams"
  3353. c:type="GstBufferPoolAcquireParams*"/>
  3354. </parameter>
  3355. </parameters>
  3356. </virtual-method>
  3357. <virtual-method name="flush_start">
  3358. <return-value transfer-ownership="none">
  3359. <type name="none" c:type="void"/>
  3360. </return-value>
  3361. <parameters>
  3362. <instance-parameter name="pool" transfer-ownership="none">
  3363. <type name="BufferPool" c:type="GstBufferPool*"/>
  3364. </instance-parameter>
  3365. </parameters>
  3366. </virtual-method>
  3367. <virtual-method name="flush_stop">
  3368. <return-value transfer-ownership="none">
  3369. <type name="none" c:type="void"/>
  3370. </return-value>
  3371. <parameters>
  3372. <instance-parameter name="pool" transfer-ownership="none">
  3373. <type name="BufferPool" c:type="GstBufferPool*"/>
  3374. </instance-parameter>
  3375. </parameters>
  3376. </virtual-method>
  3377. <virtual-method name="free_buffer">
  3378. <return-value transfer-ownership="none">
  3379. <type name="none" c:type="void"/>
  3380. </return-value>
  3381. <parameters>
  3382. <instance-parameter name="pool" transfer-ownership="none">
  3383. <type name="BufferPool" c:type="GstBufferPool*"/>
  3384. </instance-parameter>
  3385. <parameter name="buffer" transfer-ownership="none">
  3386. <type name="Buffer" c:type="GstBuffer*"/>
  3387. </parameter>
  3388. </parameters>
  3389. </virtual-method>
  3390. <virtual-method name="get_options" invoker="get_options">
  3391. <doc xml:space="preserve">Get a %NULL terminated array of string with supported bufferpool options for
  3392. @pool. An option would typically be enabled with
  3393. gst_buffer_pool_config_add_option().</doc>
  3394. <return-value transfer-ownership="none">
  3395. <doc xml:space="preserve">a %NULL terminated array
  3396. of strings.</doc>
  3397. <array c:type="gchar**">
  3398. <type name="utf8"/>
  3399. </array>
  3400. </return-value>
  3401. <parameters>
  3402. <instance-parameter name="pool" transfer-ownership="none">
  3403. <doc xml:space="preserve">a #GstBufferPool</doc>
  3404. <type name="BufferPool" c:type="GstBufferPool*"/>
  3405. </instance-parameter>
  3406. </parameters>
  3407. </virtual-method>
  3408. <virtual-method name="release_buffer" invoker="release_buffer">
  3409. <doc xml:space="preserve">Release @buffer to @pool. @buffer should have previously been allocated from
  3410. @pool with gst_buffer_pool_acquire_buffer().
  3411. This function is usually called automatically when the last ref on @buffer
  3412. disappears.</doc>
  3413. <return-value transfer-ownership="none">
  3414. <type name="none" c:type="void"/>
  3415. </return-value>
  3416. <parameters>
  3417. <instance-parameter name="pool" transfer-ownership="none">
  3418. <doc xml:space="preserve">a #GstBufferPool</doc>
  3419. <type name="BufferPool" c:type="GstBufferPool*"/>
  3420. </instance-parameter>
  3421. <parameter name="buffer" transfer-ownership="full">
  3422. <doc xml:space="preserve">a #GstBuffer</doc>
  3423. <type name="Buffer" c:type="GstBuffer*"/>
  3424. </parameter>
  3425. </parameters>
  3426. </virtual-method>
  3427. <virtual-method name="reset_buffer">
  3428. <return-value transfer-ownership="none">
  3429. <type name="none" c:type="void"/>
  3430. </return-value>
  3431. <parameters>
  3432. <instance-parameter name="pool" transfer-ownership="none">
  3433. <type name="BufferPool" c:type="GstBufferPool*"/>
  3434. </instance-parameter>
  3435. <parameter name="buffer" transfer-ownership="none">
  3436. <type name="Buffer" c:type="GstBuffer*"/>
  3437. </parameter>
  3438. </parameters>
  3439. </virtual-method>
  3440. <virtual-method name="set_config" invoker="set_config">
  3441. <doc xml:space="preserve">Set the configuration of the pool. If the pool is already configured, and
  3442. the configuration haven't change, this function will return %TRUE. If the
  3443. pool is active, this method will return %FALSE and active configuration
  3444. will remain. Buffers allocated form this pool must be returned or else this
  3445. function will do nothing and return %FALSE.
  3446. @config is a #GstStructure that contains the configuration parameters for
  3447. the pool. A default and mandatory set of parameters can be configured with
  3448. gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator()
  3449. and gst_buffer_pool_config_add_option().
  3450. If the parameters in @config can not be set exactly, this function returns
  3451. %FALSE and will try to update as much state as possible. The new state can
  3452. then be retrieved and refined with gst_buffer_pool_get_config().
  3453. This function takes ownership of @config.</doc>
  3454. <return-value transfer-ownership="none">
  3455. <doc xml:space="preserve">%TRUE when the configuration could be set.</doc>
  3456. <type name="gboolean" c:type="gboolean"/>
  3457. </return-value>
  3458. <parameters>
  3459. <instance-parameter name="pool" transfer-ownership="none">
  3460. <doc xml:space="preserve">a #GstBufferPool</doc>
  3461. <type name="BufferPool" c:type="GstBufferPool*"/>
  3462. </instance-parameter>
  3463. <parameter name="config" transfer-ownership="full">
  3464. <doc xml:space="preserve">a #GstStructure</doc>
  3465. <type name="Structure" c:type="GstStructure*"/>
  3466. </parameter>
  3467. </parameters>
  3468. </virtual-method>
  3469. <virtual-method name="start">
  3470. <return-value transfer-ownership="none">
  3471. <type name="gboolean" c:type="gboolean"/>
  3472. </return-value>
  3473. <parameters>
  3474. <instance-parameter name="pool" transfer-ownership="none">
  3475. <type name="BufferPool" c:type="GstBufferPool*"/>
  3476. </instance-parameter>
  3477. </parameters>
  3478. </virtual-method>
  3479. <virtual-method name="stop">
  3480. <return-value transfer-ownership="none">
  3481. <type name="gboolean" c:type="gboolean"/>
  3482. </return-value>
  3483. <parameters>
  3484. <instance-parameter name="pool" transfer-ownership="none">
  3485. <type name="BufferPool" c:type="GstBufferPool*"/>
  3486. </instance-parameter>
  3487. </parameters>
  3488. </virtual-method>
  3489. <method name="acquire_buffer"
  3490. c:identifier="gst_buffer_pool_acquire_buffer">
  3491. <doc xml:space="preserve">Acquire a buffer from @pool. @buffer should point to a memory location that
  3492. can hold a pointer to the new buffer.
  3493. @params can be %NULL or contain optional parameters to influence the
  3494. allocation.</doc>
  3495. <return-value transfer-ownership="none">
  3496. <doc xml:space="preserve">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is
  3497. inactive.</doc>
  3498. <type name="FlowReturn" c:type="GstFlowReturn"/>
  3499. </return-value>
  3500. <parameters>
  3501. <instance-parameter name="pool" transfer-ownership="none">
  3502. <doc xml:space="preserve">a #GstBufferPool</doc>
  3503. <type name="BufferPool" c:type="GstBufferPool*"/>
  3504. </instance-parameter>
  3505. <parameter name="buffer"
  3506. direction="out"
  3507. caller-allocates="0"
  3508. transfer-ownership="full">
  3509. <doc xml:space="preserve">a location for a #GstBuffer</doc>
  3510. <type name="Buffer" c:type="GstBuffer**"/>
  3511. </parameter>
  3512. <parameter name="params"
  3513. transfer-ownership="none"
  3514. nullable="1"
  3515. allow-none="1">
  3516. <doc xml:space="preserve">parameters.</doc>
  3517. <type name="BufferPoolAcquireParams"
  3518. c:type="GstBufferPoolAcquireParams*"/>
  3519. </parameter>
  3520. </parameters>
  3521. </method>
  3522. <method name="get_config" c:identifier="gst_buffer_pool_get_config">
  3523. <doc xml:space="preserve">Get a copy of the current configuration of the pool. This configuration
  3524. can either be modified and used for the gst_buffer_pool_set_config() call
  3525. or it must be freed after usage.</doc>
  3526. <return-value transfer-ownership="full">
  3527. <doc xml:space="preserve">a copy of the current configuration of @pool. use
  3528. gst_structure_free() after usage or gst_buffer_pool_set_config().</doc>
  3529. <type name="Structure" c:type="GstStructure*"/>
  3530. </return-value>
  3531. <parameters>
  3532. <instance-parameter name="pool" transfer-ownership="none">
  3533. <doc xml:space="preserve">a #GstBufferPool</doc>
  3534. <type name="BufferPool" c:type="GstBufferPool*"/>
  3535. </instance-parameter>
  3536. </parameters>
  3537. </method>
  3538. <method name="get_options" c:identifier="gst_buffer_pool_get_options">
  3539. <doc xml:space="preserve">Get a %NULL terminated array of string with supported bufferpool options for
  3540. @pool. An option would typically be enabled with
  3541. gst_buffer_pool_config_add_option().</doc>
  3542. <return-value transfer-ownership="none">
  3543. <doc xml:space="preserve">a %NULL terminated array
  3544. of strings.</doc>
  3545. <array c:type="gchar**">
  3546. <type name="utf8"/>
  3547. </array>
  3548. </return-value>
  3549. <parameters>
  3550. <instance-parameter name="pool" transfer-ownership="none">
  3551. <doc xml:space="preserve">a #GstBufferPool</doc>
  3552. <type name="BufferPool" c:type="GstBufferPool*"/>
  3553. </instance-parameter>
  3554. </parameters>
  3555. </method>
  3556. <method name="has_option" c:identifier="gst_buffer_pool_has_option">
  3557. <doc xml:space="preserve">Check if the bufferpool supports @option.</doc>
  3558. <return-value transfer-ownership="none">
  3559. <doc xml:space="preserve">%TRUE if the buffer pool contains @option.</doc>
  3560. <type name="gboolean" c:type="gboolean"/>
  3561. </return-value>
  3562. <parameters>
  3563. <instance-parameter name="pool" transfer-ownership="none">
  3564. <doc xml:space="preserve">a #GstBufferPool</doc>
  3565. <type name="BufferPool" c:type="GstBufferPool*"/>
  3566. </instance-parameter>
  3567. <parameter name="option" transfer-ownership="none">
  3568. <doc xml:space="preserve">an option</doc>
  3569. <type name="utf8" c:type="const gchar*"/>
  3570. </parameter>
  3571. </parameters>
  3572. </method>
  3573. <method name="is_active" c:identifier="gst_buffer_pool_is_active">
  3574. <doc xml:space="preserve">Check if @pool is active. A pool can be activated with the
  3575. gst_buffer_pool_set_active() call.</doc>
  3576. <return-value transfer-ownership="none">
  3577. <doc xml:space="preserve">%TRUE when the pool is active.</doc>
  3578. <type name="gboolean" c:type="gboolean"/>
  3579. </return-value>
  3580. <parameters>
  3581. <instance-parameter name="pool" transfer-ownership="none">
  3582. <doc xml:space="preserve">a #GstBufferPool</doc>
  3583. <type name="BufferPool" c:type="GstBufferPool*"/>
  3584. </instance-parameter>
  3585. </parameters>
  3586. </method>
  3587. <method name="release_buffer"
  3588. c:identifier="gst_buffer_pool_release_buffer">
  3589. <doc xml:space="preserve">Release @buffer to @pool. @buffer should have previously been allocated from
  3590. @pool with gst_buffer_pool_acquire_buffer().
  3591. This function is usually called automatically when the last ref on @buffer
  3592. disappears.</doc>
  3593. <return-value transfer-ownership="none">
  3594. <type name="none" c:type="void"/>
  3595. </return-value>
  3596. <parameters>
  3597. <instance-parameter name="pool" transfer-ownership="none">
  3598. <doc xml:space="preserve">a #GstBufferPool</doc>
  3599. <type name="BufferPool" c:type="GstBufferPool*"/>
  3600. </instance-parameter>
  3601. <parameter name="buffer" transfer-ownership="full">
  3602. <doc xml:space="preserve">a #GstBuffer</doc>
  3603. <type name="Buffer" c:type="GstBuffer*"/>
  3604. </parameter>
  3605. </parameters>
  3606. </method>
  3607. <method name="set_active" c:identifier="gst_buffer_pool_set_active">
  3608. <doc xml:space="preserve">Control the active state of @pool. When the pool is inactive, new calls to
  3609. gst_buffer_pool_acquire_buffer() will return with %GST_FLOW_FLUSHING.
  3610. Activating the bufferpool will preallocate all resources in the pool based on
  3611. the configuration of the pool.
  3612. Deactivating will free the resources again when there are no outstanding
  3613. buffers. When there are outstanding buffers, they will be freed as soon as
  3614. they are all returned to the pool.</doc>
  3615. <return-value transfer-ownership="none">
  3616. <doc xml:space="preserve">%FALSE when the pool was not configured or when preallocation of the
  3617. buffers failed.</doc>
  3618. <type name="gboolean" c:type="gboolean"/>
  3619. </return-value>
  3620. <parameters>
  3621. <instance-parameter name="pool" transfer-ownership="none">
  3622. <doc xml:space="preserve">a #GstBufferPool</doc>
  3623. <type name="BufferPool" c:type="GstBufferPool*"/>
  3624. </instance-parameter>
  3625. <parameter name="active" transfer-ownership="none">
  3626. <doc xml:space="preserve">the new active state</doc>
  3627. <type name="gboolean" c:type="gboolean"/>
  3628. </parameter>
  3629. </parameters>
  3630. </method>
  3631. <method name="set_config" c:identifier="gst_buffer_pool_set_config">
  3632. <doc xml:space="preserve">Set the configuration of the pool. If the pool is already configured, and
  3633. the configuration haven't change, this function will return %TRUE. If the
  3634. pool is active, this method will return %FALSE and active configuration
  3635. will remain. Buffers allocated form this pool must be returned or else this
  3636. function will do nothing and return %FALSE.
  3637. @config is a #GstStructure that contains the configuration parameters for
  3638. the pool. A default and mandatory set of parameters can be configured with
  3639. gst_buffer_pool_config_set_params(), gst_buffer_pool_config_set_allocator()
  3640. and gst_buffer_pool_config_add_option().
  3641. If the parameters in @config can not be set exactly, this function returns
  3642. %FALSE and will try to update as much state as possible. The new state can
  3643. then be retrieved and refined with gst_buffer_pool_get_config().
  3644. This function takes ownership of @config.</doc>
  3645. <return-value transfer-ownership="none">
  3646. <doc xml:space="preserve">%TRUE when the configuration could be set.</doc>
  3647. <type name="gboolean" c:type="gboolean"/>
  3648. </return-value>
  3649. <parameters>
  3650. <instance-parameter name="pool" transfer-ownership="none">
  3651. <doc xml:space="preserve">a #GstBufferPool</doc>
  3652. <type name="BufferPool" c:type="GstBufferPool*"/>
  3653. </instance-parameter>
  3654. <parameter name="config" transfer-ownership="full">
  3655. <doc xml:space="preserve">a #GstStructure</doc>
  3656. <type name="Structure" c:type="GstStructure*"/>
  3657. </parameter>
  3658. </parameters>
  3659. </method>
  3660. <method name="set_flushing"
  3661. c:identifier="gst_buffer_pool_set_flushing"
  3662. version="1.4">
  3663. <doc xml:space="preserve">Enable or disable the flushing state of a @pool without freeing or
  3664. allocating buffers.</doc>
  3665. <return-value transfer-ownership="none">
  3666. <type name="none" c:type="void"/>
  3667. </return-value>
  3668. <parameters>
  3669. <instance-parameter name="pool" transfer-ownership="none">
  3670. <doc xml:space="preserve">a #GstBufferPool</doc>
  3671. <type name="BufferPool" c:type="GstBufferPool*"/>
  3672. </instance-parameter>
  3673. <parameter name="flushing" transfer-ownership="none">
  3674. <doc xml:space="preserve">whether to start or stop flushing</doc>
  3675. <type name="gboolean" c:type="gboolean"/>
  3676. </parameter>
  3677. </parameters>
  3678. </method>
  3679. <field name="object">
  3680. <type name="Object" c:type="GstObject"/>
  3681. </field>
  3682. <field name="flushing">
  3683. <type name="gint" c:type="gint"/>
  3684. </field>
  3685. <field name="priv" readable="0" private="1">
  3686. <type name="BufferPoolPrivate" c:type="GstBufferPoolPrivate*"/>
  3687. </field>
  3688. <field name="_gst_reserved" readable="0" private="1">
  3689. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  3690. <type name="gpointer" c:type="gpointer"/>
  3691. </array>
  3692. </field>
  3693. </class>
  3694. <bitfield name="BufferPoolAcquireFlags"
  3695. glib:type-name="GstBufferPoolAcquireFlags"
  3696. glib:get-type="gst_buffer_pool_acquire_flags_get_type"
  3697. c:type="GstBufferPoolAcquireFlags">
  3698. <doc xml:space="preserve">Additional flags to control the allocation of a buffer</doc>
  3699. <member name="none"
  3700. value="0"
  3701. c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_NONE"
  3702. glib:nick="none">
  3703. <doc xml:space="preserve">no flags</doc>
  3704. </member>
  3705. <member name="key_unit"
  3706. value="1"
  3707. c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_KEY_UNIT"
  3708. glib:nick="key-unit">
  3709. <doc xml:space="preserve">buffer is keyframe</doc>
  3710. </member>
  3711. <member name="dontwait"
  3712. value="2"
  3713. c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_DONTWAIT"
  3714. glib:nick="dontwait">
  3715. <doc xml:space="preserve">when the bufferpool is empty, acquire_buffer
  3716. will by default block until a buffer is released into the pool again. Setting
  3717. this flag makes acquire_buffer return #GST_FLOW_EOS instead of blocking.</doc>
  3718. </member>
  3719. <member name="discont"
  3720. value="4"
  3721. c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_DISCONT"
  3722. glib:nick="discont">
  3723. <doc xml:space="preserve">buffer is discont</doc>
  3724. </member>
  3725. <member name="last"
  3726. value="65536"
  3727. c:identifier="GST_BUFFER_POOL_ACQUIRE_FLAG_LAST"
  3728. glib:nick="last">
  3729. <doc xml:space="preserve">last flag, subclasses can use private flags
  3730. starting from this value.</doc>
  3731. </member>
  3732. </bitfield>
  3733. <record name="BufferPoolAcquireParams" c:type="GstBufferPoolAcquireParams">
  3734. <doc xml:space="preserve">Parameters passed to the gst_buffer_pool_acquire_buffer() function to control the
  3735. allocation of the buffer.
  3736. The default implementation ignores the @start and @stop members but other
  3737. implementations can use this extra information to decide what buffer to
  3738. return.</doc>
  3739. <field name="format" writable="1">
  3740. <doc xml:space="preserve">the format of @start and @stop</doc>
  3741. <type name="Format" c:type="GstFormat"/>
  3742. </field>
  3743. <field name="start" writable="1">
  3744. <doc xml:space="preserve">the start position</doc>
  3745. <type name="gint64" c:type="gint64"/>
  3746. </field>
  3747. <field name="stop" writable="1">
  3748. <doc xml:space="preserve">the stop position</doc>
  3749. <type name="gint64" c:type="gint64"/>
  3750. </field>
  3751. <field name="flags" writable="1">
  3752. <doc xml:space="preserve">additional flags</doc>
  3753. <type name="BufferPoolAcquireFlags"
  3754. c:type="GstBufferPoolAcquireFlags"/>
  3755. </field>
  3756. <field name="_gst_reserved" readable="0" private="1">
  3757. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  3758. <type name="gpointer" c:type="gpointer"/>
  3759. </array>
  3760. </field>
  3761. </record>
  3762. <record name="BufferPoolClass"
  3763. c:type="GstBufferPoolClass"
  3764. glib:is-gtype-struct-for="BufferPool">
  3765. <doc xml:space="preserve">The GstBufferPool class.</doc>
  3766. <field name="object_class">
  3767. <doc xml:space="preserve">Object parent class</doc>
  3768. <type name="ObjectClass" c:type="GstObjectClass"/>
  3769. </field>
  3770. <field name="get_options">
  3771. <callback name="get_options">
  3772. <return-value transfer-ownership="none">
  3773. <doc xml:space="preserve">a %NULL terminated array
  3774. of strings.</doc>
  3775. <array c:type="gchar**">
  3776. <type name="utf8"/>
  3777. </array>
  3778. </return-value>
  3779. <parameters>
  3780. <parameter name="pool" transfer-ownership="none">
  3781. <doc xml:space="preserve">a #GstBufferPool</doc>
  3782. <type name="BufferPool" c:type="GstBufferPool*"/>
  3783. </parameter>
  3784. </parameters>
  3785. </callback>
  3786. </field>
  3787. <field name="set_config">
  3788. <callback name="set_config">
  3789. <return-value transfer-ownership="none">
  3790. <doc xml:space="preserve">%TRUE when the configuration could be set.</doc>
  3791. <type name="gboolean" c:type="gboolean"/>
  3792. </return-value>
  3793. <parameters>
  3794. <parameter name="pool" transfer-ownership="none">
  3795. <doc xml:space="preserve">a #GstBufferPool</doc>
  3796. <type name="BufferPool" c:type="GstBufferPool*"/>
  3797. </parameter>
  3798. <parameter name="config" transfer-ownership="full">
  3799. <doc xml:space="preserve">a #GstStructure</doc>
  3800. <type name="Structure" c:type="GstStructure*"/>
  3801. </parameter>
  3802. </parameters>
  3803. </callback>
  3804. </field>
  3805. <field name="start">
  3806. <callback name="start">
  3807. <return-value transfer-ownership="none">
  3808. <type name="gboolean" c:type="gboolean"/>
  3809. </return-value>
  3810. <parameters>
  3811. <parameter name="pool" transfer-ownership="none">
  3812. <type name="BufferPool" c:type="GstBufferPool*"/>
  3813. </parameter>
  3814. </parameters>
  3815. </callback>
  3816. </field>
  3817. <field name="stop">
  3818. <callback name="stop">
  3819. <return-value transfer-ownership="none">
  3820. <type name="gboolean" c:type="gboolean"/>
  3821. </return-value>
  3822. <parameters>
  3823. <parameter name="pool" transfer-ownership="none">
  3824. <type name="BufferPool" c:type="GstBufferPool*"/>
  3825. </parameter>
  3826. </parameters>
  3827. </callback>
  3828. </field>
  3829. <field name="acquire_buffer">
  3830. <callback name="acquire_buffer">
  3831. <return-value transfer-ownership="none">
  3832. <doc xml:space="preserve">a #GstFlowReturn such as %GST_FLOW_FLUSHING when the pool is
  3833. inactive.</doc>
  3834. <type name="FlowReturn" c:type="GstFlowReturn"/>
  3835. </return-value>
  3836. <parameters>
  3837. <parameter name="pool" transfer-ownership="none">
  3838. <doc xml:space="preserve">a #GstBufferPool</doc>
  3839. <type name="BufferPool" c:type="GstBufferPool*"/>
  3840. </parameter>
  3841. <parameter name="buffer"
  3842. direction="out"
  3843. caller-allocates="0"
  3844. transfer-ownership="full">
  3845. <doc xml:space="preserve">a location for a #GstBuffer</doc>
  3846. <type name="Buffer" c:type="GstBuffer**"/>
  3847. </parameter>
  3848. <parameter name="params"
  3849. transfer-ownership="none"
  3850. nullable="1"
  3851. allow-none="1">
  3852. <doc xml:space="preserve">parameters.</doc>
  3853. <type name="BufferPoolAcquireParams"
  3854. c:type="GstBufferPoolAcquireParams*"/>
  3855. </parameter>
  3856. </parameters>
  3857. </callback>
  3858. </field>
  3859. <field name="alloc_buffer">
  3860. <callback name="alloc_buffer">
  3861. <return-value transfer-ownership="none">
  3862. <type name="FlowReturn" c:type="GstFlowReturn"/>
  3863. </return-value>
  3864. <parameters>
  3865. <parameter name="pool" transfer-ownership="none">
  3866. <type name="BufferPool" c:type="GstBufferPool*"/>
  3867. </parameter>
  3868. <parameter name="buffer" transfer-ownership="none">
  3869. <type name="Buffer" c:type="GstBuffer**"/>
  3870. </parameter>
  3871. <parameter name="params" transfer-ownership="none">
  3872. <type name="BufferPoolAcquireParams"
  3873. c:type="GstBufferPoolAcquireParams*"/>
  3874. </parameter>
  3875. </parameters>
  3876. </callback>
  3877. </field>
  3878. <field name="reset_buffer">
  3879. <callback name="reset_buffer">
  3880. <return-value transfer-ownership="none">
  3881. <type name="none" c:type="void"/>
  3882. </return-value>
  3883. <parameters>
  3884. <parameter name="pool" transfer-ownership="none">
  3885. <type name="BufferPool" c:type="GstBufferPool*"/>
  3886. </parameter>
  3887. <parameter name="buffer" transfer-ownership="none">
  3888. <type name="Buffer" c:type="GstBuffer*"/>
  3889. </parameter>
  3890. </parameters>
  3891. </callback>
  3892. </field>
  3893. <field name="release_buffer">
  3894. <callback name="release_buffer">
  3895. <return-value transfer-ownership="none">
  3896. <type name="none" c:type="void"/>
  3897. </return-value>
  3898. <parameters>
  3899. <parameter name="pool" transfer-ownership="none">
  3900. <doc xml:space="preserve">a #GstBufferPool</doc>
  3901. <type name="BufferPool" c:type="GstBufferPool*"/>
  3902. </parameter>
  3903. <parameter name="buffer" transfer-ownership="full">
  3904. <doc xml:space="preserve">a #GstBuffer</doc>
  3905. <type name="Buffer" c:type="GstBuffer*"/>
  3906. </parameter>
  3907. </parameters>
  3908. </callback>
  3909. </field>
  3910. <field name="free_buffer">
  3911. <callback name="free_buffer">
  3912. <return-value transfer-ownership="none">
  3913. <type name="none" c:type="void"/>
  3914. </return-value>
  3915. <parameters>
  3916. <parameter name="pool" transfer-ownership="none">
  3917. <type name="BufferPool" c:type="GstBufferPool*"/>
  3918. </parameter>
  3919. <parameter name="buffer" transfer-ownership="none">
  3920. <type name="Buffer" c:type="GstBuffer*"/>
  3921. </parameter>
  3922. </parameters>
  3923. </callback>
  3924. </field>
  3925. <field name="flush_start">
  3926. <callback name="flush_start">
  3927. <return-value transfer-ownership="none">
  3928. <type name="none" c:type="void"/>
  3929. </return-value>
  3930. <parameters>
  3931. <parameter name="pool" transfer-ownership="none">
  3932. <type name="BufferPool" c:type="GstBufferPool*"/>
  3933. </parameter>
  3934. </parameters>
  3935. </callback>
  3936. </field>
  3937. <field name="flush_stop">
  3938. <callback name="flush_stop">
  3939. <return-value transfer-ownership="none">
  3940. <type name="none" c:type="void"/>
  3941. </return-value>
  3942. <parameters>
  3943. <parameter name="pool" transfer-ownership="none">
  3944. <type name="BufferPool" c:type="GstBufferPool*"/>
  3945. </parameter>
  3946. </parameters>
  3947. </callback>
  3948. </field>
  3949. <field name="_gst_reserved" readable="0" private="1">
  3950. <array zero-terminated="0" c:type="gpointer" fixed-size="2">
  3951. <type name="gpointer" c:type="gpointer"/>
  3952. </array>
  3953. </field>
  3954. </record>
  3955. <record name="BufferPoolPrivate"
  3956. c:type="GstBufferPoolPrivate"
  3957. disguised="1">
  3958. </record>
  3959. <enumeration name="BufferingMode"
  3960. glib:type-name="GstBufferingMode"
  3961. glib:get-type="gst_buffering_mode_get_type"
  3962. c:type="GstBufferingMode">
  3963. <doc xml:space="preserve">The different types of buffering methods.</doc>
  3964. <member name="stream"
  3965. value="0"
  3966. c:identifier="GST_BUFFERING_STREAM"
  3967. glib:nick="stream">
  3968. <doc xml:space="preserve">a small amount of data is buffered</doc>
  3969. </member>
  3970. <member name="download"
  3971. value="1"
  3972. c:identifier="GST_BUFFERING_DOWNLOAD"
  3973. glib:nick="download">
  3974. <doc xml:space="preserve">the stream is being downloaded</doc>
  3975. </member>
  3976. <member name="timeshift"
  3977. value="2"
  3978. c:identifier="GST_BUFFERING_TIMESHIFT"
  3979. glib:nick="timeshift">
  3980. <doc xml:space="preserve">the stream is being downloaded in a ringbuffer</doc>
  3981. </member>
  3982. <member name="live"
  3983. value="3"
  3984. c:identifier="GST_BUFFERING_LIVE"
  3985. glib:nick="live">
  3986. <doc xml:space="preserve">the stream is a live stream</doc>
  3987. </member>
  3988. </enumeration>
  3989. <class name="Bus"
  3990. c:symbol-prefix="bus"
  3991. c:type="GstBus"
  3992. parent="Object"
  3993. glib:type-name="GstBus"
  3994. glib:get-type="gst_bus_get_type"
  3995. glib:type-struct="BusClass">
  3996. <doc xml:space="preserve">The #GstBus is an object responsible for delivering #GstMessage packets in
  3997. a first-in first-out way from the streaming threads (see #GstTask) to the
  3998. application.
  3999. Since the application typically only wants to deal with delivery of these
  4000. messages from one thread, the GstBus will marshall the messages between
  4001. different threads. This is important since the actual streaming of media
  4002. is done in another thread than the application.
  4003. The GstBus provides support for #GSource based notifications. This makes it
  4004. possible to handle the delivery in the glib mainloop.
  4005. The #GSource callback function gst_bus_async_signal_func() can be used to
  4006. convert all bus messages into signal emissions.
  4007. A message is posted on the bus with the gst_bus_post() method. With the
  4008. gst_bus_peek() and gst_bus_pop() methods one can look at or retrieve a
  4009. previously posted message.
  4010. The bus can be polled with the gst_bus_poll() method. This methods blocks
  4011. up to the specified timeout value until one of the specified messages types
  4012. is posted on the bus. The application can then gst_bus_pop() the messages
  4013. from the bus to handle them.
  4014. Alternatively the application can register an asynchronous bus function
  4015. using gst_bus_add_watch_full() or gst_bus_add_watch(). This function will
  4016. install a #GSource in the default glib main loop and will deliver messages
  4017. a short while after they have been posted. Note that the main loop should
  4018. be running for the asynchronous callbacks.
  4019. It is also possible to get messages from the bus without any thread
  4020. marshalling with the gst_bus_set_sync_handler() method. This makes it
  4021. possible to react to a message in the same thread that posted the
  4022. message on the bus. This should only be used if the application is able
  4023. to deal with messages from different threads.
  4024. Every #GstPipeline has one bus.
  4025. Note that a #GstPipeline will set its bus into flushing state when changing
  4026. from READY to NULL state.</doc>
  4027. <constructor name="new" c:identifier="gst_bus_new">
  4028. <doc xml:space="preserve">Creates a new #GstBus instance.</doc>
  4029. <return-value transfer-ownership="full">
  4030. <doc xml:space="preserve">a new #GstBus instance</doc>
  4031. <type name="Bus" c:type="GstBus*"/>
  4032. </return-value>
  4033. </constructor>
  4034. <virtual-method name="message">
  4035. <return-value transfer-ownership="none">
  4036. <type name="none" c:type="void"/>
  4037. </return-value>
  4038. <parameters>
  4039. <instance-parameter name="bus" transfer-ownership="none">
  4040. <type name="Bus" c:type="GstBus*"/>
  4041. </instance-parameter>
  4042. <parameter name="message" transfer-ownership="none">
  4043. <type name="Message" c:type="GstMessage*"/>
  4044. </parameter>
  4045. </parameters>
  4046. </virtual-method>
  4047. <virtual-method name="sync_message">
  4048. <return-value transfer-ownership="none">
  4049. <type name="none" c:type="void"/>
  4050. </return-value>
  4051. <parameters>
  4052. <instance-parameter name="bus" transfer-ownership="none">
  4053. <type name="Bus" c:type="GstBus*"/>
  4054. </instance-parameter>
  4055. <parameter name="message" transfer-ownership="none">
  4056. <type name="Message" c:type="GstMessage*"/>
  4057. </parameter>
  4058. </parameters>
  4059. </virtual-method>
  4060. <method name="add_signal_watch" c:identifier="gst_bus_add_signal_watch">
  4061. <doc xml:space="preserve">Adds a bus signal watch to the default main context with the default priority
  4062. (%G_PRIORITY_DEFAULT). It is also possible to use a non-default
  4063. main context set up using g_main_context_push_thread_default() (before
  4064. one had to create a bus watch source and attach it to the desired main
  4065. context 'manually').
  4066. After calling this statement, the bus will emit the "message" signal for each
  4067. message posted on the bus.
  4068. This function may be called multiple times. To clean up, the caller is
  4069. responsible for calling gst_bus_remove_signal_watch() as many times as this
  4070. function is called.
  4071. MT safe.</doc>
  4072. <return-value transfer-ownership="none">
  4073. <type name="none" c:type="void"/>
  4074. </return-value>
  4075. <parameters>
  4076. <instance-parameter name="bus" transfer-ownership="none">
  4077. <doc xml:space="preserve">a #GstBus on which you want to receive the "message" signal</doc>
  4078. <type name="Bus" c:type="GstBus*"/>
  4079. </instance-parameter>
  4080. </parameters>
  4081. </method>
  4082. <method name="add_signal_watch_full"
  4083. c:identifier="gst_bus_add_signal_watch_full">
  4084. <doc xml:space="preserve">Adds a bus signal watch to the default main context with the given @priority
  4085. (e.g. %G_PRIORITY_DEFAULT). It is also possible to use a non-default main
  4086. context set up using g_main_context_push_thread_default()
  4087. (before one had to create a bus watch source and attach it to the desired
  4088. main context 'manually').
  4089. After calling this statement, the bus will emit the "message" signal for each
  4090. message posted on the bus when the main loop is running.
  4091. This function may be called multiple times. To clean up, the caller is
  4092. responsible for calling gst_bus_remove_signal_watch() as many times as this
  4093. function is called.
  4094. There can only be a single bus watch per bus, you must remove any signal
  4095. watch before you can set another type of watch.
  4096. MT safe.</doc>
  4097. <return-value transfer-ownership="none">
  4098. <type name="none" c:type="void"/>
  4099. </return-value>
  4100. <parameters>
  4101. <instance-parameter name="bus" transfer-ownership="none">
  4102. <doc xml:space="preserve">a #GstBus on which you want to receive the "message" signal</doc>
  4103. <type name="Bus" c:type="GstBus*"/>
  4104. </instance-parameter>
  4105. <parameter name="priority" transfer-ownership="none">
  4106. <doc xml:space="preserve">The priority of the watch.</doc>
  4107. <type name="gint" c:type="gint"/>
  4108. </parameter>
  4109. </parameters>
  4110. </method>
  4111. <method name="add_watch"
  4112. c:identifier="gst_bus_add_watch"
  4113. shadowed-by="add_watch_full"
  4114. introspectable="0">
  4115. <doc xml:space="preserve">Adds a bus watch to the default main context with the default priority
  4116. (%G_PRIORITY_DEFAULT). It is also possible to use a non-default main
  4117. context set up using g_main_context_push_thread_default() (before
  4118. one had to create a bus watch source and attach it to the desired main
  4119. context 'manually').
  4120. This function is used to receive asynchronous messages in the main loop.
  4121. There can only be a single bus watch per bus, you must remove it before you
  4122. can set a new one.
  4123. The bus watch will only work if a GLib main loop is being run.
  4124. The watch can be removed using gst_bus_remove_watch() or by returning %FALSE
  4125. from @func. If the watch was added to the default main context it is also
  4126. possible to remove the watch using g_source_remove().</doc>
  4127. <return-value transfer-ownership="none">
  4128. <doc xml:space="preserve">The event source id or 0 if @bus already got an event source.
  4129. MT safe.</doc>
  4130. <type name="guint" c:type="guint"/>
  4131. </return-value>
  4132. <parameters>
  4133. <instance-parameter name="bus" transfer-ownership="none">
  4134. <doc xml:space="preserve">a #GstBus to create the watch for</doc>
  4135. <type name="Bus" c:type="GstBus*"/>
  4136. </instance-parameter>
  4137. <parameter name="func" transfer-ownership="none" closure="1">
  4138. <doc xml:space="preserve">A function to call when a message is received.</doc>
  4139. <type name="BusFunc" c:type="GstBusFunc"/>
  4140. </parameter>
  4141. <parameter name="user_data"
  4142. transfer-ownership="none"
  4143. nullable="1"
  4144. allow-none="1">
  4145. <doc xml:space="preserve">user data passed to @func.</doc>
  4146. <type name="gpointer" c:type="gpointer"/>
  4147. </parameter>
  4148. </parameters>
  4149. </method>
  4150. <method name="add_watch_full"
  4151. c:identifier="gst_bus_add_watch_full"
  4152. shadows="add_watch">
  4153. <doc xml:space="preserve">Adds a bus watch to the default main context with the given @priority (e.g.
  4154. %G_PRIORITY_DEFAULT). It is also possible to use a non-default main
  4155. context set up using g_main_context_push_thread_default() (before
  4156. one had to create a bus watch source and attach it to the desired main
  4157. context 'manually').
  4158. This function is used to receive asynchronous messages in the main loop.
  4159. There can only be a single bus watch per bus, you must remove it before you
  4160. can set a new one.
  4161. The bus watch will only work if a GLib main loop is being run.
  4162. When @func is called, the message belongs to the caller; if you want to
  4163. keep a copy of it, call gst_message_ref() before leaving @func.
  4164. The watch can be removed using gst_bus_remove_watch() or by returning %FALSE
  4165. from @func. If the watch was added to the default main context it is also
  4166. possible to remove the watch using g_source_remove().
  4167. MT safe.</doc>
  4168. <return-value transfer-ownership="none">
  4169. <doc xml:space="preserve">The event source id or 0 if @bus already got an event source.</doc>
  4170. <type name="guint" c:type="guint"/>
  4171. </return-value>
  4172. <parameters>
  4173. <instance-parameter name="bus" transfer-ownership="none">
  4174. <doc xml:space="preserve">a #GstBus to create the watch for.</doc>
  4175. <type name="Bus" c:type="GstBus*"/>
  4176. </instance-parameter>
  4177. <parameter name="priority" transfer-ownership="none">
  4178. <doc xml:space="preserve">The priority of the watch.</doc>
  4179. <type name="gint" c:type="gint"/>
  4180. </parameter>
  4181. <parameter name="func"
  4182. transfer-ownership="none"
  4183. scope="notified"
  4184. closure="2"
  4185. destroy="3">
  4186. <doc xml:space="preserve">A function to call when a message is received.</doc>
  4187. <type name="BusFunc" c:type="GstBusFunc"/>
  4188. </parameter>
  4189. <parameter name="user_data"
  4190. transfer-ownership="none"
  4191. nullable="1"
  4192. allow-none="1">
  4193. <doc xml:space="preserve">user data passed to @func.</doc>
  4194. <type name="gpointer" c:type="gpointer"/>
  4195. </parameter>
  4196. <parameter name="notify" transfer-ownership="none" scope="async">
  4197. <doc xml:space="preserve">the function to call when the source is removed.</doc>
  4198. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  4199. </parameter>
  4200. </parameters>
  4201. </method>
  4202. <method name="async_signal_func"
  4203. c:identifier="gst_bus_async_signal_func">
  4204. <doc xml:space="preserve">A helper #GstBusFunc that can be used to convert all asynchronous messages
  4205. into signals.</doc>
  4206. <return-value transfer-ownership="none">
  4207. <doc xml:space="preserve">%TRUE</doc>
  4208. <type name="gboolean" c:type="gboolean"/>
  4209. </return-value>
  4210. <parameters>
  4211. <instance-parameter name="bus" transfer-ownership="none">
  4212. <doc xml:space="preserve">a #GstBus</doc>
  4213. <type name="Bus" c:type="GstBus*"/>
  4214. </instance-parameter>
  4215. <parameter name="message" transfer-ownership="none">
  4216. <doc xml:space="preserve">the #GstMessage received</doc>
  4217. <type name="Message" c:type="GstMessage*"/>
  4218. </parameter>
  4219. <parameter name="data"
  4220. transfer-ownership="none"
  4221. nullable="1"
  4222. allow-none="1">
  4223. <doc xml:space="preserve">user data</doc>
  4224. <type name="gpointer" c:type="gpointer"/>
  4225. </parameter>
  4226. </parameters>
  4227. </method>
  4228. <method name="create_watch" c:identifier="gst_bus_create_watch">
  4229. <doc xml:space="preserve">Create watch for this bus. The GSource will be dispatched whenever
  4230. a message is on the bus. After the GSource is dispatched, the
  4231. message is popped off the bus and unreffed.</doc>
  4232. <return-value transfer-ownership="full">
  4233. <doc xml:space="preserve">a #GSource that can be added to a mainloop.</doc>
  4234. <type name="GLib.Source" c:type="GSource*"/>
  4235. </return-value>
  4236. <parameters>
  4237. <instance-parameter name="bus" transfer-ownership="none">
  4238. <doc xml:space="preserve">a #GstBus to create the watch for</doc>
  4239. <type name="Bus" c:type="GstBus*"/>
  4240. </instance-parameter>
  4241. </parameters>
  4242. </method>
  4243. <method name="disable_sync_message_emission"
  4244. c:identifier="gst_bus_disable_sync_message_emission">
  4245. <doc xml:space="preserve">Instructs GStreamer to stop emitting the "sync-message" signal for this bus.
  4246. See gst_bus_enable_sync_message_emission() for more information.
  4247. In the event that multiple pieces of code have called
  4248. gst_bus_enable_sync_message_emission(), the sync-message emissions will only
  4249. be stopped after all calls to gst_bus_enable_sync_message_emission() were
  4250. "cancelled" by calling this function. In this way the semantics are exactly
  4251. the same as gst_object_ref() that which calls enable should also call
  4252. disable.
  4253. MT safe.</doc>
  4254. <return-value transfer-ownership="none">
  4255. <type name="none" c:type="void"/>
  4256. </return-value>
  4257. <parameters>
  4258. <instance-parameter name="bus" transfer-ownership="none">
  4259. <doc xml:space="preserve">a #GstBus on which you previously called
  4260. gst_bus_enable_sync_message_emission()</doc>
  4261. <type name="Bus" c:type="GstBus*"/>
  4262. </instance-parameter>
  4263. </parameters>
  4264. </method>
  4265. <method name="enable_sync_message_emission"
  4266. c:identifier="gst_bus_enable_sync_message_emission">
  4267. <doc xml:space="preserve">Instructs GStreamer to emit the "sync-message" signal after running the bus's
  4268. sync handler. This function is here so that code can ensure that they can
  4269. synchronously receive messages without having to affect what the bin's sync
  4270. handler is.
  4271. This function may be called multiple times. To clean up, the caller is
  4272. responsible for calling gst_bus_disable_sync_message_emission() as many times
  4273. as this function is called.
  4274. While this function looks similar to gst_bus_add_signal_watch(), it is not
  4275. exactly the same -- this function enables &lt;emphasis&gt;synchronous&lt;/emphasis&gt; emission of
  4276. signals when messages arrive; gst_bus_add_signal_watch() adds an idle callback
  4277. to pop messages off the bus &lt;emphasis&gt;asynchronously&lt;/emphasis&gt;. The sync-message signal
  4278. comes from the thread of whatever object posted the message; the "message"
  4279. signal is marshalled to the main thread via the main loop.
  4280. MT safe.</doc>
  4281. <return-value transfer-ownership="none">
  4282. <type name="none" c:type="void"/>
  4283. </return-value>
  4284. <parameters>
  4285. <instance-parameter name="bus" transfer-ownership="none">
  4286. <doc xml:space="preserve">a #GstBus on which you want to receive the "sync-message" signal</doc>
  4287. <type name="Bus" c:type="GstBus*"/>
  4288. </instance-parameter>
  4289. </parameters>
  4290. </method>
  4291. <method name="have_pending" c:identifier="gst_bus_have_pending">
  4292. <doc xml:space="preserve">Check if there are pending messages on the bus that
  4293. should be handled.</doc>
  4294. <return-value transfer-ownership="none">
  4295. <doc xml:space="preserve">%TRUE if there are messages on the bus to be handled, %FALSE
  4296. otherwise.
  4297. MT safe.</doc>
  4298. <type name="gboolean" c:type="gboolean"/>
  4299. </return-value>
  4300. <parameters>
  4301. <instance-parameter name="bus" transfer-ownership="none">
  4302. <doc xml:space="preserve">a #GstBus to check</doc>
  4303. <type name="Bus" c:type="GstBus*"/>
  4304. </instance-parameter>
  4305. </parameters>
  4306. </method>
  4307. <method name="peek" c:identifier="gst_bus_peek">
  4308. <doc xml:space="preserve">Peek the message on the top of the bus' queue. The message will remain
  4309. on the bus' message queue. A reference is returned, and needs to be unreffed
  4310. by the caller.</doc>
  4311. <return-value transfer-ownership="full" nullable="1">
  4312. <doc xml:space="preserve">the #GstMessage that is on the
  4313. bus, or %NULL if the bus is empty.
  4314. MT safe.</doc>
  4315. <type name="Message" c:type="GstMessage*"/>
  4316. </return-value>
  4317. <parameters>
  4318. <instance-parameter name="bus" transfer-ownership="none">
  4319. <doc xml:space="preserve">a #GstBus</doc>
  4320. <type name="Bus" c:type="GstBus*"/>
  4321. </instance-parameter>
  4322. </parameters>
  4323. </method>
  4324. <method name="poll" c:identifier="gst_bus_poll">
  4325. <doc xml:space="preserve">Poll the bus for messages. Will block while waiting for messages to come.
  4326. You can specify a maximum time to poll with the @timeout parameter. If
  4327. @timeout is negative, this function will block indefinitely.
  4328. All messages not in @events will be popped off the bus and will be ignored.
  4329. It is not possible to use message enums beyond #GST_MESSAGE_EXTENDED in the
  4330. @events mask
  4331. Because poll is implemented using the "message" signal enabled by
  4332. gst_bus_add_signal_watch(), calling gst_bus_poll() will cause the "message"
  4333. signal to be emitted for every message that poll sees. Thus a "message"
  4334. signal handler will see the same messages that this function sees -- neither
  4335. will steal messages from the other.
  4336. This function will run a main loop from the default main context when
  4337. polling.
  4338. You should never use this function, since it is pure evil. This is
  4339. especially true for GUI applications based on Gtk+ or Qt, but also for any
  4340. other non-trivial application that uses the GLib main loop. As this function
  4341. runs a GLib main loop, any callback attached to the default GLib main
  4342. context may be invoked. This could be timeouts, GUI events, I/O events etc.;
  4343. even if gst_bus_poll() is called with a 0 timeout. Any of these callbacks
  4344. may do things you do not expect, e.g. destroy the main application window or
  4345. some other resource; change other application state; display a dialog and
  4346. run another main loop until the user clicks it away. In short, using this
  4347. function may add a lot of complexity to your code through unexpected
  4348. re-entrancy and unexpected changes to your application's state.
  4349. For 0 timeouts use gst_bus_pop_filtered() instead of this function; for
  4350. other short timeouts use gst_bus_timed_pop_filtered(); everything else is
  4351. better handled by setting up an asynchronous bus watch and doing things
  4352. from there.</doc>
  4353. <return-value transfer-ownership="full" nullable="1">
  4354. <doc xml:space="preserve">the message that was received,
  4355. or %NULL if the poll timed out. The message is taken from the
  4356. bus and needs to be unreffed with gst_message_unref() after
  4357. usage.</doc>
  4358. <type name="Message" c:type="GstMessage*"/>
  4359. </return-value>
  4360. <parameters>
  4361. <instance-parameter name="bus" transfer-ownership="none">
  4362. <doc xml:space="preserve">a #GstBus</doc>
  4363. <type name="Bus" c:type="GstBus*"/>
  4364. </instance-parameter>
  4365. <parameter name="events" transfer-ownership="none">
  4366. <doc xml:space="preserve">a mask of #GstMessageType, representing the set of message types to
  4367. poll for (note special handling of extended message types below)</doc>
  4368. <type name="MessageType" c:type="GstMessageType"/>
  4369. </parameter>
  4370. <parameter name="timeout" transfer-ownership="none">
  4371. <doc xml:space="preserve">the poll timeout, as a #GstClockTime, or #GST_CLOCK_TIME_NONE to poll
  4372. indefinitely.</doc>
  4373. <type name="ClockTime" c:type="GstClockTime"/>
  4374. </parameter>
  4375. </parameters>
  4376. </method>
  4377. <method name="pop" c:identifier="gst_bus_pop">
  4378. <doc xml:space="preserve">Get a message from the bus.</doc>
  4379. <return-value transfer-ownership="full" nullable="1">
  4380. <doc xml:space="preserve">the #GstMessage that is on the
  4381. bus, or %NULL if the bus is empty. The message is taken from
  4382. the bus and needs to be unreffed with gst_message_unref() after
  4383. usage.
  4384. MT safe.</doc>
  4385. <type name="Message" c:type="GstMessage*"/>
  4386. </return-value>
  4387. <parameters>
  4388. <instance-parameter name="bus" transfer-ownership="none">
  4389. <doc xml:space="preserve">a #GstBus to pop</doc>
  4390. <type name="Bus" c:type="GstBus*"/>
  4391. </instance-parameter>
  4392. </parameters>
  4393. </method>
  4394. <method name="pop_filtered" c:identifier="gst_bus_pop_filtered">
  4395. <doc xml:space="preserve">Get a message matching @type from the bus. Will discard all messages on
  4396. the bus that do not match @type and that have been posted before the first
  4397. message that does match @type. If there is no message matching @type on
  4398. the bus, all messages will be discarded. It is not possible to use message
  4399. enums beyond #GST_MESSAGE_EXTENDED in the @events mask.</doc>
  4400. <return-value transfer-ownership="full" nullable="1">
  4401. <doc xml:space="preserve">the next #GstMessage matching
  4402. @type that is on the bus, or %NULL if the bus is empty or there
  4403. is no message matching @type. The message is taken from the bus
  4404. and needs to be unreffed with gst_message_unref() after usage.
  4405. MT safe.</doc>
  4406. <type name="Message" c:type="GstMessage*"/>
  4407. </return-value>
  4408. <parameters>
  4409. <instance-parameter name="bus" transfer-ownership="none">
  4410. <doc xml:space="preserve">a #GstBus to pop</doc>
  4411. <type name="Bus" c:type="GstBus*"/>
  4412. </instance-parameter>
  4413. <parameter name="types" transfer-ownership="none">
  4414. <doc xml:space="preserve">message types to take into account</doc>
  4415. <type name="MessageType" c:type="GstMessageType"/>
  4416. </parameter>
  4417. </parameters>
  4418. </method>
  4419. <method name="post" c:identifier="gst_bus_post">
  4420. <doc xml:space="preserve">Post a message on the given bus. Ownership of the message
  4421. is taken by the bus.</doc>
  4422. <return-value transfer-ownership="none">
  4423. <doc xml:space="preserve">%TRUE if the message could be posted, %FALSE if the bus is flushing.
  4424. MT safe.</doc>
  4425. <type name="gboolean" c:type="gboolean"/>
  4426. </return-value>
  4427. <parameters>
  4428. <instance-parameter name="bus" transfer-ownership="none">
  4429. <doc xml:space="preserve">a #GstBus to post on</doc>
  4430. <type name="Bus" c:type="GstBus*"/>
  4431. </instance-parameter>
  4432. <parameter name="message" transfer-ownership="full">
  4433. <doc xml:space="preserve">the #GstMessage to post</doc>
  4434. <type name="Message" c:type="GstMessage*"/>
  4435. </parameter>
  4436. </parameters>
  4437. </method>
  4438. <method name="remove_signal_watch"
  4439. c:identifier="gst_bus_remove_signal_watch">
  4440. <doc xml:space="preserve">Removes a signal watch previously added with gst_bus_add_signal_watch().
  4441. MT safe.</doc>
  4442. <return-value transfer-ownership="none">
  4443. <type name="none" c:type="void"/>
  4444. </return-value>
  4445. <parameters>
  4446. <instance-parameter name="bus" transfer-ownership="none">
  4447. <doc xml:space="preserve">a #GstBus you previously added a signal watch to</doc>
  4448. <type name="Bus" c:type="GstBus*"/>
  4449. </instance-parameter>
  4450. </parameters>
  4451. </method>
  4452. <method name="remove_watch"
  4453. c:identifier="gst_bus_remove_watch"
  4454. version="1.6">
  4455. <doc xml:space="preserve">Removes an installed bus watch from @bus.</doc>
  4456. <return-value transfer-ownership="none">
  4457. <doc xml:space="preserve">%TRUE on success or %FALSE if @bus has no event source.</doc>
  4458. <type name="gboolean" c:type="gboolean"/>
  4459. </return-value>
  4460. <parameters>
  4461. <instance-parameter name="bus" transfer-ownership="none">
  4462. <doc xml:space="preserve">a #GstBus to remove the watch from.</doc>
  4463. <type name="Bus" c:type="GstBus*"/>
  4464. </instance-parameter>
  4465. </parameters>
  4466. </method>
  4467. <method name="set_flushing" c:identifier="gst_bus_set_flushing">
  4468. <doc xml:space="preserve">If @flushing, flush out and unref any messages queued in the bus. Releases
  4469. references to the message origin objects. Will flush future messages until
  4470. gst_bus_set_flushing() sets @flushing to %FALSE.
  4471. MT safe.</doc>
  4472. <return-value transfer-ownership="none">
  4473. <type name="none" c:type="void"/>
  4474. </return-value>
  4475. <parameters>
  4476. <instance-parameter name="bus" transfer-ownership="none">
  4477. <doc xml:space="preserve">a #GstBus</doc>
  4478. <type name="Bus" c:type="GstBus*"/>
  4479. </instance-parameter>
  4480. <parameter name="flushing" transfer-ownership="none">
  4481. <doc xml:space="preserve">whether or not to flush the bus</doc>
  4482. <type name="gboolean" c:type="gboolean"/>
  4483. </parameter>
  4484. </parameters>
  4485. </method>
  4486. <method name="set_sync_handler" c:identifier="gst_bus_set_sync_handler">
  4487. <doc xml:space="preserve">Sets the synchronous handler on the bus. The function will be called
  4488. every time a new message is posted on the bus. Note that the function
  4489. will be called in the same thread context as the posting object. This
  4490. function is usually only called by the creator of the bus. Applications
  4491. should handle messages asynchronously using the gst_bus watch and poll
  4492. functions.
  4493. You cannot replace an existing sync_handler. You can pass %NULL to this
  4494. function, which will clear the existing handler.</doc>
  4495. <return-value transfer-ownership="none">
  4496. <type name="none" c:type="void"/>
  4497. </return-value>
  4498. <parameters>
  4499. <instance-parameter name="bus" transfer-ownership="none">
  4500. <doc xml:space="preserve">a #GstBus to install the handler on</doc>
  4501. <type name="Bus" c:type="GstBus*"/>
  4502. </instance-parameter>
  4503. <parameter name="func"
  4504. transfer-ownership="none"
  4505. nullable="1"
  4506. allow-none="1"
  4507. scope="notified"
  4508. closure="1"
  4509. destroy="2">
  4510. <doc xml:space="preserve">The handler function to install</doc>
  4511. <type name="BusSyncHandler" c:type="GstBusSyncHandler"/>
  4512. </parameter>
  4513. <parameter name="user_data"
  4514. transfer-ownership="none"
  4515. nullable="1"
  4516. allow-none="1">
  4517. <doc xml:space="preserve">User data that will be sent to the handler function.</doc>
  4518. <type name="gpointer" c:type="gpointer"/>
  4519. </parameter>
  4520. <parameter name="notify" transfer-ownership="none" scope="async">
  4521. <doc xml:space="preserve">called when @user_data becomes unused</doc>
  4522. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  4523. </parameter>
  4524. </parameters>
  4525. </method>
  4526. <method name="sync_signal_handler"
  4527. c:identifier="gst_bus_sync_signal_handler">
  4528. <doc xml:space="preserve">A helper GstBusSyncHandler that can be used to convert all synchronous
  4529. messages into signals.</doc>
  4530. <return-value transfer-ownership="none">
  4531. <doc xml:space="preserve">GST_BUS_PASS</doc>
  4532. <type name="BusSyncReply" c:type="GstBusSyncReply"/>
  4533. </return-value>
  4534. <parameters>
  4535. <instance-parameter name="bus" transfer-ownership="none">
  4536. <doc xml:space="preserve">a #GstBus</doc>
  4537. <type name="Bus" c:type="GstBus*"/>
  4538. </instance-parameter>
  4539. <parameter name="message" transfer-ownership="none">
  4540. <doc xml:space="preserve">the #GstMessage received</doc>
  4541. <type name="Message" c:type="GstMessage*"/>
  4542. </parameter>
  4543. <parameter name="data"
  4544. transfer-ownership="none"
  4545. nullable="1"
  4546. allow-none="1">
  4547. <doc xml:space="preserve">user data</doc>
  4548. <type name="gpointer" c:type="gpointer"/>
  4549. </parameter>
  4550. </parameters>
  4551. </method>
  4552. <method name="timed_pop" c:identifier="gst_bus_timed_pop">
  4553. <doc xml:space="preserve">Get a message from the bus, waiting up to the specified timeout.
  4554. If @timeout is 0, this function behaves like gst_bus_pop(). If @timeout is
  4555. #GST_CLOCK_TIME_NONE, this function will block forever until a message was
  4556. posted on the bus.</doc>
  4557. <return-value transfer-ownership="full" nullable="1">
  4558. <doc xml:space="preserve">the #GstMessage that is on the
  4559. bus after the specified timeout or %NULL if the bus is empty
  4560. after the timeout expired. The message is taken from the bus
  4561. and needs to be unreffed with gst_message_unref() after usage.
  4562. MT safe.</doc>
  4563. <type name="Message" c:type="GstMessage*"/>
  4564. </return-value>
  4565. <parameters>
  4566. <instance-parameter name="bus" transfer-ownership="none">
  4567. <doc xml:space="preserve">a #GstBus to pop</doc>
  4568. <type name="Bus" c:type="GstBus*"/>
  4569. </instance-parameter>
  4570. <parameter name="timeout" transfer-ownership="none">
  4571. <doc xml:space="preserve">a timeout</doc>
  4572. <type name="ClockTime" c:type="GstClockTime"/>
  4573. </parameter>
  4574. </parameters>
  4575. </method>
  4576. <method name="timed_pop_filtered"
  4577. c:identifier="gst_bus_timed_pop_filtered">
  4578. <doc xml:space="preserve">Get a message from the bus whose type matches the message type mask @types,
  4579. waiting up to the specified timeout (and discarding any messages that do not
  4580. match the mask provided).
  4581. If @timeout is 0, this function behaves like gst_bus_pop_filtered(). If
  4582. @timeout is #GST_CLOCK_TIME_NONE, this function will block forever until a
  4583. matching message was posted on the bus.</doc>
  4584. <return-value transfer-ownership="full" nullable="1">
  4585. <doc xml:space="preserve">a #GstMessage matching the
  4586. filter in @types, or %NULL if no matching message was found on
  4587. the bus until the timeout expired. The message is taken from
  4588. the bus and needs to be unreffed with gst_message_unref() after
  4589. usage.
  4590. MT safe.</doc>
  4591. <type name="Message" c:type="GstMessage*"/>
  4592. </return-value>
  4593. <parameters>
  4594. <instance-parameter name="bus" transfer-ownership="none">
  4595. <doc xml:space="preserve">a #GstBus to pop from</doc>
  4596. <type name="Bus" c:type="GstBus*"/>
  4597. </instance-parameter>
  4598. <parameter name="timeout" transfer-ownership="none">
  4599. <doc xml:space="preserve">a timeout in nanoseconds, or GST_CLOCK_TIME_NONE to wait forever</doc>
  4600. <type name="ClockTime" c:type="GstClockTime"/>
  4601. </parameter>
  4602. <parameter name="types" transfer-ownership="none">
  4603. <doc xml:space="preserve">message types to take into account, GST_MESSAGE_ANY for any type</doc>
  4604. <type name="MessageType" c:type="GstMessageType"/>
  4605. </parameter>
  4606. </parameters>
  4607. </method>
  4608. <property name="enable-async"
  4609. readable="0"
  4610. writable="1"
  4611. construct-only="1"
  4612. transfer-ownership="none">
  4613. <type name="gboolean" c:type="gboolean"/>
  4614. </property>
  4615. <field name="object">
  4616. <type name="Object" c:type="GstObject"/>
  4617. </field>
  4618. <field name="priv" readable="0" private="1">
  4619. <type name="BusPrivate" c:type="GstBusPrivate*"/>
  4620. </field>
  4621. <field name="_gst_reserved" readable="0" private="1">
  4622. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  4623. <type name="gpointer" c:type="gpointer"/>
  4624. </array>
  4625. </field>
  4626. <glib:signal name="message" when="last" detailed="1">
  4627. <doc xml:space="preserve">A message has been posted on the bus. This signal is emitted from a
  4628. GSource added to the mainloop. this signal will only be emitted when
  4629. there is a mainloop running.</doc>
  4630. <return-value transfer-ownership="none">
  4631. <type name="none" c:type="void"/>
  4632. </return-value>
  4633. <parameters>
  4634. <parameter name="message" transfer-ownership="none">
  4635. <doc xml:space="preserve">the message that has been posted asynchronously</doc>
  4636. <type name="Message"/>
  4637. </parameter>
  4638. </parameters>
  4639. </glib:signal>
  4640. <glib:signal name="sync-message" when="last" detailed="1">
  4641. <doc xml:space="preserve">A message has been posted on the bus. This signal is emitted from the
  4642. thread that posted the message so one has to be careful with locking.
  4643. This signal will not be emitted by default, you have to call
  4644. gst_bus_enable_sync_message_emission() before.</doc>
  4645. <return-value transfer-ownership="none">
  4646. <type name="none" c:type="void"/>
  4647. </return-value>
  4648. <parameters>
  4649. <parameter name="message" transfer-ownership="none">
  4650. <doc xml:space="preserve">the message that has been posted synchronously</doc>
  4651. <type name="Message"/>
  4652. </parameter>
  4653. </parameters>
  4654. </glib:signal>
  4655. </class>
  4656. <record name="BusClass"
  4657. c:type="GstBusClass"
  4658. glib:is-gtype-struct-for="Bus">
  4659. <field name="parent_class">
  4660. <type name="ObjectClass" c:type="GstObjectClass"/>
  4661. </field>
  4662. <field name="message">
  4663. <callback name="message">
  4664. <return-value transfer-ownership="none">
  4665. <type name="none" c:type="void"/>
  4666. </return-value>
  4667. <parameters>
  4668. <parameter name="bus" transfer-ownership="none">
  4669. <type name="Bus" c:type="GstBus*"/>
  4670. </parameter>
  4671. <parameter name="message" transfer-ownership="none">
  4672. <type name="Message" c:type="GstMessage*"/>
  4673. </parameter>
  4674. </parameters>
  4675. </callback>
  4676. </field>
  4677. <field name="sync_message">
  4678. <callback name="sync_message">
  4679. <return-value transfer-ownership="none">
  4680. <type name="none" c:type="void"/>
  4681. </return-value>
  4682. <parameters>
  4683. <parameter name="bus" transfer-ownership="none">
  4684. <type name="Bus" c:type="GstBus*"/>
  4685. </parameter>
  4686. <parameter name="message" transfer-ownership="none">
  4687. <type name="Message" c:type="GstMessage*"/>
  4688. </parameter>
  4689. </parameters>
  4690. </callback>
  4691. </field>
  4692. <field name="_gst_reserved" readable="0" private="1">
  4693. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  4694. <type name="gpointer" c:type="gpointer"/>
  4695. </array>
  4696. </field>
  4697. </record>
  4698. <bitfield name="BusFlags"
  4699. glib:type-name="GstBusFlags"
  4700. glib:get-type="gst_bus_flags_get_type"
  4701. c:type="GstBusFlags">
  4702. <doc xml:space="preserve">The standard flags that a bus may have.</doc>
  4703. <member name="flushing"
  4704. value="16"
  4705. c:identifier="GST_BUS_FLUSHING"
  4706. glib:nick="flushing">
  4707. <doc xml:space="preserve">The bus is currently dropping all messages</doc>
  4708. </member>
  4709. <member name="flag_last"
  4710. value="32"
  4711. c:identifier="GST_BUS_FLAG_LAST"
  4712. glib:nick="flag-last">
  4713. <doc xml:space="preserve">offset to define more flags</doc>
  4714. </member>
  4715. </bitfield>
  4716. <callback name="BusFunc" c:type="GstBusFunc">
  4717. <doc xml:space="preserve">Specifies the type of function passed to gst_bus_add_watch() or
  4718. gst_bus_add_watch_full(), which is called from the mainloop when a message
  4719. is available on the bus.
  4720. The message passed to the function will be unreffed after execution of this
  4721. function so it should not be freed in the function.
  4722. Note that this function is used as a GSourceFunc which means that returning
  4723. %FALSE will remove the GSource from the mainloop.</doc>
  4724. <return-value transfer-ownership="none">
  4725. <doc xml:space="preserve">%FALSE if the event source should be removed.</doc>
  4726. <type name="gboolean" c:type="gboolean"/>
  4727. </return-value>
  4728. <parameters>
  4729. <parameter name="bus" transfer-ownership="none">
  4730. <doc xml:space="preserve">the #GstBus that sent the message</doc>
  4731. <type name="Bus" c:type="GstBus*"/>
  4732. </parameter>
  4733. <parameter name="message" transfer-ownership="none">
  4734. <doc xml:space="preserve">the #GstMessage</doc>
  4735. <type name="Message" c:type="GstMessage*"/>
  4736. </parameter>
  4737. <parameter name="user_data"
  4738. transfer-ownership="none"
  4739. nullable="1"
  4740. allow-none="1"
  4741. closure="2">
  4742. <doc xml:space="preserve">user data that has been given, when registering the handler</doc>
  4743. <type name="gpointer" c:type="gpointer"/>
  4744. </parameter>
  4745. </parameters>
  4746. </callback>
  4747. <record name="BusPrivate" c:type="GstBusPrivate" disguised="1">
  4748. </record>
  4749. <callback name="BusSyncHandler" c:type="GstBusSyncHandler">
  4750. <doc xml:space="preserve">Handler will be invoked synchronously, when a new message has been injected
  4751. into the bus. This function is mostly used internally. Only one sync handler
  4752. can be attached to a given bus.
  4753. If the handler returns GST_BUS_DROP, it should unref the message, else the
  4754. message should not be unreffed by the sync handler.</doc>
  4755. <return-value transfer-ownership="none">
  4756. <doc xml:space="preserve">#GstBusSyncReply stating what to do with the message</doc>
  4757. <type name="BusSyncReply" c:type="GstBusSyncReply"/>
  4758. </return-value>
  4759. <parameters>
  4760. <parameter name="bus" transfer-ownership="none">
  4761. <doc xml:space="preserve">the #GstBus that sent the message</doc>
  4762. <type name="Bus" c:type="GstBus*"/>
  4763. </parameter>
  4764. <parameter name="message" transfer-ownership="none">
  4765. <doc xml:space="preserve">the #GstMessage</doc>
  4766. <type name="Message" c:type="GstMessage*"/>
  4767. </parameter>
  4768. <parameter name="user_data"
  4769. transfer-ownership="none"
  4770. nullable="1"
  4771. allow-none="1"
  4772. closure="2">
  4773. <doc xml:space="preserve">user data that has been given, when registering the handler</doc>
  4774. <type name="gpointer" c:type="gpointer"/>
  4775. </parameter>
  4776. </parameters>
  4777. </callback>
  4778. <enumeration name="BusSyncReply"
  4779. glib:type-name="GstBusSyncReply"
  4780. glib:get-type="gst_bus_sync_reply_get_type"
  4781. c:type="GstBusSyncReply">
  4782. <doc xml:space="preserve">The result values for a GstBusSyncHandler.</doc>
  4783. <member name="drop"
  4784. value="0"
  4785. c:identifier="GST_BUS_DROP"
  4786. glib:nick="drop">
  4787. <doc xml:space="preserve">drop the message</doc>
  4788. </member>
  4789. <member name="pass"
  4790. value="1"
  4791. c:identifier="GST_BUS_PASS"
  4792. glib:nick="pass">
  4793. <doc xml:space="preserve">pass the message to the async queue</doc>
  4794. </member>
  4795. <member name="async"
  4796. value="2"
  4797. c:identifier="GST_BUS_ASYNC"
  4798. glib:nick="async">
  4799. <doc xml:space="preserve">pass message to async queue, continue if message is handled</doc>
  4800. </member>
  4801. </enumeration>
  4802. <constant name="CAN_INLINE" value="1" c:type="GST_CAN_INLINE">
  4803. <type name="gint" c:type="gint"/>
  4804. </constant>
  4805. <constant name="CAPS_FEATURE_MEMORY_SYSTEM_MEMORY"
  4806. value="memory:SystemMemory"
  4807. c:type="GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY">
  4808. <type name="utf8" c:type="gchar*"/>
  4809. </constant>
  4810. <constant name="CLOCK_TIME_NONE"
  4811. value="18446744073709551615"
  4812. c:type="GST_CLOCK_TIME_NONE">
  4813. <doc xml:space="preserve">Constant to define an undefined clock time.</doc>
  4814. <type name="ClockTime" c:type="GstClockTime"/>
  4815. </constant>
  4816. <record name="Caps"
  4817. c:type="GstCaps"
  4818. glib:type-name="GstCaps"
  4819. glib:get-type="gst_caps_get_type"
  4820. c:symbol-prefix="caps">
  4821. <doc xml:space="preserve">Caps (capabilities) are lightweight refcounted objects describing media types.
  4822. They are composed of an array of #GstStructure.
  4823. Caps are exposed on #GstPadTemplate to describe all possible types a
  4824. given pad can handle. They are also stored in the #GstRegistry along with
  4825. a description of the #GstElement.
  4826. Caps are exposed on the element pads using the gst_pad_query_caps() pad
  4827. function. This function describes the possible types that the pad can
  4828. handle or produce at runtime.
  4829. A #GstCaps can be constructed with the following code fragment:
  4830. |[&lt;!-- language="C" --&gt;
  4831. GstCaps *caps = gst_caps_new_simple ("video/x-raw",
  4832. "format", G_TYPE_STRING, "I420",
  4833. "framerate", GST_TYPE_FRACTION, 25, 1,
  4834. "pixel-aspect-ratio", GST_TYPE_FRACTION, 1, 1,
  4835. "width", G_TYPE_INT, 320,
  4836. "height", G_TYPE_INT, 240,
  4837. NULL);
  4838. ]|
  4839. A #GstCaps is fixed when it has no properties with ranges or lists. Use
  4840. gst_caps_is_fixed() to test for fixed caps. Fixed caps can be used in a
  4841. caps event to notify downstream elements of the current media type.
  4842. Various methods exist to work with the media types such as subtracting
  4843. or intersecting.
  4844. Be aware that the current #GstCaps / #GstStructure serialization into string
  4845. has limited support for nested #GstCaps / #GstStructure fields. It can only
  4846. support one level of nesting. Using more levels will lead to unexpected
  4847. behavior when using serialization features, such as gst_caps_to_string() or
  4848. gst_value_serialize() and their counterparts.</doc>
  4849. <field name="mini_object" writable="1">
  4850. <doc xml:space="preserve">the parent type</doc>
  4851. <type name="MiniObject" c:type="GstMiniObject"/>
  4852. </field>
  4853. <constructor name="new_any" c:identifier="gst_caps_new_any">
  4854. <doc xml:space="preserve">Creates a new #GstCaps that indicates that it is compatible with
  4855. any media format.</doc>
  4856. <return-value transfer-ownership="full">
  4857. <doc xml:space="preserve">the new #GstCaps</doc>
  4858. <type name="Caps" c:type="GstCaps*"/>
  4859. </return-value>
  4860. </constructor>
  4861. <constructor name="new_empty" c:identifier="gst_caps_new_empty">
  4862. <doc xml:space="preserve">Creates a new #GstCaps that is empty. That is, the returned
  4863. #GstCaps contains no media formats.
  4864. The #GstCaps is guaranteed to be writable.
  4865. Caller is responsible for unreffing the returned caps.</doc>
  4866. <return-value transfer-ownership="full">
  4867. <doc xml:space="preserve">the new #GstCaps</doc>
  4868. <type name="Caps" c:type="GstCaps*"/>
  4869. </return-value>
  4870. </constructor>
  4871. <constructor name="new_empty_simple"
  4872. c:identifier="gst_caps_new_empty_simple">
  4873. <doc xml:space="preserve">Creates a new #GstCaps that contains one #GstStructure with name
  4874. @media_type.
  4875. Caller is responsible for unreffing the returned caps.</doc>
  4876. <return-value transfer-ownership="full">
  4877. <doc xml:space="preserve">the new #GstCaps</doc>
  4878. <type name="Caps" c:type="GstCaps*"/>
  4879. </return-value>
  4880. <parameters>
  4881. <parameter name="media_type" transfer-ownership="none">
  4882. <doc xml:space="preserve">the media type of the structure</doc>
  4883. <type name="utf8" c:type="const char*"/>
  4884. </parameter>
  4885. </parameters>
  4886. </constructor>
  4887. <constructor name="new_full"
  4888. c:identifier="gst_caps_new_full"
  4889. introspectable="0">
  4890. <doc xml:space="preserve">Creates a new #GstCaps and adds all the structures listed as
  4891. arguments. The list must be %NULL-terminated. The structures
  4892. are not copied; the returned #GstCaps owns the structures.</doc>
  4893. <return-value transfer-ownership="full">
  4894. <doc xml:space="preserve">the new #GstCaps</doc>
  4895. <type name="Caps" c:type="GstCaps*"/>
  4896. </return-value>
  4897. <parameters>
  4898. <parameter name="struct1" transfer-ownership="none">
  4899. <doc xml:space="preserve">the first structure to add</doc>
  4900. <type name="Structure" c:type="GstStructure*"/>
  4901. </parameter>
  4902. <parameter name="..." transfer-ownership="none">
  4903. <doc xml:space="preserve">additional structures to add</doc>
  4904. <varargs/>
  4905. </parameter>
  4906. </parameters>
  4907. </constructor>
  4908. <constructor name="new_full_valist"
  4909. c:identifier="gst_caps_new_full_valist"
  4910. introspectable="0">
  4911. <doc xml:space="preserve">Creates a new #GstCaps and adds all the structures listed as
  4912. arguments. The list must be %NULL-terminated. The structures
  4913. are not copied; the returned #GstCaps owns the structures.</doc>
  4914. <return-value transfer-ownership="full">
  4915. <doc xml:space="preserve">the new #GstCaps</doc>
  4916. <type name="Caps" c:type="GstCaps*"/>
  4917. </return-value>
  4918. <parameters>
  4919. <parameter name="structure" transfer-ownership="none">
  4920. <doc xml:space="preserve">the first structure to add</doc>
  4921. <type name="Structure" c:type="GstStructure*"/>
  4922. </parameter>
  4923. <parameter name="var_args" transfer-ownership="none">
  4924. <doc xml:space="preserve">additional structures to add</doc>
  4925. <type name="va_list" c:type="va_list"/>
  4926. </parameter>
  4927. </parameters>
  4928. </constructor>
  4929. <constructor name="new_simple"
  4930. c:identifier="gst_caps_new_simple"
  4931. introspectable="0">
  4932. <doc xml:space="preserve">Creates a new #GstCaps that contains one #GstStructure. The
  4933. structure is defined by the arguments, which have the same format
  4934. as gst_structure_new().
  4935. Caller is responsible for unreffing the returned caps.</doc>
  4936. <return-value transfer-ownership="full">
  4937. <doc xml:space="preserve">the new #GstCaps</doc>
  4938. <type name="Caps" c:type="GstCaps*"/>
  4939. </return-value>
  4940. <parameters>
  4941. <parameter name="media_type" transfer-ownership="none">
  4942. <doc xml:space="preserve">the media type of the structure</doc>
  4943. <type name="utf8" c:type="const char*"/>
  4944. </parameter>
  4945. <parameter name="fieldname" transfer-ownership="none">
  4946. <doc xml:space="preserve">first field to set</doc>
  4947. <type name="utf8" c:type="const char*"/>
  4948. </parameter>
  4949. <parameter name="..." transfer-ownership="none">
  4950. <doc xml:space="preserve">additional arguments</doc>
  4951. <varargs/>
  4952. </parameter>
  4953. </parameters>
  4954. </constructor>
  4955. <method name="append" c:identifier="gst_caps_append">
  4956. <doc xml:space="preserve">Appends the structures contained in @caps2 to @caps1. The structures in
  4957. @caps2 are not copied -- they are transferred to @caps1, and then @caps2 is
  4958. freed. If either caps is ANY, the resulting caps will be ANY.</doc>
  4959. <return-value transfer-ownership="none">
  4960. <type name="none" c:type="void"/>
  4961. </return-value>
  4962. <parameters>
  4963. <instance-parameter name="caps1" transfer-ownership="none">
  4964. <doc xml:space="preserve">the #GstCaps that will be appended to</doc>
  4965. <type name="Caps" c:type="GstCaps*"/>
  4966. </instance-parameter>
  4967. <parameter name="caps2" transfer-ownership="full">
  4968. <doc xml:space="preserve">the #GstCaps to append</doc>
  4969. <type name="Caps" c:type="GstCaps*"/>
  4970. </parameter>
  4971. </parameters>
  4972. </method>
  4973. <method name="append_structure" c:identifier="gst_caps_append_structure">
  4974. <doc xml:space="preserve">Appends @structure to @caps. The structure is not copied; @caps
  4975. becomes the owner of @structure.</doc>
  4976. <return-value transfer-ownership="none">
  4977. <type name="none" c:type="void"/>
  4978. </return-value>
  4979. <parameters>
  4980. <instance-parameter name="caps" transfer-ownership="none">
  4981. <doc xml:space="preserve">the #GstCaps that will be appended to</doc>
  4982. <type name="Caps" c:type="GstCaps*"/>
  4983. </instance-parameter>
  4984. <parameter name="structure" transfer-ownership="full">
  4985. <doc xml:space="preserve">the #GstStructure to append</doc>
  4986. <type name="Structure" c:type="GstStructure*"/>
  4987. </parameter>
  4988. </parameters>
  4989. </method>
  4990. <method name="append_structure_full"
  4991. c:identifier="gst_caps_append_structure_full"
  4992. version="1.2">
  4993. <doc xml:space="preserve">Appends @structure with @features to @caps. The structure is not copied; @caps
  4994. becomes the owner of @structure.</doc>
  4995. <return-value transfer-ownership="none">
  4996. <type name="none" c:type="void"/>
  4997. </return-value>
  4998. <parameters>
  4999. <instance-parameter name="caps" transfer-ownership="none">
  5000. <doc xml:space="preserve">the #GstCaps that will be appended to</doc>
  5001. <type name="Caps" c:type="GstCaps*"/>
  5002. </instance-parameter>
  5003. <parameter name="structure" transfer-ownership="full">
  5004. <doc xml:space="preserve">the #GstStructure to append</doc>
  5005. <type name="Structure" c:type="GstStructure*"/>
  5006. </parameter>
  5007. <parameter name="features"
  5008. transfer-ownership="full"
  5009. nullable="1"
  5010. allow-none="1">
  5011. <doc xml:space="preserve">the #GstCapsFeatures to append</doc>
  5012. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5013. </parameter>
  5014. </parameters>
  5015. </method>
  5016. <method name="can_intersect" c:identifier="gst_caps_can_intersect">
  5017. <doc xml:space="preserve">Tries intersecting @caps1 and @caps2 and reports whether the result would not
  5018. be empty</doc>
  5019. <return-value transfer-ownership="none">
  5020. <doc xml:space="preserve">%TRUE if intersection would be not empty</doc>
  5021. <type name="gboolean" c:type="gboolean"/>
  5022. </return-value>
  5023. <parameters>
  5024. <instance-parameter name="caps1" transfer-ownership="none">
  5025. <doc xml:space="preserve">a #GstCaps to intersect</doc>
  5026. <type name="Caps" c:type="const GstCaps*"/>
  5027. </instance-parameter>
  5028. <parameter name="caps2" transfer-ownership="none">
  5029. <doc xml:space="preserve">a #GstCaps to intersect</doc>
  5030. <type name="Caps" c:type="const GstCaps*"/>
  5031. </parameter>
  5032. </parameters>
  5033. </method>
  5034. <method name="copy_nth" c:identifier="gst_caps_copy_nth">
  5035. <doc xml:space="preserve">Creates a new #GstCaps and appends a copy of the nth structure
  5036. contained in @caps.</doc>
  5037. <return-value transfer-ownership="full">
  5038. <doc xml:space="preserve">the new #GstCaps</doc>
  5039. <type name="Caps" c:type="GstCaps*"/>
  5040. </return-value>
  5041. <parameters>
  5042. <instance-parameter name="caps" transfer-ownership="none">
  5043. <doc xml:space="preserve">the #GstCaps to copy</doc>
  5044. <type name="Caps" c:type="const GstCaps*"/>
  5045. </instance-parameter>
  5046. <parameter name="nth" transfer-ownership="none">
  5047. <doc xml:space="preserve">the nth structure to copy</doc>
  5048. <type name="guint" c:type="guint"/>
  5049. </parameter>
  5050. </parameters>
  5051. </method>
  5052. <method name="filter_and_map_in_place"
  5053. c:identifier="gst_caps_filter_and_map_in_place"
  5054. version="1.6">
  5055. <doc xml:space="preserve">Calls the provided function once for each structure and caps feature in the
  5056. #GstCaps. In contrast to gst_caps_foreach(), the function may modify the
  5057. structure and features. In contrast to gst_caps_filter_and_map_in_place(),
  5058. the structure and features are removed from the caps if %FALSE is returned
  5059. from the function.
  5060. The caps must be mutable.</doc>
  5061. <return-value transfer-ownership="none">
  5062. <type name="none" c:type="void"/>
  5063. </return-value>
  5064. <parameters>
  5065. <instance-parameter name="caps" transfer-ownership="none">
  5066. <doc xml:space="preserve">a #GstCaps</doc>
  5067. <type name="Caps" c:type="GstCaps*"/>
  5068. </instance-parameter>
  5069. <parameter name="func"
  5070. transfer-ownership="none"
  5071. scope="call"
  5072. closure="1">
  5073. <doc xml:space="preserve">a function to call for each field</doc>
  5074. <type name="CapsFilterMapFunc" c:type="GstCapsFilterMapFunc"/>
  5075. </parameter>
  5076. <parameter name="user_data"
  5077. transfer-ownership="none"
  5078. nullable="1"
  5079. allow-none="1">
  5080. <doc xml:space="preserve">private data</doc>
  5081. <type name="gpointer" c:type="gpointer"/>
  5082. </parameter>
  5083. </parameters>
  5084. </method>
  5085. <method name="fixate" c:identifier="gst_caps_fixate">
  5086. <doc xml:space="preserve">Modifies the given @caps into a representation with only fixed
  5087. values. First the caps will be truncated and then the first structure will be
  5088. fixated with gst_structure_fixate().
  5089. This function takes ownership of @caps and will call gst_caps_make_writable()
  5090. on it so you must not use @caps afterwards unless you keep an additional
  5091. reference to it with gst_caps_ref().</doc>
  5092. <return-value transfer-ownership="full">
  5093. <doc xml:space="preserve">the fixated caps</doc>
  5094. <type name="Caps" c:type="GstCaps*"/>
  5095. </return-value>
  5096. <parameters>
  5097. <instance-parameter name="caps" transfer-ownership="full">
  5098. <doc xml:space="preserve">a #GstCaps to fixate</doc>
  5099. <type name="Caps" c:type="GstCaps*"/>
  5100. </instance-parameter>
  5101. </parameters>
  5102. </method>
  5103. <method name="foreach" c:identifier="gst_caps_foreach" version="1.6">
  5104. <doc xml:space="preserve">Calls the provided function once for each structure and caps feature in the
  5105. #GstCaps. The function must not modify the fields.
  5106. Also see gst_caps_map_in_place() and gst_caps_filter_and_map_in_place().</doc>
  5107. <return-value transfer-ownership="none">
  5108. <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE for each call,
  5109. %FALSE otherwise.</doc>
  5110. <type name="gboolean" c:type="gboolean"/>
  5111. </return-value>
  5112. <parameters>
  5113. <instance-parameter name="caps" transfer-ownership="none">
  5114. <doc xml:space="preserve">a #GstCaps</doc>
  5115. <type name="Caps" c:type="const GstCaps*"/>
  5116. </instance-parameter>
  5117. <parameter name="func"
  5118. transfer-ownership="none"
  5119. scope="call"
  5120. closure="1">
  5121. <doc xml:space="preserve">a function to call for each field</doc>
  5122. <type name="CapsForeachFunc" c:type="GstCapsForeachFunc"/>
  5123. </parameter>
  5124. <parameter name="user_data"
  5125. transfer-ownership="none"
  5126. nullable="1"
  5127. allow-none="1">
  5128. <doc xml:space="preserve">private data</doc>
  5129. <type name="gpointer" c:type="gpointer"/>
  5130. </parameter>
  5131. </parameters>
  5132. </method>
  5133. <method name="get_features"
  5134. c:identifier="gst_caps_get_features"
  5135. version="1.2">
  5136. <doc xml:space="preserve">Finds the features in @caps that has the index @index, and
  5137. returns it.
  5138. WARNING: This function takes a const GstCaps *, but returns a
  5139. non-const GstCapsFeatures *. This is for programming convenience --
  5140. the caller should be aware that structures inside a constant
  5141. #GstCaps should not be modified. However, if you know the caps
  5142. are writable, either because you have just copied them or made
  5143. them writable with gst_caps_make_writable(), you may modify the
  5144. features returned in the usual way, e.g. with functions like
  5145. gst_caps_features_add().
  5146. You do not need to free or unref the structure returned, it
  5147. belongs to the #GstCaps.</doc>
  5148. <return-value transfer-ownership="none">
  5149. <doc xml:space="preserve">a pointer to the #GstCapsFeatures corresponding
  5150. to @index</doc>
  5151. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5152. </return-value>
  5153. <parameters>
  5154. <instance-parameter name="caps" transfer-ownership="none">
  5155. <doc xml:space="preserve">a #GstCaps</doc>
  5156. <type name="Caps" c:type="const GstCaps*"/>
  5157. </instance-parameter>
  5158. <parameter name="index" transfer-ownership="none">
  5159. <doc xml:space="preserve">the index of the structure</doc>
  5160. <type name="guint" c:type="guint"/>
  5161. </parameter>
  5162. </parameters>
  5163. </method>
  5164. <method name="get_size" c:identifier="gst_caps_get_size">
  5165. <doc xml:space="preserve">Gets the number of structures contained in @caps.</doc>
  5166. <return-value transfer-ownership="none">
  5167. <doc xml:space="preserve">the number of structures that @caps contains</doc>
  5168. <type name="guint" c:type="guint"/>
  5169. </return-value>
  5170. <parameters>
  5171. <instance-parameter name="caps" transfer-ownership="none">
  5172. <doc xml:space="preserve">a #GstCaps</doc>
  5173. <type name="Caps" c:type="const GstCaps*"/>
  5174. </instance-parameter>
  5175. </parameters>
  5176. </method>
  5177. <method name="get_structure" c:identifier="gst_caps_get_structure">
  5178. <doc xml:space="preserve">Finds the structure in @caps that has the index @index, and
  5179. returns it.
  5180. WARNING: This function takes a const GstCaps *, but returns a
  5181. non-const GstStructure *. This is for programming convenience --
  5182. the caller should be aware that structures inside a constant
  5183. #GstCaps should not be modified. However, if you know the caps
  5184. are writable, either because you have just copied them or made
  5185. them writable with gst_caps_make_writable(), you may modify the
  5186. structure returned in the usual way, e.g. with functions like
  5187. gst_structure_set().
  5188. You do not need to free or unref the structure returned, it
  5189. belongs to the #GstCaps.</doc>
  5190. <return-value transfer-ownership="none">
  5191. <doc xml:space="preserve">a pointer to the #GstStructure corresponding
  5192. to @index</doc>
  5193. <type name="Structure" c:type="GstStructure*"/>
  5194. </return-value>
  5195. <parameters>
  5196. <instance-parameter name="caps" transfer-ownership="none">
  5197. <doc xml:space="preserve">a #GstCaps</doc>
  5198. <type name="Caps" c:type="const GstCaps*"/>
  5199. </instance-parameter>
  5200. <parameter name="index" transfer-ownership="none">
  5201. <doc xml:space="preserve">the index of the structure</doc>
  5202. <type name="guint" c:type="guint"/>
  5203. </parameter>
  5204. </parameters>
  5205. </method>
  5206. <method name="intersect" c:identifier="gst_caps_intersect">
  5207. <doc xml:space="preserve">Creates a new #GstCaps that contains all the formats that are common
  5208. to both @caps1 and @caps2. Defaults to %GST_CAPS_INTERSECT_ZIG_ZAG mode.</doc>
  5209. <return-value transfer-ownership="full">
  5210. <doc xml:space="preserve">the new #GstCaps</doc>
  5211. <type name="Caps" c:type="GstCaps*"/>
  5212. </return-value>
  5213. <parameters>
  5214. <instance-parameter name="caps1" transfer-ownership="none">
  5215. <doc xml:space="preserve">a #GstCaps to intersect</doc>
  5216. <type name="Caps" c:type="GstCaps*"/>
  5217. </instance-parameter>
  5218. <parameter name="caps2" transfer-ownership="none">
  5219. <doc xml:space="preserve">a #GstCaps to intersect</doc>
  5220. <type name="Caps" c:type="GstCaps*"/>
  5221. </parameter>
  5222. </parameters>
  5223. </method>
  5224. <method name="intersect_full" c:identifier="gst_caps_intersect_full">
  5225. <doc xml:space="preserve">Creates a new #GstCaps that contains all the formats that are common
  5226. to both @caps1 and @caps2, the order is defined by the #GstCapsIntersectMode
  5227. used.</doc>
  5228. <return-value transfer-ownership="full">
  5229. <doc xml:space="preserve">the new #GstCaps</doc>
  5230. <type name="Caps" c:type="GstCaps*"/>
  5231. </return-value>
  5232. <parameters>
  5233. <instance-parameter name="caps1" transfer-ownership="none">
  5234. <doc xml:space="preserve">a #GstCaps to intersect</doc>
  5235. <type name="Caps" c:type="GstCaps*"/>
  5236. </instance-parameter>
  5237. <parameter name="caps2" transfer-ownership="none">
  5238. <doc xml:space="preserve">a #GstCaps to intersect</doc>
  5239. <type name="Caps" c:type="GstCaps*"/>
  5240. </parameter>
  5241. <parameter name="mode" transfer-ownership="none">
  5242. <doc xml:space="preserve">The intersection algorithm/mode to use</doc>
  5243. <type name="CapsIntersectMode" c:type="GstCapsIntersectMode"/>
  5244. </parameter>
  5245. </parameters>
  5246. </method>
  5247. <method name="is_always_compatible"
  5248. c:identifier="gst_caps_is_always_compatible">
  5249. <doc xml:space="preserve">A given #GstCaps structure is always compatible with another if
  5250. every media format that is in the first is also contained in the
  5251. second. That is, @caps1 is a subset of @caps2.</doc>
  5252. <return-value transfer-ownership="none">
  5253. <doc xml:space="preserve">%TRUE if @caps1 is a subset of @caps2.</doc>
  5254. <type name="gboolean" c:type="gboolean"/>
  5255. </return-value>
  5256. <parameters>
  5257. <instance-parameter name="caps1" transfer-ownership="none">
  5258. <doc xml:space="preserve">the #GstCaps to test</doc>
  5259. <type name="Caps" c:type="const GstCaps*"/>
  5260. </instance-parameter>
  5261. <parameter name="caps2" transfer-ownership="none">
  5262. <doc xml:space="preserve">the #GstCaps to test</doc>
  5263. <type name="Caps" c:type="const GstCaps*"/>
  5264. </parameter>
  5265. </parameters>
  5266. </method>
  5267. <method name="is_any" c:identifier="gst_caps_is_any">
  5268. <doc xml:space="preserve">Determines if @caps represents any media format.</doc>
  5269. <return-value transfer-ownership="none">
  5270. <doc xml:space="preserve">%TRUE if @caps represents any format.</doc>
  5271. <type name="gboolean" c:type="gboolean"/>
  5272. </return-value>
  5273. <parameters>
  5274. <instance-parameter name="caps" transfer-ownership="none">
  5275. <doc xml:space="preserve">the #GstCaps to test</doc>
  5276. <type name="Caps" c:type="const GstCaps*"/>
  5277. </instance-parameter>
  5278. </parameters>
  5279. </method>
  5280. <method name="is_empty" c:identifier="gst_caps_is_empty">
  5281. <doc xml:space="preserve">Determines if @caps represents no media formats.</doc>
  5282. <return-value transfer-ownership="none">
  5283. <doc xml:space="preserve">%TRUE if @caps represents no formats.</doc>
  5284. <type name="gboolean" c:type="gboolean"/>
  5285. </return-value>
  5286. <parameters>
  5287. <instance-parameter name="caps" transfer-ownership="none">
  5288. <doc xml:space="preserve">the #GstCaps to test</doc>
  5289. <type name="Caps" c:type="const GstCaps*"/>
  5290. </instance-parameter>
  5291. </parameters>
  5292. </method>
  5293. <method name="is_equal" c:identifier="gst_caps_is_equal">
  5294. <doc xml:space="preserve">Checks if the given caps represent the same set of caps.</doc>
  5295. <return-value transfer-ownership="none">
  5296. <doc xml:space="preserve">%TRUE if both caps are equal.</doc>
  5297. <type name="gboolean" c:type="gboolean"/>
  5298. </return-value>
  5299. <parameters>
  5300. <instance-parameter name="caps1" transfer-ownership="none">
  5301. <doc xml:space="preserve">a #GstCaps</doc>
  5302. <type name="Caps" c:type="const GstCaps*"/>
  5303. </instance-parameter>
  5304. <parameter name="caps2" transfer-ownership="none">
  5305. <doc xml:space="preserve">another #GstCaps</doc>
  5306. <type name="Caps" c:type="const GstCaps*"/>
  5307. </parameter>
  5308. </parameters>
  5309. </method>
  5310. <method name="is_equal_fixed" c:identifier="gst_caps_is_equal_fixed">
  5311. <doc xml:space="preserve">Tests if two #GstCaps are equal. This function only works on fixed
  5312. #GstCaps.</doc>
  5313. <return-value transfer-ownership="none">
  5314. <doc xml:space="preserve">%TRUE if the arguments represent the same format</doc>
  5315. <type name="gboolean" c:type="gboolean"/>
  5316. </return-value>
  5317. <parameters>
  5318. <instance-parameter name="caps1" transfer-ownership="none">
  5319. <doc xml:space="preserve">the #GstCaps to test</doc>
  5320. <type name="Caps" c:type="const GstCaps*"/>
  5321. </instance-parameter>
  5322. <parameter name="caps2" transfer-ownership="none">
  5323. <doc xml:space="preserve">the #GstCaps to test</doc>
  5324. <type name="Caps" c:type="const GstCaps*"/>
  5325. </parameter>
  5326. </parameters>
  5327. </method>
  5328. <method name="is_fixed" c:identifier="gst_caps_is_fixed">
  5329. <doc xml:space="preserve">Fixed #GstCaps describe exactly one format, that is, they have exactly
  5330. one structure, and each field in the structure describes a fixed type.
  5331. Examples of non-fixed types are GST_TYPE_INT_RANGE and GST_TYPE_LIST.</doc>
  5332. <return-value transfer-ownership="none">
  5333. <doc xml:space="preserve">%TRUE if @caps is fixed</doc>
  5334. <type name="gboolean" c:type="gboolean"/>
  5335. </return-value>
  5336. <parameters>
  5337. <instance-parameter name="caps" transfer-ownership="none">
  5338. <doc xml:space="preserve">the #GstCaps to test</doc>
  5339. <type name="Caps" c:type="const GstCaps*"/>
  5340. </instance-parameter>
  5341. </parameters>
  5342. </method>
  5343. <method name="is_strictly_equal"
  5344. c:identifier="gst_caps_is_strictly_equal">
  5345. <doc xml:space="preserve">Checks if the given caps are exactly the same set of caps.</doc>
  5346. <return-value transfer-ownership="none">
  5347. <doc xml:space="preserve">%TRUE if both caps are strictly equal.</doc>
  5348. <type name="gboolean" c:type="gboolean"/>
  5349. </return-value>
  5350. <parameters>
  5351. <instance-parameter name="caps1" transfer-ownership="none">
  5352. <doc xml:space="preserve">a #GstCaps</doc>
  5353. <type name="Caps" c:type="const GstCaps*"/>
  5354. </instance-parameter>
  5355. <parameter name="caps2" transfer-ownership="none">
  5356. <doc xml:space="preserve">another #GstCaps</doc>
  5357. <type name="Caps" c:type="const GstCaps*"/>
  5358. </parameter>
  5359. </parameters>
  5360. </method>
  5361. <method name="is_subset" c:identifier="gst_caps_is_subset">
  5362. <doc xml:space="preserve">Checks if all caps represented by @subset are also represented by @superset.</doc>
  5363. <return-value transfer-ownership="none">
  5364. <doc xml:space="preserve">%TRUE if @subset is a subset of @superset</doc>
  5365. <type name="gboolean" c:type="gboolean"/>
  5366. </return-value>
  5367. <parameters>
  5368. <instance-parameter name="subset" transfer-ownership="none">
  5369. <doc xml:space="preserve">a #GstCaps</doc>
  5370. <type name="Caps" c:type="const GstCaps*"/>
  5371. </instance-parameter>
  5372. <parameter name="superset" transfer-ownership="none">
  5373. <doc xml:space="preserve">a potentially greater #GstCaps</doc>
  5374. <type name="Caps" c:type="const GstCaps*"/>
  5375. </parameter>
  5376. </parameters>
  5377. </method>
  5378. <method name="is_subset_structure"
  5379. c:identifier="gst_caps_is_subset_structure">
  5380. <doc xml:space="preserve">Checks if @structure is a subset of @caps. See gst_caps_is_subset()
  5381. for more information.</doc>
  5382. <return-value transfer-ownership="none">
  5383. <doc xml:space="preserve">%TRUE if @structure is a subset of @caps</doc>
  5384. <type name="gboolean" c:type="gboolean"/>
  5385. </return-value>
  5386. <parameters>
  5387. <instance-parameter name="caps" transfer-ownership="none">
  5388. <doc xml:space="preserve">a #GstCaps</doc>
  5389. <type name="Caps" c:type="const GstCaps*"/>
  5390. </instance-parameter>
  5391. <parameter name="structure" transfer-ownership="none">
  5392. <doc xml:space="preserve">a potential #GstStructure subset of @caps</doc>
  5393. <type name="Structure" c:type="const GstStructure*"/>
  5394. </parameter>
  5395. </parameters>
  5396. </method>
  5397. <method name="is_subset_structure_full"
  5398. c:identifier="gst_caps_is_subset_structure_full"
  5399. version="1.2">
  5400. <doc xml:space="preserve">Checks if @structure is a subset of @caps. See gst_caps_is_subset()
  5401. for more information.</doc>
  5402. <return-value transfer-ownership="none">
  5403. <doc xml:space="preserve">%TRUE if @structure is a subset of @caps</doc>
  5404. <type name="gboolean" c:type="gboolean"/>
  5405. </return-value>
  5406. <parameters>
  5407. <instance-parameter name="caps" transfer-ownership="none">
  5408. <doc xml:space="preserve">a #GstCaps</doc>
  5409. <type name="Caps" c:type="const GstCaps*"/>
  5410. </instance-parameter>
  5411. <parameter name="structure" transfer-ownership="none">
  5412. <doc xml:space="preserve">a potential #GstStructure subset of @caps</doc>
  5413. <type name="Structure" c:type="const GstStructure*"/>
  5414. </parameter>
  5415. <parameter name="features"
  5416. transfer-ownership="none"
  5417. nullable="1"
  5418. allow-none="1">
  5419. <doc xml:space="preserve">a #GstCapsFeatures for @structure</doc>
  5420. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  5421. </parameter>
  5422. </parameters>
  5423. </method>
  5424. <method name="map_in_place"
  5425. c:identifier="gst_caps_map_in_place"
  5426. version="1.6">
  5427. <doc xml:space="preserve">Calls the provided function once for each structure and caps feature in the
  5428. #GstCaps. In contrast to gst_caps_foreach(), the function may modify but not
  5429. delete the structures and features. The caps must be mutable.</doc>
  5430. <return-value transfer-ownership="none">
  5431. <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE for each call,
  5432. %FALSE otherwise.</doc>
  5433. <type name="gboolean" c:type="gboolean"/>
  5434. </return-value>
  5435. <parameters>
  5436. <instance-parameter name="caps" transfer-ownership="none">
  5437. <doc xml:space="preserve">a #GstCaps</doc>
  5438. <type name="Caps" c:type="GstCaps*"/>
  5439. </instance-parameter>
  5440. <parameter name="func"
  5441. transfer-ownership="none"
  5442. scope="call"
  5443. closure="1">
  5444. <doc xml:space="preserve">a function to call for each field</doc>
  5445. <type name="CapsMapFunc" c:type="GstCapsMapFunc"/>
  5446. </parameter>
  5447. <parameter name="user_data"
  5448. transfer-ownership="none"
  5449. nullable="1"
  5450. allow-none="1">
  5451. <doc xml:space="preserve">private data</doc>
  5452. <type name="gpointer" c:type="gpointer"/>
  5453. </parameter>
  5454. </parameters>
  5455. </method>
  5456. <method name="merge" c:identifier="gst_caps_merge">
  5457. <doc xml:space="preserve">Appends the structures contained in @caps2 to @caps1 if they are not yet
  5458. expressed by @caps1. The structures in @caps2 are not copied -- they are
  5459. transferred to a writable copy of @caps1, and then @caps2 is freed.
  5460. If either caps is ANY, the resulting caps will be ANY.</doc>
  5461. <return-value transfer-ownership="full">
  5462. <doc xml:space="preserve">the merged caps.</doc>
  5463. <type name="Caps" c:type="GstCaps*"/>
  5464. </return-value>
  5465. <parameters>
  5466. <instance-parameter name="caps1" transfer-ownership="full">
  5467. <doc xml:space="preserve">the #GstCaps that will take the new entries</doc>
  5468. <type name="Caps" c:type="GstCaps*"/>
  5469. </instance-parameter>
  5470. <parameter name="caps2" transfer-ownership="full">
  5471. <doc xml:space="preserve">the #GstCaps to merge in</doc>
  5472. <type name="Caps" c:type="GstCaps*"/>
  5473. </parameter>
  5474. </parameters>
  5475. </method>
  5476. <method name="merge_structure" c:identifier="gst_caps_merge_structure">
  5477. <doc xml:space="preserve">Appends @structure to @caps if its not already expressed by @caps.</doc>
  5478. <return-value transfer-ownership="full">
  5479. <doc xml:space="preserve">the merged caps.</doc>
  5480. <type name="Caps" c:type="GstCaps*"/>
  5481. </return-value>
  5482. <parameters>
  5483. <instance-parameter name="caps" transfer-ownership="full">
  5484. <doc xml:space="preserve">the #GstCaps to merge into</doc>
  5485. <type name="Caps" c:type="GstCaps*"/>
  5486. </instance-parameter>
  5487. <parameter name="structure" transfer-ownership="full">
  5488. <doc xml:space="preserve">the #GstStructure to merge</doc>
  5489. <type name="Structure" c:type="GstStructure*"/>
  5490. </parameter>
  5491. </parameters>
  5492. </method>
  5493. <method name="merge_structure_full"
  5494. c:identifier="gst_caps_merge_structure_full"
  5495. version="1.2">
  5496. <doc xml:space="preserve">Appends @structure with @features to @caps if its not already expressed by @caps.</doc>
  5497. <return-value transfer-ownership="full">
  5498. <doc xml:space="preserve">the merged caps.</doc>
  5499. <type name="Caps" c:type="GstCaps*"/>
  5500. </return-value>
  5501. <parameters>
  5502. <instance-parameter name="caps" transfer-ownership="full">
  5503. <doc xml:space="preserve">the #GstCaps to merge into</doc>
  5504. <type name="Caps" c:type="GstCaps*"/>
  5505. </instance-parameter>
  5506. <parameter name="structure" transfer-ownership="full">
  5507. <doc xml:space="preserve">the #GstStructure to merge</doc>
  5508. <type name="Structure" c:type="GstStructure*"/>
  5509. </parameter>
  5510. <parameter name="features"
  5511. transfer-ownership="full"
  5512. nullable="1"
  5513. allow-none="1">
  5514. <doc xml:space="preserve">the #GstCapsFeatures to merge</doc>
  5515. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5516. </parameter>
  5517. </parameters>
  5518. </method>
  5519. <method name="normalize" c:identifier="gst_caps_normalize">
  5520. <doc xml:space="preserve">Returns a #GstCaps that represents the same set of formats as
  5521. @caps, but contains no lists. Each list is expanded into separate
  5522. @GstStructures.
  5523. This function takes ownership of @caps and will call gst_caps_make_writable()
  5524. on it so you must not use @caps afterwards unless you keep an additional
  5525. reference to it with gst_caps_ref().</doc>
  5526. <return-value transfer-ownership="full">
  5527. <doc xml:space="preserve">the normalized #GstCaps</doc>
  5528. <type name="Caps" c:type="GstCaps*"/>
  5529. </return-value>
  5530. <parameters>
  5531. <instance-parameter name="caps" transfer-ownership="full">
  5532. <doc xml:space="preserve">a #GstCaps to normalize</doc>
  5533. <type name="Caps" c:type="GstCaps*"/>
  5534. </instance-parameter>
  5535. </parameters>
  5536. </method>
  5537. <method name="remove_structure" c:identifier="gst_caps_remove_structure">
  5538. <doc xml:space="preserve">removes the structure with the given index from the list of structures
  5539. contained in @caps.</doc>
  5540. <return-value transfer-ownership="none">
  5541. <type name="none" c:type="void"/>
  5542. </return-value>
  5543. <parameters>
  5544. <instance-parameter name="caps" transfer-ownership="none">
  5545. <doc xml:space="preserve">the #GstCaps to remove from</doc>
  5546. <type name="Caps" c:type="GstCaps*"/>
  5547. </instance-parameter>
  5548. <parameter name="idx" transfer-ownership="none">
  5549. <doc xml:space="preserve">Index of the structure to remove</doc>
  5550. <type name="guint" c:type="guint"/>
  5551. </parameter>
  5552. </parameters>
  5553. </method>
  5554. <method name="set_features"
  5555. c:identifier="gst_caps_set_features"
  5556. version="1.2">
  5557. <doc xml:space="preserve">Sets the #GstCapsFeatures @features for the structure at @index.</doc>
  5558. <return-value transfer-ownership="none">
  5559. <type name="none" c:type="void"/>
  5560. </return-value>
  5561. <parameters>
  5562. <instance-parameter name="caps" transfer-ownership="none">
  5563. <doc xml:space="preserve">a #GstCaps</doc>
  5564. <type name="Caps" c:type="GstCaps*"/>
  5565. </instance-parameter>
  5566. <parameter name="index" transfer-ownership="none">
  5567. <doc xml:space="preserve">the index of the structure</doc>
  5568. <type name="guint" c:type="guint"/>
  5569. </parameter>
  5570. <parameter name="features"
  5571. transfer-ownership="full"
  5572. nullable="1"
  5573. allow-none="1">
  5574. <doc xml:space="preserve">the #GstCapsFeatures to set</doc>
  5575. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5576. </parameter>
  5577. </parameters>
  5578. </method>
  5579. <method name="set_simple"
  5580. c:identifier="gst_caps_set_simple"
  5581. introspectable="0">
  5582. <doc xml:space="preserve">Sets fields in a #GstCaps. The arguments must be passed in the same
  5583. manner as gst_structure_set(), and be %NULL-terminated.</doc>
  5584. <return-value transfer-ownership="none">
  5585. <type name="none" c:type="void"/>
  5586. </return-value>
  5587. <parameters>
  5588. <instance-parameter name="caps" transfer-ownership="none">
  5589. <doc xml:space="preserve">the #GstCaps to set</doc>
  5590. <type name="Caps" c:type="GstCaps*"/>
  5591. </instance-parameter>
  5592. <parameter name="field" transfer-ownership="none">
  5593. <doc xml:space="preserve">first field to set</doc>
  5594. <type name="utf8" c:type="const char*"/>
  5595. </parameter>
  5596. <parameter name="..." transfer-ownership="none">
  5597. <doc xml:space="preserve">additional parameters</doc>
  5598. <varargs/>
  5599. </parameter>
  5600. </parameters>
  5601. </method>
  5602. <method name="set_simple_valist"
  5603. c:identifier="gst_caps_set_simple_valist"
  5604. introspectable="0">
  5605. <doc xml:space="preserve">Sets fields in a #GstCaps. The arguments must be passed in the same
  5606. manner as gst_structure_set(), and be %NULL-terminated.</doc>
  5607. <return-value transfer-ownership="none">
  5608. <type name="none" c:type="void"/>
  5609. </return-value>
  5610. <parameters>
  5611. <instance-parameter name="caps" transfer-ownership="none">
  5612. <doc xml:space="preserve">the #GstCaps to set</doc>
  5613. <type name="Caps" c:type="GstCaps*"/>
  5614. </instance-parameter>
  5615. <parameter name="field" transfer-ownership="none">
  5616. <doc xml:space="preserve">first field to set</doc>
  5617. <type name="utf8" c:type="const char*"/>
  5618. </parameter>
  5619. <parameter name="varargs" transfer-ownership="none">
  5620. <doc xml:space="preserve">additional parameters</doc>
  5621. <type name="va_list" c:type="va_list"/>
  5622. </parameter>
  5623. </parameters>
  5624. </method>
  5625. <method name="set_value" c:identifier="gst_caps_set_value">
  5626. <doc xml:space="preserve">Sets the given @field on all structures of @caps to the given @value.
  5627. This is a convenience function for calling gst_structure_set_value() on
  5628. all structures of @caps.</doc>
  5629. <return-value transfer-ownership="none">
  5630. <type name="none" c:type="void"/>
  5631. </return-value>
  5632. <parameters>
  5633. <instance-parameter name="caps" transfer-ownership="none">
  5634. <doc xml:space="preserve">a writable caps</doc>
  5635. <type name="Caps" c:type="GstCaps*"/>
  5636. </instance-parameter>
  5637. <parameter name="field" transfer-ownership="none">
  5638. <doc xml:space="preserve">name of the field to set</doc>
  5639. <type name="utf8" c:type="const char*"/>
  5640. </parameter>
  5641. <parameter name="value" transfer-ownership="none">
  5642. <doc xml:space="preserve">value to set the field to</doc>
  5643. <type name="GObject.Value" c:type="const GValue*"/>
  5644. </parameter>
  5645. </parameters>
  5646. </method>
  5647. <method name="simplify" c:identifier="gst_caps_simplify">
  5648. <doc xml:space="preserve">Converts the given @caps into a representation that represents the
  5649. same set of formats, but in a simpler form. Component structures that are
  5650. identical are merged. Component structures that have values that can be
  5651. merged are also merged.
  5652. This function takes ownership of @caps and will call gst_caps_make_writable()
  5653. on it if necessary, so you must not use @caps afterwards unless you keep an
  5654. additional reference to it with gst_caps_ref().
  5655. This method does not preserve the original order of @caps.</doc>
  5656. <return-value transfer-ownership="full">
  5657. <doc xml:space="preserve">The simplified caps.</doc>
  5658. <type name="Caps" c:type="GstCaps*"/>
  5659. </return-value>
  5660. <parameters>
  5661. <instance-parameter name="caps" transfer-ownership="full">
  5662. <doc xml:space="preserve">a #GstCaps to simplify</doc>
  5663. <type name="Caps" c:type="GstCaps*"/>
  5664. </instance-parameter>
  5665. </parameters>
  5666. </method>
  5667. <method name="steal_structure" c:identifier="gst_caps_steal_structure">
  5668. <doc xml:space="preserve">Retrieves the structure with the given index from the list of structures
  5669. contained in @caps. The caller becomes the owner of the returned structure.</doc>
  5670. <return-value transfer-ownership="full">
  5671. <doc xml:space="preserve">a pointer to the #GstStructure corresponding
  5672. to @index.</doc>
  5673. <type name="Structure" c:type="GstStructure*"/>
  5674. </return-value>
  5675. <parameters>
  5676. <instance-parameter name="caps" transfer-ownership="none">
  5677. <doc xml:space="preserve">the #GstCaps to retrieve from</doc>
  5678. <type name="Caps" c:type="GstCaps*"/>
  5679. </instance-parameter>
  5680. <parameter name="index" transfer-ownership="none">
  5681. <doc xml:space="preserve">Index of the structure to retrieve</doc>
  5682. <type name="guint" c:type="guint"/>
  5683. </parameter>
  5684. </parameters>
  5685. </method>
  5686. <method name="subtract" c:identifier="gst_caps_subtract">
  5687. <doc xml:space="preserve">Subtracts the @subtrahend from the @minuend.
  5688. &lt;note&gt;This function does not work reliably if optional properties for caps
  5689. are included on one caps and omitted on the other.&lt;/note&gt;</doc>
  5690. <return-value transfer-ownership="full">
  5691. <doc xml:space="preserve">the resulting caps</doc>
  5692. <type name="Caps" c:type="GstCaps*"/>
  5693. </return-value>
  5694. <parameters>
  5695. <instance-parameter name="minuend" transfer-ownership="none">
  5696. <doc xml:space="preserve">#GstCaps to subtract from</doc>
  5697. <type name="Caps" c:type="GstCaps*"/>
  5698. </instance-parameter>
  5699. <parameter name="subtrahend" transfer-ownership="none">
  5700. <doc xml:space="preserve">#GstCaps to subtract</doc>
  5701. <type name="Caps" c:type="GstCaps*"/>
  5702. </parameter>
  5703. </parameters>
  5704. </method>
  5705. <method name="to_string" c:identifier="gst_caps_to_string">
  5706. <doc xml:space="preserve">Converts @caps to a string representation. This string representation
  5707. can be converted back to a #GstCaps by gst_caps_from_string().
  5708. For debugging purposes its easier to do something like this:
  5709. |[&lt;!-- language="C" --&gt;
  5710. GST_LOG ("caps are %" GST_PTR_FORMAT, caps);
  5711. ]|
  5712. This prints the caps in human readable form.
  5713. The current implementation of serialization will lead to unexpected results
  5714. when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
  5715. <return-value transfer-ownership="full">
  5716. <doc xml:space="preserve">a newly allocated string representing @caps.</doc>
  5717. <type name="utf8" c:type="gchar*"/>
  5718. </return-value>
  5719. <parameters>
  5720. <instance-parameter name="caps" transfer-ownership="none">
  5721. <doc xml:space="preserve">a #GstCaps</doc>
  5722. <type name="Caps" c:type="const GstCaps*"/>
  5723. </instance-parameter>
  5724. </parameters>
  5725. </method>
  5726. <method name="truncate" c:identifier="gst_caps_truncate">
  5727. <doc xml:space="preserve">Discard all but the first structure from @caps. Useful when
  5728. fixating.
  5729. This function takes ownership of @caps and will call gst_caps_make_writable()
  5730. on it if necessary, so you must not use @caps afterwards unless you keep an
  5731. additional reference to it with gst_caps_ref().</doc>
  5732. <return-value transfer-ownership="full">
  5733. <doc xml:space="preserve">truncated caps</doc>
  5734. <type name="Caps" c:type="GstCaps*"/>
  5735. </return-value>
  5736. <parameters>
  5737. <instance-parameter name="caps" transfer-ownership="full">
  5738. <doc xml:space="preserve">the #GstCaps to truncate</doc>
  5739. <type name="Caps" c:type="GstCaps*"/>
  5740. </instance-parameter>
  5741. </parameters>
  5742. </method>
  5743. <function name="from_string" c:identifier="gst_caps_from_string">
  5744. <doc xml:space="preserve">Converts @caps from a string representation.
  5745. The current implementation of serialization will lead to unexpected results
  5746. when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
  5747. <return-value transfer-ownership="full">
  5748. <doc xml:space="preserve">a newly allocated #GstCaps</doc>
  5749. <type name="Caps" c:type="GstCaps*"/>
  5750. </return-value>
  5751. <parameters>
  5752. <parameter name="string" transfer-ownership="none">
  5753. <doc xml:space="preserve">a string to convert to #GstCaps</doc>
  5754. <type name="utf8" c:type="const gchar*"/>
  5755. </parameter>
  5756. </parameters>
  5757. </function>
  5758. </record>
  5759. <record name="CapsFeatures"
  5760. c:type="GstCapsFeatures"
  5761. glib:type-name="GstCapsFeatures"
  5762. glib:get-type="gst_caps_features_get_type"
  5763. c:symbol-prefix="caps_features">
  5764. <doc xml:space="preserve">#GstCapsFeatures can optionally be set on a #GstCaps to add requirements
  5765. for additional features for a specific #GstStructure. Caps structures with
  5766. the same name but with a non-equal set of caps features are not compatible.
  5767. If a pad supports multiple sets of features it has to add multiple equal
  5768. structures with different feature sets to the caps.
  5769. Empty #GstCapsFeatures are equivalent with the #GstCapsFeatures that only
  5770. contain #GST_CAPS_FEATURE_MEMORY_SYSTEM_MEMORY. ANY #GstCapsFeatures as
  5771. created by gst_caps_features_new_any() are equal to any other #GstCapsFeatures
  5772. and can be used to specify that any #GstCapsFeatures would be supported, e.g.
  5773. for elements that don't touch buffer memory. #GstCaps with ANY #GstCapsFeatures
  5774. are considered non-fixed and during negotiation some #GstCapsFeatures have
  5775. to be selected.
  5776. Examples for caps features would be the requirement of a specific #GstMemory
  5777. types or the requirement of having a specific #GstMeta on the buffer. Features
  5778. are given as a string of the format "memory:GstMemoryTypeName" or
  5779. "meta:GstMetaAPIName".</doc>
  5780. <constructor name="new"
  5781. c:identifier="gst_caps_features_new"
  5782. version="1.2"
  5783. introspectable="0">
  5784. <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
  5785. The last argument must be %NULL.
  5786. Free-function: gst_caps_features_free</doc>
  5787. <return-value transfer-ownership="full">
  5788. <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
  5789. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5790. </return-value>
  5791. <parameters>
  5792. <parameter name="feature1" transfer-ownership="none">
  5793. <doc xml:space="preserve">name of first feature to set</doc>
  5794. <type name="utf8" c:type="const gchar*"/>
  5795. </parameter>
  5796. <parameter name="..." transfer-ownership="none">
  5797. <doc xml:space="preserve">additional features</doc>
  5798. <varargs/>
  5799. </parameter>
  5800. </parameters>
  5801. </constructor>
  5802. <constructor name="new_any"
  5803. c:identifier="gst_caps_features_new_any"
  5804. version="1.2">
  5805. <doc xml:space="preserve">Creates a new, ANY #GstCapsFeatures. This will be equal
  5806. to any other #GstCapsFeatures but caps with these are
  5807. unfixed.
  5808. Free-function: gst_caps_features_free</doc>
  5809. <return-value transfer-ownership="full">
  5810. <doc xml:space="preserve">a new, ANY #GstCapsFeatures</doc>
  5811. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5812. </return-value>
  5813. </constructor>
  5814. <constructor name="new_empty"
  5815. c:identifier="gst_caps_features_new_empty"
  5816. version="1.2">
  5817. <doc xml:space="preserve">Creates a new, empty #GstCapsFeatures.
  5818. Free-function: gst_caps_features_free</doc>
  5819. <return-value transfer-ownership="full">
  5820. <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
  5821. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5822. </return-value>
  5823. </constructor>
  5824. <constructor name="new_id"
  5825. c:identifier="gst_caps_features_new_id"
  5826. version="1.2"
  5827. introspectable="0">
  5828. <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
  5829. The last argument must be 0.
  5830. Free-function: gst_caps_features_free</doc>
  5831. <return-value transfer-ownership="full">
  5832. <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
  5833. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5834. </return-value>
  5835. <parameters>
  5836. <parameter name="feature1" transfer-ownership="none">
  5837. <doc xml:space="preserve">name of first feature to set</doc>
  5838. <type name="GLib.Quark" c:type="GQuark"/>
  5839. </parameter>
  5840. <parameter name="..." transfer-ownership="none">
  5841. <doc xml:space="preserve">additional features</doc>
  5842. <varargs/>
  5843. </parameter>
  5844. </parameters>
  5845. </constructor>
  5846. <constructor name="new_id_valist"
  5847. c:identifier="gst_caps_features_new_id_valist"
  5848. version="1.2"
  5849. introspectable="0">
  5850. <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
  5851. Free-function: gst_caps_features_free</doc>
  5852. <return-value transfer-ownership="full">
  5853. <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
  5854. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5855. </return-value>
  5856. <parameters>
  5857. <parameter name="feature1" transfer-ownership="none">
  5858. <doc xml:space="preserve">name of first feature to set</doc>
  5859. <type name="GLib.Quark" c:type="GQuark"/>
  5860. </parameter>
  5861. <parameter name="varargs" transfer-ownership="none">
  5862. <doc xml:space="preserve">variable argument list</doc>
  5863. <type name="va_list" c:type="va_list"/>
  5864. </parameter>
  5865. </parameters>
  5866. </constructor>
  5867. <constructor name="new_valist"
  5868. c:identifier="gst_caps_features_new_valist"
  5869. version="1.2"
  5870. introspectable="0">
  5871. <doc xml:space="preserve">Creates a new #GstCapsFeatures with the given features.
  5872. Free-function: gst_caps_features_free</doc>
  5873. <return-value transfer-ownership="full">
  5874. <doc xml:space="preserve">a new, empty #GstCapsFeatures</doc>
  5875. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5876. </return-value>
  5877. <parameters>
  5878. <parameter name="feature1" transfer-ownership="none">
  5879. <doc xml:space="preserve">name of first feature to set</doc>
  5880. <type name="utf8" c:type="const gchar*"/>
  5881. </parameter>
  5882. <parameter name="varargs" transfer-ownership="none">
  5883. <doc xml:space="preserve">variable argument list</doc>
  5884. <type name="va_list" c:type="va_list"/>
  5885. </parameter>
  5886. </parameters>
  5887. </constructor>
  5888. <method name="add" c:identifier="gst_caps_features_add" version="1.2">
  5889. <doc xml:space="preserve">Adds @feature to @features.</doc>
  5890. <return-value transfer-ownership="none">
  5891. <type name="none" c:type="void"/>
  5892. </return-value>
  5893. <parameters>
  5894. <instance-parameter name="features" transfer-ownership="none">
  5895. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  5896. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5897. </instance-parameter>
  5898. <parameter name="feature" transfer-ownership="none">
  5899. <doc xml:space="preserve">a feature.</doc>
  5900. <type name="utf8" c:type="const gchar*"/>
  5901. </parameter>
  5902. </parameters>
  5903. </method>
  5904. <method name="add_id"
  5905. c:identifier="gst_caps_features_add_id"
  5906. version="1.2">
  5907. <doc xml:space="preserve">Adds @feature to @features.</doc>
  5908. <return-value transfer-ownership="none">
  5909. <type name="none" c:type="void"/>
  5910. </return-value>
  5911. <parameters>
  5912. <instance-parameter name="features" transfer-ownership="none">
  5913. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  5914. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5915. </instance-parameter>
  5916. <parameter name="feature" transfer-ownership="none">
  5917. <doc xml:space="preserve">a feature.</doc>
  5918. <type name="GLib.Quark" c:type="GQuark"/>
  5919. </parameter>
  5920. </parameters>
  5921. </method>
  5922. <method name="contains"
  5923. c:identifier="gst_caps_features_contains"
  5924. version="1.2">
  5925. <doc xml:space="preserve">Check if @features contains @feature.</doc>
  5926. <return-value transfer-ownership="none">
  5927. <doc xml:space="preserve">%TRUE if @features contains @feature.</doc>
  5928. <type name="gboolean" c:type="gboolean"/>
  5929. </return-value>
  5930. <parameters>
  5931. <instance-parameter name="features" transfer-ownership="none">
  5932. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  5933. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  5934. </instance-parameter>
  5935. <parameter name="feature" transfer-ownership="none">
  5936. <doc xml:space="preserve">a feature</doc>
  5937. <type name="utf8" c:type="const gchar*"/>
  5938. </parameter>
  5939. </parameters>
  5940. </method>
  5941. <method name="contains_id"
  5942. c:identifier="gst_caps_features_contains_id"
  5943. version="1.2">
  5944. <doc xml:space="preserve">Check if @features contains @feature.</doc>
  5945. <return-value transfer-ownership="none">
  5946. <doc xml:space="preserve">%TRUE if @features contains @feature.</doc>
  5947. <type name="gboolean" c:type="gboolean"/>
  5948. </return-value>
  5949. <parameters>
  5950. <instance-parameter name="features" transfer-ownership="none">
  5951. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  5952. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  5953. </instance-parameter>
  5954. <parameter name="feature" transfer-ownership="none">
  5955. <doc xml:space="preserve">a feature</doc>
  5956. <type name="GLib.Quark" c:type="GQuark"/>
  5957. </parameter>
  5958. </parameters>
  5959. </method>
  5960. <method name="copy" c:identifier="gst_caps_features_copy" version="1.2">
  5961. <doc xml:space="preserve">Duplicates a #GstCapsFeatures and all its values.
  5962. Free-function: gst_caps_features_free</doc>
  5963. <return-value transfer-ownership="full">
  5964. <doc xml:space="preserve">a new #GstCapsFeatures.</doc>
  5965. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5966. </return-value>
  5967. <parameters>
  5968. <instance-parameter name="features" transfer-ownership="none">
  5969. <doc xml:space="preserve">a #GstCapsFeatures to duplicate</doc>
  5970. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  5971. </instance-parameter>
  5972. </parameters>
  5973. </method>
  5974. <method name="free" c:identifier="gst_caps_features_free" version="1.2">
  5975. <doc xml:space="preserve">Frees a #GstCapsFeatures and all its values. The caps features must not
  5976. have a parent when this function is called.</doc>
  5977. <return-value transfer-ownership="none">
  5978. <type name="none" c:type="void"/>
  5979. </return-value>
  5980. <parameters>
  5981. <instance-parameter name="features" transfer-ownership="full">
  5982. <doc xml:space="preserve">the #GstCapsFeatures to free</doc>
  5983. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  5984. </instance-parameter>
  5985. </parameters>
  5986. </method>
  5987. <method name="get_nth"
  5988. c:identifier="gst_caps_features_get_nth"
  5989. version="1.2">
  5990. <doc xml:space="preserve">Returns the @i-th feature of @features.</doc>
  5991. <return-value transfer-ownership="none">
  5992. <doc xml:space="preserve">The @i-th feature of @features.</doc>
  5993. <type name="utf8" c:type="const gchar*"/>
  5994. </return-value>
  5995. <parameters>
  5996. <instance-parameter name="features" transfer-ownership="none">
  5997. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  5998. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  5999. </instance-parameter>
  6000. <parameter name="i" transfer-ownership="none">
  6001. <doc xml:space="preserve">index of the feature</doc>
  6002. <type name="guint" c:type="guint"/>
  6003. </parameter>
  6004. </parameters>
  6005. </method>
  6006. <method name="get_nth_id"
  6007. c:identifier="gst_caps_features_get_nth_id"
  6008. version="1.2">
  6009. <doc xml:space="preserve">Returns the @i-th feature of @features.</doc>
  6010. <return-value transfer-ownership="none">
  6011. <doc xml:space="preserve">The @i-th feature of @features.</doc>
  6012. <type name="GLib.Quark" c:type="GQuark"/>
  6013. </return-value>
  6014. <parameters>
  6015. <instance-parameter name="features" transfer-ownership="none">
  6016. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6017. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  6018. </instance-parameter>
  6019. <parameter name="i" transfer-ownership="none">
  6020. <doc xml:space="preserve">index of the feature</doc>
  6021. <type name="guint" c:type="guint"/>
  6022. </parameter>
  6023. </parameters>
  6024. </method>
  6025. <method name="get_size"
  6026. c:identifier="gst_caps_features_get_size"
  6027. version="1.2">
  6028. <doc xml:space="preserve">Returns the number of features in @features.</doc>
  6029. <return-value transfer-ownership="none">
  6030. <doc xml:space="preserve">The number of features in @features.</doc>
  6031. <type name="guint" c:type="guint"/>
  6032. </return-value>
  6033. <parameters>
  6034. <instance-parameter name="features" transfer-ownership="none">
  6035. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6036. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  6037. </instance-parameter>
  6038. </parameters>
  6039. </method>
  6040. <method name="is_any"
  6041. c:identifier="gst_caps_features_is_any"
  6042. version="1.2">
  6043. <doc xml:space="preserve">Check if @features is %GST_CAPS_FEATURES_ANY.</doc>
  6044. <return-value transfer-ownership="none">
  6045. <doc xml:space="preserve">%TRUE if @features is %GST_CAPS_FEATURES_ANY.</doc>
  6046. <type name="gboolean" c:type="gboolean"/>
  6047. </return-value>
  6048. <parameters>
  6049. <instance-parameter name="features" transfer-ownership="none">
  6050. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6051. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  6052. </instance-parameter>
  6053. </parameters>
  6054. </method>
  6055. <method name="is_equal"
  6056. c:identifier="gst_caps_features_is_equal"
  6057. version="1.2">
  6058. <doc xml:space="preserve">Check if @features1 and @features2 are equal.</doc>
  6059. <return-value transfer-ownership="none">
  6060. <doc xml:space="preserve">%TRUE if @features1 and @features2 are equal.</doc>
  6061. <type name="gboolean" c:type="gboolean"/>
  6062. </return-value>
  6063. <parameters>
  6064. <instance-parameter name="features1" transfer-ownership="none">
  6065. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6066. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  6067. </instance-parameter>
  6068. <parameter name="features2" transfer-ownership="none">
  6069. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6070. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  6071. </parameter>
  6072. </parameters>
  6073. </method>
  6074. <method name="remove"
  6075. c:identifier="gst_caps_features_remove"
  6076. version="1.2">
  6077. <doc xml:space="preserve">Removes @feature from @features.</doc>
  6078. <return-value transfer-ownership="none">
  6079. <type name="none" c:type="void"/>
  6080. </return-value>
  6081. <parameters>
  6082. <instance-parameter name="features" transfer-ownership="none">
  6083. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6084. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6085. </instance-parameter>
  6086. <parameter name="feature" transfer-ownership="none">
  6087. <doc xml:space="preserve">a feature.</doc>
  6088. <type name="utf8" c:type="const gchar*"/>
  6089. </parameter>
  6090. </parameters>
  6091. </method>
  6092. <method name="remove_id"
  6093. c:identifier="gst_caps_features_remove_id"
  6094. version="1.2">
  6095. <doc xml:space="preserve">Removes @feature from @features.</doc>
  6096. <return-value transfer-ownership="none">
  6097. <type name="none" c:type="void"/>
  6098. </return-value>
  6099. <parameters>
  6100. <instance-parameter name="features" transfer-ownership="none">
  6101. <doc xml:space="preserve">a #GstCapsFeatures.</doc>
  6102. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6103. </instance-parameter>
  6104. <parameter name="feature" transfer-ownership="none">
  6105. <doc xml:space="preserve">a feature.</doc>
  6106. <type name="GLib.Quark" c:type="GQuark"/>
  6107. </parameter>
  6108. </parameters>
  6109. </method>
  6110. <method name="set_parent_refcount"
  6111. c:identifier="gst_caps_features_set_parent_refcount"
  6112. version="1.2">
  6113. <doc xml:space="preserve">Sets the parent_refcount field of #GstCapsFeatures. This field is used to
  6114. determine whether a caps features is mutable or not. This function should only be
  6115. called by code implementing parent objects of #GstCapsFeatures, as described in
  6116. the MT Refcounting section of the design documents.</doc>
  6117. <return-value transfer-ownership="none">
  6118. <doc xml:space="preserve">%TRUE if the parent refcount could be set.</doc>
  6119. <type name="gboolean" c:type="gboolean"/>
  6120. </return-value>
  6121. <parameters>
  6122. <instance-parameter name="features" transfer-ownership="none">
  6123. <doc xml:space="preserve">a #GstCapsFeatures</doc>
  6124. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6125. </instance-parameter>
  6126. <parameter name="refcount" transfer-ownership="none">
  6127. <doc xml:space="preserve">a pointer to the parent's refcount</doc>
  6128. <type name="gint" c:type="gint*"/>
  6129. </parameter>
  6130. </parameters>
  6131. </method>
  6132. <method name="to_string"
  6133. c:identifier="gst_caps_features_to_string"
  6134. version="1.2">
  6135. <doc xml:space="preserve">Converts @features to a human-readable string representation.
  6136. For debugging purposes its easier to do something like this:
  6137. |[&lt;!-- language="C" --&gt;
  6138. GST_LOG ("features is %" GST_PTR_FORMAT, features);
  6139. ]|
  6140. This prints the features in human readable form.
  6141. Free-function: g_free</doc>
  6142. <return-value transfer-ownership="full">
  6143. <doc xml:space="preserve">a pointer to string allocated by g_malloc().
  6144. g_free() after usage.</doc>
  6145. <type name="utf8" c:type="gchar*"/>
  6146. </return-value>
  6147. <parameters>
  6148. <instance-parameter name="features" transfer-ownership="none">
  6149. <doc xml:space="preserve">a #GstCapsFeatures</doc>
  6150. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  6151. </instance-parameter>
  6152. </parameters>
  6153. </method>
  6154. <function name="from_string"
  6155. c:identifier="gst_caps_features_from_string"
  6156. version="1.2">
  6157. <doc xml:space="preserve">Creates a #GstCapsFeatures from a string representation.
  6158. Free-function: gst_caps_features_free</doc>
  6159. <return-value transfer-ownership="full" nullable="1">
  6160. <doc xml:space="preserve">a new #GstCapsFeatures or
  6161. %NULL when the string could not be parsed. Free with
  6162. gst_caps_features_free() after use.</doc>
  6163. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6164. </return-value>
  6165. <parameters>
  6166. <parameter name="features" transfer-ownership="none">
  6167. <doc xml:space="preserve">a string representation of a #GstCapsFeatures.</doc>
  6168. <type name="utf8" c:type="const gchar*"/>
  6169. </parameter>
  6170. </parameters>
  6171. </function>
  6172. </record>
  6173. <callback name="CapsFilterMapFunc" c:type="GstCapsFilterMapFunc">
  6174. <doc xml:space="preserve">A function that will be called in gst_caps_filter_and_map_in_place().
  6175. The function may modify @features and @structure, and both will be
  6176. removed from the caps if %FALSE is returned.</doc>
  6177. <return-value transfer-ownership="none">
  6178. <doc xml:space="preserve">%TRUE if the features and structure should be preserved,
  6179. %FALSE if it should be removed.</doc>
  6180. <type name="gboolean" c:type="gboolean"/>
  6181. </return-value>
  6182. <parameters>
  6183. <parameter name="features" transfer-ownership="none">
  6184. <doc xml:space="preserve">the #GstCapsFeatures</doc>
  6185. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6186. </parameter>
  6187. <parameter name="structure" transfer-ownership="none">
  6188. <doc xml:space="preserve">the #GstStructure</doc>
  6189. <type name="Structure" c:type="GstStructure*"/>
  6190. </parameter>
  6191. <parameter name="user_data"
  6192. transfer-ownership="none"
  6193. nullable="1"
  6194. allow-none="1"
  6195. closure="2">
  6196. <doc xml:space="preserve">user data</doc>
  6197. <type name="gpointer" c:type="gpointer"/>
  6198. </parameter>
  6199. </parameters>
  6200. </callback>
  6201. <bitfield name="CapsFlags"
  6202. glib:type-name="GstCapsFlags"
  6203. glib:get-type="gst_caps_flags_get_type"
  6204. c:type="GstCapsFlags">
  6205. <doc xml:space="preserve">Extra flags for a caps.</doc>
  6206. <member name="any"
  6207. value="16"
  6208. c:identifier="GST_CAPS_FLAG_ANY"
  6209. glib:nick="any">
  6210. <doc xml:space="preserve">Caps has no specific content, but can contain
  6211. anything.</doc>
  6212. </member>
  6213. </bitfield>
  6214. <callback name="CapsForeachFunc" c:type="GstCapsForeachFunc" version="1.6">
  6215. <doc xml:space="preserve">A function that will be called in gst_caps_foreach(). The function may
  6216. not modify @features or @structure.</doc>
  6217. <return-value transfer-ownership="none">
  6218. <doc xml:space="preserve">%TRUE if the foreach operation should continue, %FALSE if
  6219. the foreach operation should stop with %FALSE.</doc>
  6220. <type name="gboolean" c:type="gboolean"/>
  6221. </return-value>
  6222. <parameters>
  6223. <parameter name="features" transfer-ownership="none">
  6224. <doc xml:space="preserve">the #GstCapsFeatures</doc>
  6225. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6226. </parameter>
  6227. <parameter name="structure" transfer-ownership="none">
  6228. <doc xml:space="preserve">the #GstStructure</doc>
  6229. <type name="Structure" c:type="GstStructure*"/>
  6230. </parameter>
  6231. <parameter name="user_data"
  6232. transfer-ownership="none"
  6233. nullable="1"
  6234. allow-none="1"
  6235. closure="2">
  6236. <doc xml:space="preserve">user data</doc>
  6237. <type name="gpointer" c:type="gpointer"/>
  6238. </parameter>
  6239. </parameters>
  6240. </callback>
  6241. <enumeration name="CapsIntersectMode"
  6242. glib:type-name="GstCapsIntersectMode"
  6243. glib:get-type="gst_caps_intersect_mode_get_type"
  6244. c:type="GstCapsIntersectMode">
  6245. <doc xml:space="preserve">Modes of caps intersection
  6246. @GST_CAPS_INTERSECT_ZIG_ZAG tries to preserve overall order of both caps
  6247. by iterating on the caps' structures as the following matrix shows:
  6248. |[
  6249. caps1
  6250. +-------------
  6251. | 1 2 4 7
  6252. caps2 | 3 5 8 10
  6253. | 6 9 11 12
  6254. ]|
  6255. Used when there is no explicit precedence of one caps over the other. e.g.
  6256. tee's sink pad getcaps function, it will probe its src pad peers' for their
  6257. caps and intersect them with this mode.
  6258. @GST_CAPS_INTERSECT_FIRST is useful when an element wants to preserve
  6259. another element's caps priority order when intersecting with its own caps.
  6260. Example: If caps1 is [A, B, C] and caps2 is [E, B, D, A], the result
  6261. would be [A, B], maintaining the first caps priority on the intersection.</doc>
  6262. <member name="zig_zag"
  6263. value="0"
  6264. c:identifier="GST_CAPS_INTERSECT_ZIG_ZAG"
  6265. glib:nick="zig-zag">
  6266. <doc xml:space="preserve">Zig-zags over both caps.</doc>
  6267. </member>
  6268. <member name="first"
  6269. value="1"
  6270. c:identifier="GST_CAPS_INTERSECT_FIRST"
  6271. glib:nick="first">
  6272. <doc xml:space="preserve">Keeps the first caps order.</doc>
  6273. </member>
  6274. </enumeration>
  6275. <callback name="CapsMapFunc" c:type="GstCapsMapFunc">
  6276. <doc xml:space="preserve">A function that will be called in gst_caps_map_in_place(). The function
  6277. may modify @features and @structure.</doc>
  6278. <return-value transfer-ownership="none">
  6279. <doc xml:space="preserve">%TRUE if the map operation should continue, %FALSE if
  6280. the map operation should stop with %FALSE.</doc>
  6281. <type name="gboolean" c:type="gboolean"/>
  6282. </return-value>
  6283. <parameters>
  6284. <parameter name="features" transfer-ownership="none">
  6285. <doc xml:space="preserve">the #GstCapsFeatures</doc>
  6286. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  6287. </parameter>
  6288. <parameter name="structure" transfer-ownership="none">
  6289. <doc xml:space="preserve">the #GstStructure</doc>
  6290. <type name="Structure" c:type="GstStructure*"/>
  6291. </parameter>
  6292. <parameter name="user_data"
  6293. transfer-ownership="none"
  6294. nullable="1"
  6295. allow-none="1"
  6296. closure="2">
  6297. <doc xml:space="preserve">user data</doc>
  6298. <type name="gpointer" c:type="gpointer"/>
  6299. </parameter>
  6300. </parameters>
  6301. </callback>
  6302. <interface name="ChildProxy"
  6303. c:symbol-prefix="child_proxy"
  6304. c:type="GstChildProxy"
  6305. glib:type-name="GstChildProxy"
  6306. glib:get-type="gst_child_proxy_get_type"
  6307. glib:type-struct="ChildProxyInterface">
  6308. <doc xml:space="preserve">This interface abstracts handling of property sets for elements with
  6309. children. Imagine elements such as mixers or polyphonic generators. They all
  6310. have multiple #GstPad or some kind of voice objects. Another use case are
  6311. container elements like #GstBin.
  6312. The element implementing the interface acts as a parent for those child
  6313. objects.
  6314. By implementing this interface the child properties can be accessed from the
  6315. parent element by using gst_child_proxy_get() and gst_child_proxy_set().
  6316. Property names are written as "child-name::property-name". The whole naming
  6317. scheme is recursive. Thus "child1::child2::property" is valid too, if
  6318. "child1" and "child2" implement the #GstChildProxy interface.</doc>
  6319. <virtual-method name="child_added" invoker="child_added">
  6320. <doc xml:space="preserve">Emits the "child-added" signal.</doc>
  6321. <return-value transfer-ownership="none">
  6322. <type name="none" c:type="void"/>
  6323. </return-value>
  6324. <parameters>
  6325. <instance-parameter name="parent" transfer-ownership="none">
  6326. <doc xml:space="preserve">the parent object</doc>
  6327. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6328. </instance-parameter>
  6329. <parameter name="child" transfer-ownership="none">
  6330. <doc xml:space="preserve">the newly added child</doc>
  6331. <type name="GObject.Object" c:type="GObject*"/>
  6332. </parameter>
  6333. <parameter name="name" transfer-ownership="none">
  6334. <doc xml:space="preserve">the name of the new child</doc>
  6335. <type name="utf8" c:type="const gchar*"/>
  6336. </parameter>
  6337. </parameters>
  6338. </virtual-method>
  6339. <virtual-method name="child_removed" invoker="child_removed">
  6340. <doc xml:space="preserve">Emits the "child-removed" signal.</doc>
  6341. <return-value transfer-ownership="none">
  6342. <type name="none" c:type="void"/>
  6343. </return-value>
  6344. <parameters>
  6345. <instance-parameter name="parent" transfer-ownership="none">
  6346. <doc xml:space="preserve">the parent object</doc>
  6347. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6348. </instance-parameter>
  6349. <parameter name="child" transfer-ownership="none">
  6350. <doc xml:space="preserve">the removed child</doc>
  6351. <type name="GObject.Object" c:type="GObject*"/>
  6352. </parameter>
  6353. <parameter name="name" transfer-ownership="none">
  6354. <doc xml:space="preserve">the name of the old child</doc>
  6355. <type name="utf8" c:type="const gchar*"/>
  6356. </parameter>
  6357. </parameters>
  6358. </virtual-method>
  6359. <virtual-method name="get_child_by_index" invoker="get_child_by_index">
  6360. <doc xml:space="preserve">Fetches a child by its number.</doc>
  6361. <return-value transfer-ownership="full" nullable="1">
  6362. <doc xml:space="preserve">the child object or %NULL if
  6363. not found (index too high). Unref after usage.
  6364. MT safe.</doc>
  6365. <type name="GObject.Object" c:type="GObject*"/>
  6366. </return-value>
  6367. <parameters>
  6368. <instance-parameter name="parent" transfer-ownership="none">
  6369. <doc xml:space="preserve">the parent object to get the child from</doc>
  6370. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6371. </instance-parameter>
  6372. <parameter name="index" transfer-ownership="none">
  6373. <doc xml:space="preserve">the child's position in the child list</doc>
  6374. <type name="guint" c:type="guint"/>
  6375. </parameter>
  6376. </parameters>
  6377. </virtual-method>
  6378. <virtual-method name="get_child_by_name" invoker="get_child_by_name">
  6379. <doc xml:space="preserve">Looks up a child element by the given name.
  6380. This virtual method has a default implementation that uses #GstObject
  6381. together with gst_object_get_name(). If the interface is to be used with
  6382. #GObjects, this methods needs to be overridden.</doc>
  6383. <return-value transfer-ownership="full" nullable="1">
  6384. <doc xml:space="preserve">the child object or %NULL if
  6385. not found. Unref after usage.
  6386. MT safe.</doc>
  6387. <type name="GObject.Object" c:type="GObject*"/>
  6388. </return-value>
  6389. <parameters>
  6390. <instance-parameter name="parent" transfer-ownership="none">
  6391. <doc xml:space="preserve">the parent object to get the child from</doc>
  6392. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6393. </instance-parameter>
  6394. <parameter name="name" transfer-ownership="none">
  6395. <doc xml:space="preserve">the child's name</doc>
  6396. <type name="utf8" c:type="const gchar*"/>
  6397. </parameter>
  6398. </parameters>
  6399. </virtual-method>
  6400. <virtual-method name="get_children_count" invoker="get_children_count">
  6401. <doc xml:space="preserve">Gets the number of child objects this parent contains.</doc>
  6402. <return-value transfer-ownership="none">
  6403. <doc xml:space="preserve">the number of child objects
  6404. MT safe.</doc>
  6405. <type name="guint" c:type="guint"/>
  6406. </return-value>
  6407. <parameters>
  6408. <instance-parameter name="parent" transfer-ownership="none">
  6409. <doc xml:space="preserve">the parent object</doc>
  6410. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6411. </instance-parameter>
  6412. </parameters>
  6413. </virtual-method>
  6414. <method name="child_added" c:identifier="gst_child_proxy_child_added">
  6415. <doc xml:space="preserve">Emits the "child-added" signal.</doc>
  6416. <return-value transfer-ownership="none">
  6417. <type name="none" c:type="void"/>
  6418. </return-value>
  6419. <parameters>
  6420. <instance-parameter name="parent" transfer-ownership="none">
  6421. <doc xml:space="preserve">the parent object</doc>
  6422. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6423. </instance-parameter>
  6424. <parameter name="child" transfer-ownership="none">
  6425. <doc xml:space="preserve">the newly added child</doc>
  6426. <type name="GObject.Object" c:type="GObject*"/>
  6427. </parameter>
  6428. <parameter name="name" transfer-ownership="none">
  6429. <doc xml:space="preserve">the name of the new child</doc>
  6430. <type name="utf8" c:type="const gchar*"/>
  6431. </parameter>
  6432. </parameters>
  6433. </method>
  6434. <method name="child_removed"
  6435. c:identifier="gst_child_proxy_child_removed">
  6436. <doc xml:space="preserve">Emits the "child-removed" signal.</doc>
  6437. <return-value transfer-ownership="none">
  6438. <type name="none" c:type="void"/>
  6439. </return-value>
  6440. <parameters>
  6441. <instance-parameter name="parent" transfer-ownership="none">
  6442. <doc xml:space="preserve">the parent object</doc>
  6443. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6444. </instance-parameter>
  6445. <parameter name="child" transfer-ownership="none">
  6446. <doc xml:space="preserve">the removed child</doc>
  6447. <type name="GObject.Object" c:type="GObject*"/>
  6448. </parameter>
  6449. <parameter name="name" transfer-ownership="none">
  6450. <doc xml:space="preserve">the name of the old child</doc>
  6451. <type name="utf8" c:type="const gchar*"/>
  6452. </parameter>
  6453. </parameters>
  6454. </method>
  6455. <method name="get" c:identifier="gst_child_proxy_get" introspectable="0">
  6456. <doc xml:space="preserve">Gets properties of the parent object and its children.</doc>
  6457. <return-value transfer-ownership="none">
  6458. <type name="none" c:type="void"/>
  6459. </return-value>
  6460. <parameters>
  6461. <instance-parameter name="object" transfer-ownership="none">
  6462. <doc xml:space="preserve">the parent object</doc>
  6463. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6464. </instance-parameter>
  6465. <parameter name="first_property_name" transfer-ownership="none">
  6466. <doc xml:space="preserve">name of the first property to get</doc>
  6467. <type name="utf8" c:type="const gchar*"/>
  6468. </parameter>
  6469. <parameter name="..." transfer-ownership="none">
  6470. <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc>
  6471. <varargs/>
  6472. </parameter>
  6473. </parameters>
  6474. </method>
  6475. <method name="get_child_by_index"
  6476. c:identifier="gst_child_proxy_get_child_by_index">
  6477. <doc xml:space="preserve">Fetches a child by its number.</doc>
  6478. <return-value transfer-ownership="full" nullable="1">
  6479. <doc xml:space="preserve">the child object or %NULL if
  6480. not found (index too high). Unref after usage.
  6481. MT safe.</doc>
  6482. <type name="GObject.Object" c:type="GObject*"/>
  6483. </return-value>
  6484. <parameters>
  6485. <instance-parameter name="parent" transfer-ownership="none">
  6486. <doc xml:space="preserve">the parent object to get the child from</doc>
  6487. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6488. </instance-parameter>
  6489. <parameter name="index" transfer-ownership="none">
  6490. <doc xml:space="preserve">the child's position in the child list</doc>
  6491. <type name="guint" c:type="guint"/>
  6492. </parameter>
  6493. </parameters>
  6494. </method>
  6495. <method name="get_child_by_name"
  6496. c:identifier="gst_child_proxy_get_child_by_name">
  6497. <doc xml:space="preserve">Looks up a child element by the given name.
  6498. This virtual method has a default implementation that uses #GstObject
  6499. together with gst_object_get_name(). If the interface is to be used with
  6500. #GObjects, this methods needs to be overridden.</doc>
  6501. <return-value transfer-ownership="full" nullable="1">
  6502. <doc xml:space="preserve">the child object or %NULL if
  6503. not found. Unref after usage.
  6504. MT safe.</doc>
  6505. <type name="GObject.Object" c:type="GObject*"/>
  6506. </return-value>
  6507. <parameters>
  6508. <instance-parameter name="parent" transfer-ownership="none">
  6509. <doc xml:space="preserve">the parent object to get the child from</doc>
  6510. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6511. </instance-parameter>
  6512. <parameter name="name" transfer-ownership="none">
  6513. <doc xml:space="preserve">the child's name</doc>
  6514. <type name="utf8" c:type="const gchar*"/>
  6515. </parameter>
  6516. </parameters>
  6517. </method>
  6518. <method name="get_children_count"
  6519. c:identifier="gst_child_proxy_get_children_count">
  6520. <doc xml:space="preserve">Gets the number of child objects this parent contains.</doc>
  6521. <return-value transfer-ownership="none">
  6522. <doc xml:space="preserve">the number of child objects
  6523. MT safe.</doc>
  6524. <type name="guint" c:type="guint"/>
  6525. </return-value>
  6526. <parameters>
  6527. <instance-parameter name="parent" transfer-ownership="none">
  6528. <doc xml:space="preserve">the parent object</doc>
  6529. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6530. </instance-parameter>
  6531. </parameters>
  6532. </method>
  6533. <method name="get_property" c:identifier="gst_child_proxy_get_property">
  6534. <doc xml:space="preserve">Gets a single property using the GstChildProxy mechanism.
  6535. You are responsible for freeing it by calling g_value_unset()</doc>
  6536. <return-value transfer-ownership="none">
  6537. <type name="none" c:type="void"/>
  6538. </return-value>
  6539. <parameters>
  6540. <instance-parameter name="object" transfer-ownership="none">
  6541. <doc xml:space="preserve">object to query</doc>
  6542. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6543. </instance-parameter>
  6544. <parameter name="name" transfer-ownership="none">
  6545. <doc xml:space="preserve">name of the property</doc>
  6546. <type name="utf8" c:type="const gchar*"/>
  6547. </parameter>
  6548. <parameter name="value"
  6549. direction="out"
  6550. caller-allocates="1"
  6551. transfer-ownership="none">
  6552. <doc xml:space="preserve">a #GValue that should take the result.</doc>
  6553. <type name="GObject.Value" c:type="GValue*"/>
  6554. </parameter>
  6555. </parameters>
  6556. </method>
  6557. <method name="get_valist"
  6558. c:identifier="gst_child_proxy_get_valist"
  6559. introspectable="0">
  6560. <doc xml:space="preserve">Gets properties of the parent object and its children.</doc>
  6561. <return-value transfer-ownership="none">
  6562. <type name="none" c:type="void"/>
  6563. </return-value>
  6564. <parameters>
  6565. <instance-parameter name="object" transfer-ownership="none">
  6566. <doc xml:space="preserve">the object to query</doc>
  6567. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6568. </instance-parameter>
  6569. <parameter name="first_property_name" transfer-ownership="none">
  6570. <doc xml:space="preserve">name of the first property to get</doc>
  6571. <type name="utf8" c:type="const gchar*"/>
  6572. </parameter>
  6573. <parameter name="var_args" transfer-ownership="none">
  6574. <doc xml:space="preserve">return location for the first property, followed optionally by more name/return location pairs, followed by %NULL</doc>
  6575. <type name="va_list" c:type="va_list"/>
  6576. </parameter>
  6577. </parameters>
  6578. </method>
  6579. <method name="lookup" c:identifier="gst_child_proxy_lookup">
  6580. <doc xml:space="preserve">Looks up which object and #GParamSpec would be effected by the given @name.
  6581. MT safe.</doc>
  6582. <return-value transfer-ownership="none">
  6583. <doc xml:space="preserve">%TRUE if @target and @pspec could be found. %FALSE otherwise. In that
  6584. case the values for @pspec and @target are not modified. Unref @target after
  6585. usage. For plain GObjects @target is the same as @object.</doc>
  6586. <type name="gboolean" c:type="gboolean"/>
  6587. </return-value>
  6588. <parameters>
  6589. <instance-parameter name="object" transfer-ownership="none">
  6590. <doc xml:space="preserve">child proxy object to lookup the property in</doc>
  6591. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6592. </instance-parameter>
  6593. <parameter name="name" transfer-ownership="none">
  6594. <doc xml:space="preserve">name of the property to look up</doc>
  6595. <type name="utf8" c:type="const gchar*"/>
  6596. </parameter>
  6597. <parameter name="target"
  6598. direction="out"
  6599. caller-allocates="0"
  6600. transfer-ownership="full"
  6601. optional="1"
  6602. allow-none="1">
  6603. <doc xml:space="preserve">pointer to a #GObject that
  6604. takes the real object to set property on</doc>
  6605. <type name="GObject.Object" c:type="GObject**"/>
  6606. </parameter>
  6607. <parameter name="pspec"
  6608. direction="out"
  6609. caller-allocates="0"
  6610. transfer-ownership="none"
  6611. optional="1"
  6612. allow-none="1">
  6613. <doc xml:space="preserve">pointer to take the #GParamSpec
  6614. describing the property</doc>
  6615. <type name="GObject.ParamSpec" c:type="GParamSpec**"/>
  6616. </parameter>
  6617. </parameters>
  6618. </method>
  6619. <method name="set" c:identifier="gst_child_proxy_set" introspectable="0">
  6620. <doc xml:space="preserve">Sets properties of the parent object and its children.</doc>
  6621. <return-value transfer-ownership="none">
  6622. <type name="none" c:type="void"/>
  6623. </return-value>
  6624. <parameters>
  6625. <instance-parameter name="object" transfer-ownership="none">
  6626. <doc xml:space="preserve">the parent object</doc>
  6627. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6628. </instance-parameter>
  6629. <parameter name="first_property_name" transfer-ownership="none">
  6630. <doc xml:space="preserve">name of the first property to set</doc>
  6631. <type name="utf8" c:type="const gchar*"/>
  6632. </parameter>
  6633. <parameter name="..." transfer-ownership="none">
  6634. <doc xml:space="preserve">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
  6635. <varargs/>
  6636. </parameter>
  6637. </parameters>
  6638. </method>
  6639. <method name="set_property" c:identifier="gst_child_proxy_set_property">
  6640. <doc xml:space="preserve">Sets a single property using the GstChildProxy mechanism.</doc>
  6641. <return-value transfer-ownership="none">
  6642. <type name="none" c:type="void"/>
  6643. </return-value>
  6644. <parameters>
  6645. <instance-parameter name="object" transfer-ownership="none">
  6646. <doc xml:space="preserve">the parent object</doc>
  6647. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6648. </instance-parameter>
  6649. <parameter name="name" transfer-ownership="none">
  6650. <doc xml:space="preserve">name of the property to set</doc>
  6651. <type name="utf8" c:type="const gchar*"/>
  6652. </parameter>
  6653. <parameter name="value" transfer-ownership="none">
  6654. <doc xml:space="preserve">new #GValue for the property</doc>
  6655. <type name="GObject.Value" c:type="const GValue*"/>
  6656. </parameter>
  6657. </parameters>
  6658. </method>
  6659. <method name="set_valist"
  6660. c:identifier="gst_child_proxy_set_valist"
  6661. introspectable="0">
  6662. <doc xml:space="preserve">Sets properties of the parent object and its children.</doc>
  6663. <return-value transfer-ownership="none">
  6664. <type name="none" c:type="void"/>
  6665. </return-value>
  6666. <parameters>
  6667. <instance-parameter name="object" transfer-ownership="none">
  6668. <doc xml:space="preserve">the parent object</doc>
  6669. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6670. </instance-parameter>
  6671. <parameter name="first_property_name" transfer-ownership="none">
  6672. <doc xml:space="preserve">name of the first property to set</doc>
  6673. <type name="utf8" c:type="const gchar*"/>
  6674. </parameter>
  6675. <parameter name="var_args" transfer-ownership="none">
  6676. <doc xml:space="preserve">value for the first property, followed optionally by more name/value pairs, followed by %NULL</doc>
  6677. <type name="va_list" c:type="va_list"/>
  6678. </parameter>
  6679. </parameters>
  6680. </method>
  6681. <glib:signal name="child-added" when="first">
  6682. <doc xml:space="preserve">Will be emitted after the @object was added to the @child_proxy.</doc>
  6683. <return-value transfer-ownership="none">
  6684. <type name="none" c:type="void"/>
  6685. </return-value>
  6686. <parameters>
  6687. <parameter name="object" transfer-ownership="none">
  6688. <doc xml:space="preserve">the #GObject that was added</doc>
  6689. <type name="GObject.Object"/>
  6690. </parameter>
  6691. <parameter name="name" transfer-ownership="none">
  6692. <doc xml:space="preserve">the name of the new child</doc>
  6693. <type name="utf8" c:type="gchar*"/>
  6694. </parameter>
  6695. </parameters>
  6696. </glib:signal>
  6697. <glib:signal name="child-removed" when="first">
  6698. <doc xml:space="preserve">Will be emitted after the @object was removed from the @child_proxy.</doc>
  6699. <return-value transfer-ownership="none">
  6700. <type name="none" c:type="void"/>
  6701. </return-value>
  6702. <parameters>
  6703. <parameter name="object" transfer-ownership="none">
  6704. <doc xml:space="preserve">the #GObject that was removed</doc>
  6705. <type name="GObject.Object"/>
  6706. </parameter>
  6707. <parameter name="name" transfer-ownership="none">
  6708. <doc xml:space="preserve">the name of the old child</doc>
  6709. <type name="utf8" c:type="gchar*"/>
  6710. </parameter>
  6711. </parameters>
  6712. </glib:signal>
  6713. </interface>
  6714. <record name="ChildProxyInterface"
  6715. c:type="GstChildProxyInterface"
  6716. glib:is-gtype-struct-for="ChildProxy">
  6717. <doc xml:space="preserve">#GstChildProxy interface.</doc>
  6718. <field name="parent">
  6719. <doc xml:space="preserve">parent interface type.</doc>
  6720. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  6721. </field>
  6722. <field name="get_child_by_name">
  6723. <callback name="get_child_by_name">
  6724. <return-value transfer-ownership="full" nullable="1">
  6725. <doc xml:space="preserve">the child object or %NULL if
  6726. not found. Unref after usage.
  6727. MT safe.</doc>
  6728. <type name="GObject.Object" c:type="GObject*"/>
  6729. </return-value>
  6730. <parameters>
  6731. <parameter name="parent" transfer-ownership="none">
  6732. <doc xml:space="preserve">the parent object to get the child from</doc>
  6733. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6734. </parameter>
  6735. <parameter name="name" transfer-ownership="none">
  6736. <doc xml:space="preserve">the child's name</doc>
  6737. <type name="utf8" c:type="const gchar*"/>
  6738. </parameter>
  6739. </parameters>
  6740. </callback>
  6741. </field>
  6742. <field name="get_child_by_index">
  6743. <callback name="get_child_by_index">
  6744. <return-value transfer-ownership="full" nullable="1">
  6745. <doc xml:space="preserve">the child object or %NULL if
  6746. not found (index too high). Unref after usage.
  6747. MT safe.</doc>
  6748. <type name="GObject.Object" c:type="GObject*"/>
  6749. </return-value>
  6750. <parameters>
  6751. <parameter name="parent" transfer-ownership="none">
  6752. <doc xml:space="preserve">the parent object to get the child from</doc>
  6753. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6754. </parameter>
  6755. <parameter name="index" transfer-ownership="none">
  6756. <doc xml:space="preserve">the child's position in the child list</doc>
  6757. <type name="guint" c:type="guint"/>
  6758. </parameter>
  6759. </parameters>
  6760. </callback>
  6761. </field>
  6762. <field name="get_children_count">
  6763. <callback name="get_children_count">
  6764. <return-value transfer-ownership="none">
  6765. <doc xml:space="preserve">the number of child objects
  6766. MT safe.</doc>
  6767. <type name="guint" c:type="guint"/>
  6768. </return-value>
  6769. <parameters>
  6770. <parameter name="parent" transfer-ownership="none">
  6771. <doc xml:space="preserve">the parent object</doc>
  6772. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6773. </parameter>
  6774. </parameters>
  6775. </callback>
  6776. </field>
  6777. <field name="child_added">
  6778. <callback name="child_added">
  6779. <return-value transfer-ownership="none">
  6780. <type name="none" c:type="void"/>
  6781. </return-value>
  6782. <parameters>
  6783. <parameter name="parent" transfer-ownership="none">
  6784. <doc xml:space="preserve">the parent object</doc>
  6785. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6786. </parameter>
  6787. <parameter name="child" transfer-ownership="none">
  6788. <doc xml:space="preserve">the newly added child</doc>
  6789. <type name="GObject.Object" c:type="GObject*"/>
  6790. </parameter>
  6791. <parameter name="name" transfer-ownership="none">
  6792. <doc xml:space="preserve">the name of the new child</doc>
  6793. <type name="utf8" c:type="const gchar*"/>
  6794. </parameter>
  6795. </parameters>
  6796. </callback>
  6797. </field>
  6798. <field name="child_removed">
  6799. <callback name="child_removed">
  6800. <return-value transfer-ownership="none">
  6801. <type name="none" c:type="void"/>
  6802. </return-value>
  6803. <parameters>
  6804. <parameter name="parent" transfer-ownership="none">
  6805. <doc xml:space="preserve">the parent object</doc>
  6806. <type name="ChildProxy" c:type="GstChildProxy*"/>
  6807. </parameter>
  6808. <parameter name="child" transfer-ownership="none">
  6809. <doc xml:space="preserve">the removed child</doc>
  6810. <type name="GObject.Object" c:type="GObject*"/>
  6811. </parameter>
  6812. <parameter name="name" transfer-ownership="none">
  6813. <doc xml:space="preserve">the name of the old child</doc>
  6814. <type name="utf8" c:type="const gchar*"/>
  6815. </parameter>
  6816. </parameters>
  6817. </callback>
  6818. </field>
  6819. <field name="_gst_reserved" readable="0" private="1">
  6820. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  6821. <type name="gpointer" c:type="gpointer"/>
  6822. </array>
  6823. </field>
  6824. </record>
  6825. <class name="Clock"
  6826. c:symbol-prefix="clock"
  6827. c:type="GstClock"
  6828. parent="Object"
  6829. abstract="1"
  6830. glib:type-name="GstClock"
  6831. glib:get-type="gst_clock_get_type"
  6832. glib:type-struct="ClockClass">
  6833. <doc xml:space="preserve">GStreamer uses a global clock to synchronize the plugins in a pipeline.
  6834. Different clock implementations are possible by implementing this abstract
  6835. base class or, more conveniently, by subclassing #GstSystemClock.
  6836. The #GstClock returns a monotonically increasing time with the method
  6837. gst_clock_get_time(). Its accuracy and base time depend on the specific
  6838. clock implementation but time is always expressed in nanoseconds. Since the
  6839. baseline of the clock is undefined, the clock time returned is not
  6840. meaningful in itself, what matters are the deltas between two clock times.
  6841. The time returned by a clock is called the absolute time.
  6842. The pipeline uses the clock to calculate the running time. Usually all
  6843. renderers synchronize to the global clock using the buffer timestamps, the
  6844. newsegment events and the element's base time, see #GstPipeline.
  6845. A clock implementation can support periodic and single shot clock
  6846. notifications both synchronous and asynchronous.
  6847. One first needs to create a #GstClockID for the periodic or single shot
  6848. notification using gst_clock_new_single_shot_id() or
  6849. gst_clock_new_periodic_id().
  6850. To perform a blocking wait for the specific time of the #GstClockID use the
  6851. gst_clock_id_wait(). To receive a callback when the specific time is reached
  6852. in the clock use gst_clock_id_wait_async(). Both these calls can be
  6853. interrupted with the gst_clock_id_unschedule() call. If the blocking wait is
  6854. unscheduled a return value of #GST_CLOCK_UNSCHEDULED is returned.
  6855. Periodic callbacks scheduled async will be repeatedly called automatically
  6856. until it is unscheduled. To schedule a sync periodic callback,
  6857. gst_clock_id_wait() should be called repeatedly.
  6858. The async callbacks can happen from any thread, either provided by the core
  6859. or from a streaming thread. The application should be prepared for this.
  6860. A #GstClockID that has been unscheduled cannot be used again for any wait
  6861. operation, a new #GstClockID should be created and the old unscheduled one
  6862. should be destroyed with gst_clock_id_unref().
  6863. It is possible to perform a blocking wait on the same #GstClockID from
  6864. multiple threads. However, registering the same #GstClockID for multiple
  6865. async notifications is not possible, the callback will only be called for
  6866. the thread registering the entry last.
  6867. None of the wait operations unref the #GstClockID, the owner is responsible
  6868. for unreffing the ids itself. This holds for both periodic and single shot
  6869. notifications. The reason being that the owner of the #GstClockID has to
  6870. keep a handle to the #GstClockID to unblock the wait on FLUSHING events or
  6871. state changes and if the entry would be unreffed automatically, the handle
  6872. might become invalid without any notification.
  6873. These clock operations do not operate on the running time, so the callbacks
  6874. will also occur when not in PLAYING state as if the clock just keeps on
  6875. running. Some clocks however do not progress when the element that provided
  6876. the clock is not PLAYING.
  6877. When a clock has the #GST_CLOCK_FLAG_CAN_SET_MASTER flag set, it can be
  6878. slaved to another #GstClock with the gst_clock_set_master(). The clock will
  6879. then automatically be synchronized to this master clock by repeatedly
  6880. sampling the master clock and the slave clock and recalibrating the slave
  6881. clock with gst_clock_set_calibration(). This feature is mostly useful for
  6882. plugins that have an internal clock but must operate with another clock
  6883. selected by the #GstPipeline. They can track the offset and rate difference
  6884. of their internal clock relative to the master clock by using the
  6885. gst_clock_get_calibration() function.
  6886. The master/slave synchronisation can be tuned with the #GstClock:timeout,
  6887. #GstClock:window-size and #GstClock:window-threshold properties.
  6888. The #GstClock:timeout property defines the interval to sample the master
  6889. clock and run the calibration functions. #GstClock:window-size defines the
  6890. number of samples to use when calibrating and #GstClock:window-threshold
  6891. defines the minimum number of samples before the calibration is performed.</doc>
  6892. <function name="id_compare_func"
  6893. c:identifier="gst_clock_id_compare_func">
  6894. <doc xml:space="preserve">Compares the two #GstClockID instances. This function can be used
  6895. as a GCompareFunc when sorting ids.</doc>
  6896. <return-value transfer-ownership="none">
  6897. <doc xml:space="preserve">negative value if a &lt; b; zero if a = b; positive value if a &gt; b
  6898. MT safe.</doc>
  6899. <type name="gint" c:type="gint"/>
  6900. </return-value>
  6901. <parameters>
  6902. <parameter name="id1"
  6903. transfer-ownership="none"
  6904. nullable="1"
  6905. allow-none="1">
  6906. <doc xml:space="preserve">A #GstClockID</doc>
  6907. <type name="gpointer" c:type="gconstpointer"/>
  6908. </parameter>
  6909. <parameter name="id2"
  6910. transfer-ownership="none"
  6911. nullable="1"
  6912. allow-none="1">
  6913. <doc xml:space="preserve">A #GstClockID to compare with</doc>
  6914. <type name="gpointer" c:type="gconstpointer"/>
  6915. </parameter>
  6916. </parameters>
  6917. </function>
  6918. <function name="id_get_time" c:identifier="gst_clock_id_get_time">
  6919. <doc xml:space="preserve">Get the time of the clock ID</doc>
  6920. <return-value transfer-ownership="none">
  6921. <doc xml:space="preserve">the time of the given clock id.
  6922. MT safe.</doc>
  6923. <type name="ClockTime" c:type="GstClockTime"/>
  6924. </return-value>
  6925. <parameters>
  6926. <parameter name="id" transfer-ownership="none">
  6927. <doc xml:space="preserve">The #GstClockID to query</doc>
  6928. <type name="ClockID" c:type="GstClockID"/>
  6929. </parameter>
  6930. </parameters>
  6931. </function>
  6932. <function name="id_ref" c:identifier="gst_clock_id_ref">
  6933. <doc xml:space="preserve">Increase the refcount of given @id.</doc>
  6934. <return-value transfer-ownership="full">
  6935. <doc xml:space="preserve">The same #GstClockID with increased refcount.
  6936. MT safe.</doc>
  6937. <type name="ClockID" c:type="GstClockID"/>
  6938. </return-value>
  6939. <parameters>
  6940. <parameter name="id" transfer-ownership="none">
  6941. <doc xml:space="preserve">The #GstClockID to ref</doc>
  6942. <type name="ClockID" c:type="GstClockID"/>
  6943. </parameter>
  6944. </parameters>
  6945. </function>
  6946. <function name="id_unref" c:identifier="gst_clock_id_unref">
  6947. <doc xml:space="preserve">Unref given @id. When the refcount reaches 0 the
  6948. #GstClockID will be freed.
  6949. MT safe.</doc>
  6950. <return-value transfer-ownership="none">
  6951. <type name="none" c:type="void"/>
  6952. </return-value>
  6953. <parameters>
  6954. <parameter name="id" transfer-ownership="full">
  6955. <doc xml:space="preserve">The #GstClockID to unref</doc>
  6956. <type name="ClockID" c:type="GstClockID"/>
  6957. </parameter>
  6958. </parameters>
  6959. </function>
  6960. <function name="id_unschedule" c:identifier="gst_clock_id_unschedule">
  6961. <doc xml:space="preserve">Cancel an outstanding request with @id. This can either
  6962. be an outstanding async notification or a pending sync notification.
  6963. After this call, @id cannot be used anymore to receive sync or
  6964. async notifications, you need to create a new #GstClockID.
  6965. MT safe.</doc>
  6966. <return-value transfer-ownership="none">
  6967. <type name="none" c:type="void"/>
  6968. </return-value>
  6969. <parameters>
  6970. <parameter name="id" transfer-ownership="none">
  6971. <doc xml:space="preserve">The id to unschedule</doc>
  6972. <type name="ClockID" c:type="GstClockID"/>
  6973. </parameter>
  6974. </parameters>
  6975. </function>
  6976. <function name="id_wait" c:identifier="gst_clock_id_wait">
  6977. <doc xml:space="preserve">Perform a blocking wait on @id.
  6978. @id should have been created with gst_clock_new_single_shot_id()
  6979. or gst_clock_new_periodic_id() and should not have been unscheduled
  6980. with a call to gst_clock_id_unschedule().
  6981. If the @jitter argument is not %NULL and this function returns #GST_CLOCK_OK
  6982. or #GST_CLOCK_EARLY, it will contain the difference
  6983. against the clock and the time of @id when this method was
  6984. called.
  6985. Positive values indicate how late @id was relative to the clock
  6986. (in which case this function will return #GST_CLOCK_EARLY).
  6987. Negative values indicate how much time was spent waiting on the clock
  6988. before this function returned.</doc>
  6989. <return-value transfer-ownership="none">
  6990. <doc xml:space="preserve">the result of the blocking wait. #GST_CLOCK_EARLY will be returned
  6991. if the current clock time is past the time of @id, #GST_CLOCK_OK if
  6992. @id was scheduled in time. #GST_CLOCK_UNSCHEDULED if @id was
  6993. unscheduled with gst_clock_id_unschedule().
  6994. MT safe.</doc>
  6995. <type name="ClockReturn" c:type="GstClockReturn"/>
  6996. </return-value>
  6997. <parameters>
  6998. <parameter name="id" transfer-ownership="none">
  6999. <doc xml:space="preserve">The #GstClockID to wait on</doc>
  7000. <type name="ClockID" c:type="GstClockID"/>
  7001. </parameter>
  7002. <parameter name="jitter"
  7003. direction="out"
  7004. caller-allocates="0"
  7005. transfer-ownership="full"
  7006. optional="1"
  7007. allow-none="1">
  7008. <doc xml:space="preserve">a pointer that will contain the jitter,
  7009. can be %NULL.</doc>
  7010. <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
  7011. </parameter>
  7012. </parameters>
  7013. </function>
  7014. <function name="id_wait_async" c:identifier="gst_clock_id_wait_async">
  7015. <doc xml:space="preserve">Register a callback on the given #GstClockID @id with the given
  7016. function and user_data. When passing a #GstClockID with an invalid
  7017. time to this function, the callback will be called immediately
  7018. with a time set to GST_CLOCK_TIME_NONE. The callback will
  7019. be called when the time of @id has been reached.
  7020. The callback @func can be invoked from any thread, either provided by the
  7021. core or from a streaming thread. The application should be prepared for this.</doc>
  7022. <return-value transfer-ownership="none">
  7023. <doc xml:space="preserve">the result of the non blocking wait.
  7024. MT safe.</doc>
  7025. <type name="ClockReturn" c:type="GstClockReturn"/>
  7026. </return-value>
  7027. <parameters>
  7028. <parameter name="id" transfer-ownership="none">
  7029. <doc xml:space="preserve">a #GstClockID to wait on</doc>
  7030. <type name="ClockID" c:type="GstClockID"/>
  7031. </parameter>
  7032. <parameter name="func"
  7033. transfer-ownership="none"
  7034. scope="notified"
  7035. closure="2"
  7036. destroy="3">
  7037. <doc xml:space="preserve">The callback function</doc>
  7038. <type name="ClockCallback" c:type="GstClockCallback"/>
  7039. </parameter>
  7040. <parameter name="user_data"
  7041. transfer-ownership="none"
  7042. nullable="1"
  7043. allow-none="1">
  7044. <doc xml:space="preserve">User data passed in the callback</doc>
  7045. <type name="gpointer" c:type="gpointer"/>
  7046. </parameter>
  7047. <parameter name="destroy_data"
  7048. transfer-ownership="none"
  7049. scope="async">
  7050. <doc xml:space="preserve">#GDestroyNotify for user_data</doc>
  7051. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  7052. </parameter>
  7053. </parameters>
  7054. </function>
  7055. <virtual-method name="change_resolution">
  7056. <return-value transfer-ownership="none">
  7057. <type name="ClockTime" c:type="GstClockTime"/>
  7058. </return-value>
  7059. <parameters>
  7060. <instance-parameter name="clock" transfer-ownership="none">
  7061. <type name="Clock" c:type="GstClock*"/>
  7062. </instance-parameter>
  7063. <parameter name="old_resolution" transfer-ownership="none">
  7064. <type name="ClockTime" c:type="GstClockTime"/>
  7065. </parameter>
  7066. <parameter name="new_resolution" transfer-ownership="none">
  7067. <type name="ClockTime" c:type="GstClockTime"/>
  7068. </parameter>
  7069. </parameters>
  7070. </virtual-method>
  7071. <virtual-method name="get_internal_time" invoker="get_internal_time">
  7072. <doc xml:space="preserve">Gets the current internal time of the given clock. The time is returned
  7073. unadjusted for the offset and the rate.</doc>
  7074. <return-value transfer-ownership="none">
  7075. <doc xml:space="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when
  7076. given invalid input.
  7077. MT safe.</doc>
  7078. <type name="ClockTime" c:type="GstClockTime"/>
  7079. </return-value>
  7080. <parameters>
  7081. <instance-parameter name="clock" transfer-ownership="none">
  7082. <doc xml:space="preserve">a #GstClock to query</doc>
  7083. <type name="Clock" c:type="GstClock*"/>
  7084. </instance-parameter>
  7085. </parameters>
  7086. </virtual-method>
  7087. <virtual-method name="get_resolution" invoker="get_resolution">
  7088. <doc xml:space="preserve">Get the accuracy of the clock. The accuracy of the clock is the granularity
  7089. of the values returned by gst_clock_get_time().</doc>
  7090. <return-value transfer-ownership="none">
  7091. <doc xml:space="preserve">the resolution of the clock in units of #GstClockTime.
  7092. MT safe.</doc>
  7093. <type name="ClockTime" c:type="GstClockTime"/>
  7094. </return-value>
  7095. <parameters>
  7096. <instance-parameter name="clock" transfer-ownership="none">
  7097. <doc xml:space="preserve">a #GstClock</doc>
  7098. <type name="Clock" c:type="GstClock*"/>
  7099. </instance-parameter>
  7100. </parameters>
  7101. </virtual-method>
  7102. <virtual-method name="unschedule">
  7103. <return-value transfer-ownership="none">
  7104. <type name="none" c:type="void"/>
  7105. </return-value>
  7106. <parameters>
  7107. <instance-parameter name="clock" transfer-ownership="none">
  7108. <type name="Clock" c:type="GstClock*"/>
  7109. </instance-parameter>
  7110. <parameter name="entry" transfer-ownership="none">
  7111. <type name="ClockEntry" c:type="GstClockEntry*"/>
  7112. </parameter>
  7113. </parameters>
  7114. </virtual-method>
  7115. <virtual-method name="wait">
  7116. <return-value transfer-ownership="none">
  7117. <type name="ClockReturn" c:type="GstClockReturn"/>
  7118. </return-value>
  7119. <parameters>
  7120. <instance-parameter name="clock" transfer-ownership="none">
  7121. <type name="Clock" c:type="GstClock*"/>
  7122. </instance-parameter>
  7123. <parameter name="entry" transfer-ownership="none">
  7124. <type name="ClockEntry" c:type="GstClockEntry*"/>
  7125. </parameter>
  7126. <parameter name="jitter" transfer-ownership="none">
  7127. <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
  7128. </parameter>
  7129. </parameters>
  7130. </virtual-method>
  7131. <virtual-method name="wait_async">
  7132. <return-value transfer-ownership="none">
  7133. <type name="ClockReturn" c:type="GstClockReturn"/>
  7134. </return-value>
  7135. <parameters>
  7136. <instance-parameter name="clock" transfer-ownership="none">
  7137. <type name="Clock" c:type="GstClock*"/>
  7138. </instance-parameter>
  7139. <parameter name="entry" transfer-ownership="none">
  7140. <type name="ClockEntry" c:type="GstClockEntry*"/>
  7141. </parameter>
  7142. </parameters>
  7143. </virtual-method>
  7144. <method name="add_observation" c:identifier="gst_clock_add_observation">
  7145. <doc xml:space="preserve">The time @master of the master clock and the time @slave of the slave
  7146. clock are added to the list of observations. If enough observations
  7147. are available, a linear regression algorithm is run on the
  7148. observations and @clock is recalibrated.
  7149. If this functions returns %TRUE, @r_squared will contain the
  7150. correlation coefficient of the interpolation. A value of 1.0
  7151. means a perfect regression was performed. This value can
  7152. be used to control the sampling frequency of the master and slave
  7153. clocks.</doc>
  7154. <return-value transfer-ownership="none">
  7155. <doc xml:space="preserve">%TRUE if enough observations were added to run the
  7156. regression algorithm.
  7157. MT safe.</doc>
  7158. <type name="gboolean" c:type="gboolean"/>
  7159. </return-value>
  7160. <parameters>
  7161. <instance-parameter name="clock" transfer-ownership="none">
  7162. <doc xml:space="preserve">a #GstClock</doc>
  7163. <type name="Clock" c:type="GstClock*"/>
  7164. </instance-parameter>
  7165. <parameter name="slave" transfer-ownership="none">
  7166. <doc xml:space="preserve">a time on the slave</doc>
  7167. <type name="ClockTime" c:type="GstClockTime"/>
  7168. </parameter>
  7169. <parameter name="master" transfer-ownership="none">
  7170. <doc xml:space="preserve">a time on the master</doc>
  7171. <type name="ClockTime" c:type="GstClockTime"/>
  7172. </parameter>
  7173. <parameter name="r_squared"
  7174. direction="out"
  7175. caller-allocates="0"
  7176. transfer-ownership="full">
  7177. <doc xml:space="preserve">a pointer to hold the result</doc>
  7178. <type name="gdouble" c:type="gdouble*"/>
  7179. </parameter>
  7180. </parameters>
  7181. </method>
  7182. <method name="add_observation_unapplied"
  7183. c:identifier="gst_clock_add_observation_unapplied"
  7184. version="1.6">
  7185. <doc xml:space="preserve">Add a clock observation to the internal slaving algorithm the same as
  7186. gst_clock_add_observation(), and return the result of the master clock
  7187. estimation, without updating the internal calibration.
  7188. The caller can then take the results and call gst_clock_set_calibration()
  7189. with the values, or some modified version of them.</doc>
  7190. <return-value transfer-ownership="none">
  7191. <type name="gboolean" c:type="gboolean"/>
  7192. </return-value>
  7193. <parameters>
  7194. <instance-parameter name="clock" transfer-ownership="none">
  7195. <doc xml:space="preserve">a #GstClock</doc>
  7196. <type name="Clock" c:type="GstClock*"/>
  7197. </instance-parameter>
  7198. <parameter name="slave" transfer-ownership="none">
  7199. <doc xml:space="preserve">a time on the slave</doc>
  7200. <type name="ClockTime" c:type="GstClockTime"/>
  7201. </parameter>
  7202. <parameter name="master" transfer-ownership="none">
  7203. <doc xml:space="preserve">a time on the master</doc>
  7204. <type name="ClockTime" c:type="GstClockTime"/>
  7205. </parameter>
  7206. <parameter name="r_squared"
  7207. direction="out"
  7208. caller-allocates="0"
  7209. transfer-ownership="full">
  7210. <doc xml:space="preserve">a pointer to hold the result</doc>
  7211. <type name="gdouble" c:type="gdouble*"/>
  7212. </parameter>
  7213. <parameter name="internal"
  7214. direction="out"
  7215. caller-allocates="0"
  7216. transfer-ownership="full"
  7217. optional="1"
  7218. allow-none="1">
  7219. <doc xml:space="preserve">a location to store the internal time</doc>
  7220. <type name="ClockTime" c:type="GstClockTime*"/>
  7221. </parameter>
  7222. <parameter name="external"
  7223. direction="out"
  7224. caller-allocates="0"
  7225. transfer-ownership="full"
  7226. optional="1"
  7227. allow-none="1">
  7228. <doc xml:space="preserve">a location to store the external time</doc>
  7229. <type name="ClockTime" c:type="GstClockTime*"/>
  7230. </parameter>
  7231. <parameter name="rate_num"
  7232. direction="out"
  7233. caller-allocates="0"
  7234. transfer-ownership="full"
  7235. optional="1"
  7236. allow-none="1">
  7237. <doc xml:space="preserve">a location to store the rate numerator</doc>
  7238. <type name="ClockTime" c:type="GstClockTime*"/>
  7239. </parameter>
  7240. <parameter name="rate_denom"
  7241. direction="out"
  7242. caller-allocates="0"
  7243. transfer-ownership="full"
  7244. optional="1"
  7245. allow-none="1">
  7246. <doc xml:space="preserve">a location to store the rate denominator</doc>
  7247. <type name="ClockTime" c:type="GstClockTime*"/>
  7248. </parameter>
  7249. </parameters>
  7250. </method>
  7251. <method name="adjust_unlocked" c:identifier="gst_clock_adjust_unlocked">
  7252. <doc xml:space="preserve">Converts the given @internal clock time to the external time, adjusting for the
  7253. rate and reference time set with gst_clock_set_calibration() and making sure
  7254. that the returned time is increasing. This function should be called with the
  7255. clock's OBJECT_LOCK held and is mainly used by clock subclasses.
  7256. This function is the reverse of gst_clock_unadjust_unlocked().</doc>
  7257. <return-value transfer-ownership="none">
  7258. <doc xml:space="preserve">the converted time of the clock.</doc>
  7259. <type name="ClockTime" c:type="GstClockTime"/>
  7260. </return-value>
  7261. <parameters>
  7262. <instance-parameter name="clock" transfer-ownership="none">
  7263. <doc xml:space="preserve">a #GstClock to use</doc>
  7264. <type name="Clock" c:type="GstClock*"/>
  7265. </instance-parameter>
  7266. <parameter name="internal" transfer-ownership="none">
  7267. <doc xml:space="preserve">a clock time</doc>
  7268. <type name="ClockTime" c:type="GstClockTime"/>
  7269. </parameter>
  7270. </parameters>
  7271. </method>
  7272. <method name="adjust_with_calibration"
  7273. c:identifier="gst_clock_adjust_with_calibration"
  7274. version="1.6">
  7275. <doc xml:space="preserve">Converts the given @internal_target clock time to the external time,
  7276. using the passed calibration parameters. This function performs the
  7277. same calculation as gst_clock_adjust_unlocked() when called using the
  7278. current calibration parameters, but doesn't ensure a monotonically
  7279. increasing result as gst_clock_adjust_unlocked() does.
  7280. Note: The @clock parameter is unused and can be NULL</doc>
  7281. <return-value transfer-ownership="none">
  7282. <doc xml:space="preserve">the converted time of the clock.</doc>
  7283. <type name="ClockTime" c:type="GstClockTime"/>
  7284. </return-value>
  7285. <parameters>
  7286. <instance-parameter name="clock"
  7287. transfer-ownership="none"
  7288. nullable="1"
  7289. allow-none="1">
  7290. <doc xml:space="preserve">a #GstClock to use</doc>
  7291. <type name="Clock" c:type="GstClock*"/>
  7292. </instance-parameter>
  7293. <parameter name="internal_target" transfer-ownership="none">
  7294. <doc xml:space="preserve">a clock time</doc>
  7295. <type name="ClockTime" c:type="GstClockTime"/>
  7296. </parameter>
  7297. <parameter name="cinternal" transfer-ownership="none">
  7298. <doc xml:space="preserve">a reference internal time</doc>
  7299. <type name="ClockTime" c:type="GstClockTime"/>
  7300. </parameter>
  7301. <parameter name="cexternal" transfer-ownership="none">
  7302. <doc xml:space="preserve">a reference external time</doc>
  7303. <type name="ClockTime" c:type="GstClockTime"/>
  7304. </parameter>
  7305. <parameter name="cnum" transfer-ownership="none">
  7306. <doc xml:space="preserve">the numerator of the rate of the clock relative to its
  7307. internal time</doc>
  7308. <type name="ClockTime" c:type="GstClockTime"/>
  7309. </parameter>
  7310. <parameter name="cdenom" transfer-ownership="none">
  7311. <doc xml:space="preserve">the denominator of the rate of the clock</doc>
  7312. <type name="ClockTime" c:type="GstClockTime"/>
  7313. </parameter>
  7314. </parameters>
  7315. </method>
  7316. <method name="get_calibration" c:identifier="gst_clock_get_calibration">
  7317. <doc xml:space="preserve">Gets the internal rate and reference time of @clock. See
  7318. gst_clock_set_calibration() for more information.
  7319. @internal, @external, @rate_num, and @rate_denom can be left %NULL if the
  7320. caller is not interested in the values.
  7321. MT safe.</doc>
  7322. <return-value transfer-ownership="none">
  7323. <type name="none" c:type="void"/>
  7324. </return-value>
  7325. <parameters>
  7326. <instance-parameter name="clock" transfer-ownership="none">
  7327. <doc xml:space="preserve">a #GstClock</doc>
  7328. <type name="Clock" c:type="GstClock*"/>
  7329. </instance-parameter>
  7330. <parameter name="internal"
  7331. direction="out"
  7332. caller-allocates="0"
  7333. transfer-ownership="full"
  7334. optional="1"
  7335. allow-none="1">
  7336. <doc xml:space="preserve">a location to store the internal time</doc>
  7337. <type name="ClockTime" c:type="GstClockTime*"/>
  7338. </parameter>
  7339. <parameter name="external"
  7340. direction="out"
  7341. caller-allocates="0"
  7342. transfer-ownership="full"
  7343. optional="1"
  7344. allow-none="1">
  7345. <doc xml:space="preserve">a location to store the external time</doc>
  7346. <type name="ClockTime" c:type="GstClockTime*"/>
  7347. </parameter>
  7348. <parameter name="rate_num"
  7349. direction="out"
  7350. caller-allocates="0"
  7351. transfer-ownership="full"
  7352. optional="1"
  7353. allow-none="1">
  7354. <doc xml:space="preserve">a location to store the rate numerator</doc>
  7355. <type name="ClockTime" c:type="GstClockTime*"/>
  7356. </parameter>
  7357. <parameter name="rate_denom"
  7358. direction="out"
  7359. caller-allocates="0"
  7360. transfer-ownership="full"
  7361. optional="1"
  7362. allow-none="1">
  7363. <doc xml:space="preserve">a location to store the rate denominator</doc>
  7364. <type name="ClockTime" c:type="GstClockTime*"/>
  7365. </parameter>
  7366. </parameters>
  7367. </method>
  7368. <method name="get_internal_time"
  7369. c:identifier="gst_clock_get_internal_time">
  7370. <doc xml:space="preserve">Gets the current internal time of the given clock. The time is returned
  7371. unadjusted for the offset and the rate.</doc>
  7372. <return-value transfer-ownership="none">
  7373. <doc xml:space="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when
  7374. given invalid input.
  7375. MT safe.</doc>
  7376. <type name="ClockTime" c:type="GstClockTime"/>
  7377. </return-value>
  7378. <parameters>
  7379. <instance-parameter name="clock" transfer-ownership="none">
  7380. <doc xml:space="preserve">a #GstClock to query</doc>
  7381. <type name="Clock" c:type="GstClock*"/>
  7382. </instance-parameter>
  7383. </parameters>
  7384. </method>
  7385. <method name="get_master" c:identifier="gst_clock_get_master">
  7386. <doc xml:space="preserve">Get the master clock that @clock is slaved to or %NULL when the clock is
  7387. not slaved to any master clock.</doc>
  7388. <return-value transfer-ownership="full" nullable="1">
  7389. <doc xml:space="preserve">a master #GstClock or %NULL
  7390. when this clock is not slaved to a master clock. Unref after
  7391. usage.
  7392. MT safe.</doc>
  7393. <type name="Clock" c:type="GstClock*"/>
  7394. </return-value>
  7395. <parameters>
  7396. <instance-parameter name="clock" transfer-ownership="none">
  7397. <doc xml:space="preserve">a #GstClock</doc>
  7398. <type name="Clock" c:type="GstClock*"/>
  7399. </instance-parameter>
  7400. </parameters>
  7401. </method>
  7402. <method name="get_resolution" c:identifier="gst_clock_get_resolution">
  7403. <doc xml:space="preserve">Get the accuracy of the clock. The accuracy of the clock is the granularity
  7404. of the values returned by gst_clock_get_time().</doc>
  7405. <return-value transfer-ownership="none">
  7406. <doc xml:space="preserve">the resolution of the clock in units of #GstClockTime.
  7407. MT safe.</doc>
  7408. <type name="ClockTime" c:type="GstClockTime"/>
  7409. </return-value>
  7410. <parameters>
  7411. <instance-parameter name="clock" transfer-ownership="none">
  7412. <doc xml:space="preserve">a #GstClock</doc>
  7413. <type name="Clock" c:type="GstClock*"/>
  7414. </instance-parameter>
  7415. </parameters>
  7416. </method>
  7417. <method name="get_time" c:identifier="gst_clock_get_time">
  7418. <doc xml:space="preserve">Gets the current time of the given clock. The time is always
  7419. monotonically increasing and adjusted according to the current
  7420. offset and rate.</doc>
  7421. <return-value transfer-ownership="none">
  7422. <doc xml:space="preserve">the time of the clock. Or GST_CLOCK_TIME_NONE when
  7423. given invalid input.
  7424. MT safe.</doc>
  7425. <type name="ClockTime" c:type="GstClockTime"/>
  7426. </return-value>
  7427. <parameters>
  7428. <instance-parameter name="clock" transfer-ownership="none">
  7429. <doc xml:space="preserve">a #GstClock to query</doc>
  7430. <type name="Clock" c:type="GstClock*"/>
  7431. </instance-parameter>
  7432. </parameters>
  7433. </method>
  7434. <method name="get_timeout" c:identifier="gst_clock_get_timeout">
  7435. <doc xml:space="preserve">Get the amount of time that master and slave clocks are sampled.</doc>
  7436. <return-value transfer-ownership="none">
  7437. <doc xml:space="preserve">the interval between samples.</doc>
  7438. <type name="ClockTime" c:type="GstClockTime"/>
  7439. </return-value>
  7440. <parameters>
  7441. <instance-parameter name="clock" transfer-ownership="none">
  7442. <doc xml:space="preserve">a #GstClock</doc>
  7443. <type name="Clock" c:type="GstClock*"/>
  7444. </instance-parameter>
  7445. </parameters>
  7446. </method>
  7447. <method name="is_synced"
  7448. c:identifier="gst_clock_is_synced"
  7449. version="1.6">
  7450. <doc xml:space="preserve">Checks if the clock is currently synced.
  7451. This returns if GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC is not set on the clock.</doc>
  7452. <return-value transfer-ownership="none">
  7453. <doc xml:space="preserve">%TRUE if the clock is currently synced</doc>
  7454. <type name="gboolean" c:type="gboolean"/>
  7455. </return-value>
  7456. <parameters>
  7457. <instance-parameter name="clock" transfer-ownership="none">
  7458. <doc xml:space="preserve">a GstClock</doc>
  7459. <type name="Clock" c:type="GstClock*"/>
  7460. </instance-parameter>
  7461. </parameters>
  7462. </method>
  7463. <method name="new_periodic_id" c:identifier="gst_clock_new_periodic_id">
  7464. <doc xml:space="preserve">Get an ID from @clock to trigger a periodic notification.
  7465. The periodic notifications will start at time @start_time and
  7466. will then be fired with the given @interval. @id should be unreffed
  7467. after usage.
  7468. Free-function: gst_clock_id_unref</doc>
  7469. <return-value transfer-ownership="full">
  7470. <doc xml:space="preserve">a #GstClockID that can be used to request the
  7471. time notification.
  7472. MT safe.</doc>
  7473. <type name="ClockID" c:type="GstClockID"/>
  7474. </return-value>
  7475. <parameters>
  7476. <instance-parameter name="clock" transfer-ownership="none">
  7477. <doc xml:space="preserve">The #GstClockID to get a periodic notification id from</doc>
  7478. <type name="Clock" c:type="GstClock*"/>
  7479. </instance-parameter>
  7480. <parameter name="start_time" transfer-ownership="none">
  7481. <doc xml:space="preserve">the requested start time</doc>
  7482. <type name="ClockTime" c:type="GstClockTime"/>
  7483. </parameter>
  7484. <parameter name="interval" transfer-ownership="none">
  7485. <doc xml:space="preserve">the requested interval</doc>
  7486. <type name="ClockTime" c:type="GstClockTime"/>
  7487. </parameter>
  7488. </parameters>
  7489. </method>
  7490. <method name="new_single_shot_id"
  7491. c:identifier="gst_clock_new_single_shot_id">
  7492. <doc xml:space="preserve">Get a #GstClockID from @clock to trigger a single shot
  7493. notification at the requested time. The single shot id should be
  7494. unreffed after usage.
  7495. Free-function: gst_clock_id_unref</doc>
  7496. <return-value transfer-ownership="full">
  7497. <doc xml:space="preserve">a #GstClockID that can be used to request the
  7498. time notification.
  7499. MT safe.</doc>
  7500. <type name="ClockID" c:type="GstClockID"/>
  7501. </return-value>
  7502. <parameters>
  7503. <instance-parameter name="clock" transfer-ownership="none">
  7504. <doc xml:space="preserve">The #GstClockID to get a single shot notification from</doc>
  7505. <type name="Clock" c:type="GstClock*"/>
  7506. </instance-parameter>
  7507. <parameter name="time" transfer-ownership="none">
  7508. <doc xml:space="preserve">the requested time</doc>
  7509. <type name="ClockTime" c:type="GstClockTime"/>
  7510. </parameter>
  7511. </parameters>
  7512. </method>
  7513. <method name="periodic_id_reinit"
  7514. c:identifier="gst_clock_periodic_id_reinit">
  7515. <doc xml:space="preserve">Reinitializes the provided periodic @id to the provided start time and
  7516. interval. Does not modify the reference count.</doc>
  7517. <return-value transfer-ownership="none">
  7518. <doc xml:space="preserve">%TRUE if the GstClockID could be reinitialized to the provided
  7519. @time, else %FALSE.</doc>
  7520. <type name="gboolean" c:type="gboolean"/>
  7521. </return-value>
  7522. <parameters>
  7523. <instance-parameter name="clock" transfer-ownership="none">
  7524. <doc xml:space="preserve">a #GstClock</doc>
  7525. <type name="Clock" c:type="GstClock*"/>
  7526. </instance-parameter>
  7527. <parameter name="id" transfer-ownership="none">
  7528. <doc xml:space="preserve">a #GstClockID</doc>
  7529. <type name="ClockID" c:type="GstClockID"/>
  7530. </parameter>
  7531. <parameter name="start_time" transfer-ownership="none">
  7532. <doc xml:space="preserve">the requested start time</doc>
  7533. <type name="ClockTime" c:type="GstClockTime"/>
  7534. </parameter>
  7535. <parameter name="interval" transfer-ownership="none">
  7536. <doc xml:space="preserve">the requested interval</doc>
  7537. <type name="ClockTime" c:type="GstClockTime"/>
  7538. </parameter>
  7539. </parameters>
  7540. </method>
  7541. <method name="set_calibration" c:identifier="gst_clock_set_calibration">
  7542. <doc xml:space="preserve">Adjusts the rate and time of @clock. A rate of 1/1 is the normal speed of
  7543. the clock. Values bigger than 1/1 make the clock go faster.
  7544. @internal and @external are calibration parameters that arrange that
  7545. gst_clock_get_time() should have been @external at internal time @internal.
  7546. This internal time should not be in the future; that is, it should be less
  7547. than the value of gst_clock_get_internal_time() when this function is called.
  7548. Subsequent calls to gst_clock_get_time() will return clock times computed as
  7549. follows:
  7550. &lt;programlisting&gt;
  7551. time = (internal_time - internal) * rate_num / rate_denom + external
  7552. &lt;/programlisting&gt;
  7553. This formula is implemented in gst_clock_adjust_unlocked(). Of course, it
  7554. tries to do the integer arithmetic as precisely as possible.
  7555. Note that gst_clock_get_time() always returns increasing values so when you
  7556. move the clock backwards, gst_clock_get_time() will report the previous value
  7557. until the clock catches up.
  7558. MT safe.</doc>
  7559. <return-value transfer-ownership="none">
  7560. <type name="none" c:type="void"/>
  7561. </return-value>
  7562. <parameters>
  7563. <instance-parameter name="clock" transfer-ownership="none">
  7564. <doc xml:space="preserve">a #GstClock to calibrate</doc>
  7565. <type name="Clock" c:type="GstClock*"/>
  7566. </instance-parameter>
  7567. <parameter name="internal" transfer-ownership="none">
  7568. <doc xml:space="preserve">a reference internal time</doc>
  7569. <type name="ClockTime" c:type="GstClockTime"/>
  7570. </parameter>
  7571. <parameter name="external" transfer-ownership="none">
  7572. <doc xml:space="preserve">a reference external time</doc>
  7573. <type name="ClockTime" c:type="GstClockTime"/>
  7574. </parameter>
  7575. <parameter name="rate_num" transfer-ownership="none">
  7576. <doc xml:space="preserve">the numerator of the rate of the clock relative to its
  7577. internal time</doc>
  7578. <type name="ClockTime" c:type="GstClockTime"/>
  7579. </parameter>
  7580. <parameter name="rate_denom" transfer-ownership="none">
  7581. <doc xml:space="preserve">the denominator of the rate of the clock</doc>
  7582. <type name="ClockTime" c:type="GstClockTime"/>
  7583. </parameter>
  7584. </parameters>
  7585. </method>
  7586. <method name="set_master" c:identifier="gst_clock_set_master">
  7587. <doc xml:space="preserve">Set @master as the master clock for @clock. @clock will be automatically
  7588. calibrated so that gst_clock_get_time() reports the same time as the
  7589. master clock.
  7590. A clock provider that slaves its clock to a master can get the current
  7591. calibration values with gst_clock_get_calibration().
  7592. @master can be %NULL in which case @clock will not be slaved anymore. It will
  7593. however keep reporting its time adjusted with the last configured rate
  7594. and time offsets.</doc>
  7595. <return-value transfer-ownership="none">
  7596. <doc xml:space="preserve">%TRUE if the clock is capable of being slaved to a master clock.
  7597. Trying to set a master on a clock without the
  7598. #GST_CLOCK_FLAG_CAN_SET_MASTER flag will make this function return %FALSE.
  7599. MT safe.</doc>
  7600. <type name="gboolean" c:type="gboolean"/>
  7601. </return-value>
  7602. <parameters>
  7603. <instance-parameter name="clock" transfer-ownership="none">
  7604. <doc xml:space="preserve">a #GstClock</doc>
  7605. <type name="Clock" c:type="GstClock*"/>
  7606. </instance-parameter>
  7607. <parameter name="master"
  7608. transfer-ownership="none"
  7609. nullable="1"
  7610. allow-none="1">
  7611. <doc xml:space="preserve">a master #GstClock</doc>
  7612. <type name="Clock" c:type="GstClock*"/>
  7613. </parameter>
  7614. </parameters>
  7615. </method>
  7616. <method name="set_resolution" c:identifier="gst_clock_set_resolution">
  7617. <doc xml:space="preserve">Set the accuracy of the clock. Some clocks have the possibility to operate
  7618. with different accuracy at the expense of more resource usage. There is
  7619. normally no need to change the default resolution of a clock. The resolution
  7620. of a clock can only be changed if the clock has the
  7621. #GST_CLOCK_FLAG_CAN_SET_RESOLUTION flag set.</doc>
  7622. <return-value transfer-ownership="none">
  7623. <doc xml:space="preserve">the new resolution of the clock.</doc>
  7624. <type name="ClockTime" c:type="GstClockTime"/>
  7625. </return-value>
  7626. <parameters>
  7627. <instance-parameter name="clock" transfer-ownership="none">
  7628. <doc xml:space="preserve">a #GstClock</doc>
  7629. <type name="Clock" c:type="GstClock*"/>
  7630. </instance-parameter>
  7631. <parameter name="resolution" transfer-ownership="none">
  7632. <doc xml:space="preserve">The resolution to set</doc>
  7633. <type name="ClockTime" c:type="GstClockTime"/>
  7634. </parameter>
  7635. </parameters>
  7636. </method>
  7637. <method name="set_synced"
  7638. c:identifier="gst_clock_set_synced"
  7639. version="1.6">
  7640. <doc xml:space="preserve">Sets @clock to synced and emits the GstClock::synced signal, and wakes up any
  7641. thread waiting in gst_clock_wait_for_sync().
  7642. This function must only be called if GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC
  7643. is set on the clock, and is intended to be called by subclasses only.</doc>
  7644. <return-value transfer-ownership="none">
  7645. <type name="none" c:type="void"/>
  7646. </return-value>
  7647. <parameters>
  7648. <instance-parameter name="clock" transfer-ownership="none">
  7649. <doc xml:space="preserve">a GstClock</doc>
  7650. <type name="Clock" c:type="GstClock*"/>
  7651. </instance-parameter>
  7652. <parameter name="synced" transfer-ownership="none">
  7653. <doc xml:space="preserve">if the clock is synced</doc>
  7654. <type name="gboolean" c:type="gboolean"/>
  7655. </parameter>
  7656. </parameters>
  7657. </method>
  7658. <method name="set_timeout" c:identifier="gst_clock_set_timeout">
  7659. <doc xml:space="preserve">Set the amount of time, in nanoseconds, to sample master and slave
  7660. clocks</doc>
  7661. <return-value transfer-ownership="none">
  7662. <type name="none" c:type="void"/>
  7663. </return-value>
  7664. <parameters>
  7665. <instance-parameter name="clock" transfer-ownership="none">
  7666. <doc xml:space="preserve">a #GstClock</doc>
  7667. <type name="Clock" c:type="GstClock*"/>
  7668. </instance-parameter>
  7669. <parameter name="timeout" transfer-ownership="none">
  7670. <doc xml:space="preserve">a timeout</doc>
  7671. <type name="ClockTime" c:type="GstClockTime"/>
  7672. </parameter>
  7673. </parameters>
  7674. </method>
  7675. <method name="single_shot_id_reinit"
  7676. c:identifier="gst_clock_single_shot_id_reinit">
  7677. <doc xml:space="preserve">Reinitializes the provided single shot @id to the provided time. Does not
  7678. modify the reference count.</doc>
  7679. <return-value transfer-ownership="none">
  7680. <doc xml:space="preserve">%TRUE if the GstClockID could be reinitialized to the provided
  7681. @time, else %FALSE.</doc>
  7682. <type name="gboolean" c:type="gboolean"/>
  7683. </return-value>
  7684. <parameters>
  7685. <instance-parameter name="clock" transfer-ownership="none">
  7686. <doc xml:space="preserve">a #GstClock</doc>
  7687. <type name="Clock" c:type="GstClock*"/>
  7688. </instance-parameter>
  7689. <parameter name="id" transfer-ownership="none">
  7690. <doc xml:space="preserve">a #GstClockID</doc>
  7691. <type name="ClockID" c:type="GstClockID"/>
  7692. </parameter>
  7693. <parameter name="time" transfer-ownership="none">
  7694. <doc xml:space="preserve">The requested time.</doc>
  7695. <type name="ClockTime" c:type="GstClockTime"/>
  7696. </parameter>
  7697. </parameters>
  7698. </method>
  7699. <method name="unadjust_unlocked"
  7700. c:identifier="gst_clock_unadjust_unlocked">
  7701. <doc xml:space="preserve">Converts the given @external clock time to the internal time of @clock,
  7702. using the rate and reference time set with gst_clock_set_calibration().
  7703. This function should be called with the clock's OBJECT_LOCK held and
  7704. is mainly used by clock subclasses.
  7705. This function is the reverse of gst_clock_adjust_unlocked().</doc>
  7706. <return-value transfer-ownership="none">
  7707. <doc xml:space="preserve">the internal time of the clock corresponding to @external.</doc>
  7708. <type name="ClockTime" c:type="GstClockTime"/>
  7709. </return-value>
  7710. <parameters>
  7711. <instance-parameter name="clock" transfer-ownership="none">
  7712. <doc xml:space="preserve">a #GstClock to use</doc>
  7713. <type name="Clock" c:type="GstClock*"/>
  7714. </instance-parameter>
  7715. <parameter name="external" transfer-ownership="none">
  7716. <doc xml:space="preserve">an external clock time</doc>
  7717. <type name="ClockTime" c:type="GstClockTime"/>
  7718. </parameter>
  7719. </parameters>
  7720. </method>
  7721. <method name="unadjust_with_calibration"
  7722. c:identifier="gst_clock_unadjust_with_calibration"
  7723. version="1.8">
  7724. <doc xml:space="preserve">Converts the given @external_target clock time to the internal time,
  7725. using the passed calibration parameters. This function performs the
  7726. same calculation as gst_clock_unadjust_unlocked() when called using the
  7727. current calibration parameters.
  7728. Note: The @clock parameter is unused and can be NULL</doc>
  7729. <return-value transfer-ownership="none">
  7730. <doc xml:space="preserve">the converted time of the clock.</doc>
  7731. <type name="ClockTime" c:type="GstClockTime"/>
  7732. </return-value>
  7733. <parameters>
  7734. <instance-parameter name="clock"
  7735. transfer-ownership="none"
  7736. nullable="1"
  7737. allow-none="1">
  7738. <doc xml:space="preserve">a #GstClock to use</doc>
  7739. <type name="Clock" c:type="GstClock*"/>
  7740. </instance-parameter>
  7741. <parameter name="external_target" transfer-ownership="none">
  7742. <doc xml:space="preserve">a clock time</doc>
  7743. <type name="ClockTime" c:type="GstClockTime"/>
  7744. </parameter>
  7745. <parameter name="cinternal" transfer-ownership="none">
  7746. <doc xml:space="preserve">a reference internal time</doc>
  7747. <type name="ClockTime" c:type="GstClockTime"/>
  7748. </parameter>
  7749. <parameter name="cexternal" transfer-ownership="none">
  7750. <doc xml:space="preserve">a reference external time</doc>
  7751. <type name="ClockTime" c:type="GstClockTime"/>
  7752. </parameter>
  7753. <parameter name="cnum" transfer-ownership="none">
  7754. <doc xml:space="preserve">the numerator of the rate of the clock relative to its
  7755. internal time</doc>
  7756. <type name="ClockTime" c:type="GstClockTime"/>
  7757. </parameter>
  7758. <parameter name="cdenom" transfer-ownership="none">
  7759. <doc xml:space="preserve">the denominator of the rate of the clock</doc>
  7760. <type name="ClockTime" c:type="GstClockTime"/>
  7761. </parameter>
  7762. </parameters>
  7763. </method>
  7764. <method name="wait_for_sync"
  7765. c:identifier="gst_clock_wait_for_sync"
  7766. version="1.6">
  7767. <doc xml:space="preserve">Waits until @clock is synced for reporting the current time. If @timeout
  7768. is %GST_CLOCK_TIME_NONE it will wait forever, otherwise it will time out
  7769. after @timeout nanoseconds.
  7770. For asynchronous waiting, the GstClock::synced signal can be used.
  7771. This returns immediately with TRUE if GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC
  7772. is not set on the clock, or if the clock is already synced.</doc>
  7773. <return-value transfer-ownership="none">
  7774. <doc xml:space="preserve">%TRUE if waiting was successful, or %FALSE on timeout</doc>
  7775. <type name="gboolean" c:type="gboolean"/>
  7776. </return-value>
  7777. <parameters>
  7778. <instance-parameter name="clock" transfer-ownership="none">
  7779. <doc xml:space="preserve">a GstClock</doc>
  7780. <type name="Clock" c:type="GstClock*"/>
  7781. </instance-parameter>
  7782. <parameter name="timeout" transfer-ownership="none">
  7783. <doc xml:space="preserve">timeout for waiting or %GST_CLOCK_TIME_NONE</doc>
  7784. <type name="ClockTime" c:type="GstClockTime"/>
  7785. </parameter>
  7786. </parameters>
  7787. </method>
  7788. <property name="timeout" writable="1" transfer-ownership="none">
  7789. <type name="guint64" c:type="guint64"/>
  7790. </property>
  7791. <property name="window-size" writable="1" transfer-ownership="none">
  7792. <type name="gint" c:type="gint"/>
  7793. </property>
  7794. <property name="window-threshold" writable="1" transfer-ownership="none">
  7795. <type name="gint" c:type="gint"/>
  7796. </property>
  7797. <field name="object">
  7798. <type name="Object" c:type="GstObject"/>
  7799. </field>
  7800. <field name="priv" readable="0" private="1">
  7801. <type name="ClockPrivate" c:type="GstClockPrivate*"/>
  7802. </field>
  7803. <field name="_gst_reserved" readable="0" private="1">
  7804. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  7805. <type name="gpointer" c:type="gpointer"/>
  7806. </array>
  7807. </field>
  7808. <glib:signal name="synced" when="last" version="1.6">
  7809. <doc xml:space="preserve">Signaled on clocks with GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC set once
  7810. the clock is synchronized, or when it completely lost synchronization.
  7811. This signal will not be emitted on clocks without the flag.
  7812. This signal will be emitted from an arbitrary thread, most likely not
  7813. the application's main thread.</doc>
  7814. <return-value transfer-ownership="none">
  7815. <type name="none" c:type="void"/>
  7816. </return-value>
  7817. <parameters>
  7818. <parameter name="synced" transfer-ownership="none">
  7819. <doc xml:space="preserve">if the clock is synced now</doc>
  7820. <type name="gboolean" c:type="gboolean"/>
  7821. </parameter>
  7822. </parameters>
  7823. </glib:signal>
  7824. </class>
  7825. <callback name="ClockCallback" c:type="GstClockCallback">
  7826. <doc xml:space="preserve">The function prototype of the callback.</doc>
  7827. <return-value transfer-ownership="none">
  7828. <doc xml:space="preserve">%TRUE or %FALSE (currently unused)</doc>
  7829. <type name="gboolean" c:type="gboolean"/>
  7830. </return-value>
  7831. <parameters>
  7832. <parameter name="clock" transfer-ownership="none">
  7833. <doc xml:space="preserve">The clock that triggered the callback</doc>
  7834. <type name="Clock" c:type="GstClock*"/>
  7835. </parameter>
  7836. <parameter name="time" transfer-ownership="none">
  7837. <doc xml:space="preserve">The time it was triggered</doc>
  7838. <type name="ClockTime" c:type="GstClockTime"/>
  7839. </parameter>
  7840. <parameter name="id" transfer-ownership="none">
  7841. <doc xml:space="preserve">The #GstClockID that expired</doc>
  7842. <type name="ClockID" c:type="GstClockID"/>
  7843. </parameter>
  7844. <parameter name="user_data"
  7845. transfer-ownership="none"
  7846. nullable="1"
  7847. allow-none="1"
  7848. closure="3">
  7849. <doc xml:space="preserve">user data passed in the gst_clock_id_wait_async() function</doc>
  7850. <type name="gpointer" c:type="gpointer"/>
  7851. </parameter>
  7852. </parameters>
  7853. </callback>
  7854. <record name="ClockClass"
  7855. c:type="GstClockClass"
  7856. glib:is-gtype-struct-for="Clock">
  7857. <doc xml:space="preserve">GStreamer clock class. Override the vmethods to implement the clock
  7858. functionality.</doc>
  7859. <field name="parent_class">
  7860. <doc xml:space="preserve">the parent class structure</doc>
  7861. <type name="ObjectClass" c:type="GstObjectClass"/>
  7862. </field>
  7863. <field name="change_resolution">
  7864. <callback name="change_resolution">
  7865. <return-value transfer-ownership="none">
  7866. <type name="ClockTime" c:type="GstClockTime"/>
  7867. </return-value>
  7868. <parameters>
  7869. <parameter name="clock" transfer-ownership="none">
  7870. <type name="Clock" c:type="GstClock*"/>
  7871. </parameter>
  7872. <parameter name="old_resolution" transfer-ownership="none">
  7873. <type name="ClockTime" c:type="GstClockTime"/>
  7874. </parameter>
  7875. <parameter name="new_resolution" transfer-ownership="none">
  7876. <type name="ClockTime" c:type="GstClockTime"/>
  7877. </parameter>
  7878. </parameters>
  7879. </callback>
  7880. </field>
  7881. <field name="get_resolution">
  7882. <callback name="get_resolution">
  7883. <return-value transfer-ownership="none">
  7884. <doc xml:space="preserve">the resolution of the clock in units of #GstClockTime.
  7885. MT safe.</doc>
  7886. <type name="ClockTime" c:type="GstClockTime"/>
  7887. </return-value>
  7888. <parameters>
  7889. <parameter name="clock" transfer-ownership="none">
  7890. <doc xml:space="preserve">a #GstClock</doc>
  7891. <type name="Clock" c:type="GstClock*"/>
  7892. </parameter>
  7893. </parameters>
  7894. </callback>
  7895. </field>
  7896. <field name="get_internal_time">
  7897. <callback name="get_internal_time">
  7898. <return-value transfer-ownership="none">
  7899. <doc xml:space="preserve">the internal time of the clock. Or GST_CLOCK_TIME_NONE when
  7900. given invalid input.
  7901. MT safe.</doc>
  7902. <type name="ClockTime" c:type="GstClockTime"/>
  7903. </return-value>
  7904. <parameters>
  7905. <parameter name="clock" transfer-ownership="none">
  7906. <doc xml:space="preserve">a #GstClock to query</doc>
  7907. <type name="Clock" c:type="GstClock*"/>
  7908. </parameter>
  7909. </parameters>
  7910. </callback>
  7911. </field>
  7912. <field name="wait">
  7913. <callback name="wait">
  7914. <return-value transfer-ownership="none">
  7915. <type name="ClockReturn" c:type="GstClockReturn"/>
  7916. </return-value>
  7917. <parameters>
  7918. <parameter name="clock" transfer-ownership="none">
  7919. <type name="Clock" c:type="GstClock*"/>
  7920. </parameter>
  7921. <parameter name="entry" transfer-ownership="none">
  7922. <type name="ClockEntry" c:type="GstClockEntry*"/>
  7923. </parameter>
  7924. <parameter name="jitter" transfer-ownership="none">
  7925. <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
  7926. </parameter>
  7927. </parameters>
  7928. </callback>
  7929. </field>
  7930. <field name="wait_async">
  7931. <callback name="wait_async">
  7932. <return-value transfer-ownership="none">
  7933. <type name="ClockReturn" c:type="GstClockReturn"/>
  7934. </return-value>
  7935. <parameters>
  7936. <parameter name="clock" transfer-ownership="none">
  7937. <type name="Clock" c:type="GstClock*"/>
  7938. </parameter>
  7939. <parameter name="entry" transfer-ownership="none">
  7940. <type name="ClockEntry" c:type="GstClockEntry*"/>
  7941. </parameter>
  7942. </parameters>
  7943. </callback>
  7944. </field>
  7945. <field name="unschedule">
  7946. <callback name="unschedule">
  7947. <return-value transfer-ownership="none">
  7948. <type name="none" c:type="void"/>
  7949. </return-value>
  7950. <parameters>
  7951. <parameter name="clock" transfer-ownership="none">
  7952. <type name="Clock" c:type="GstClock*"/>
  7953. </parameter>
  7954. <parameter name="entry" transfer-ownership="none">
  7955. <type name="ClockEntry" c:type="GstClockEntry*"/>
  7956. </parameter>
  7957. </parameters>
  7958. </callback>
  7959. </field>
  7960. <field name="_gst_reserved" readable="0" private="1">
  7961. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  7962. <type name="gpointer" c:type="gpointer"/>
  7963. </array>
  7964. </field>
  7965. </record>
  7966. <record name="ClockEntry" c:type="GstClockEntry">
  7967. <doc xml:space="preserve">All pending timeouts or periodic notifies are converted into
  7968. an entry.
  7969. Note that GstClockEntry should be treated as an opaque structure. It must
  7970. not be extended or allocated using a custom allocator.</doc>
  7971. <field name="refcount" writable="1">
  7972. <doc xml:space="preserve">reference counter (read-only)</doc>
  7973. <type name="gint" c:type="gint"/>
  7974. </field>
  7975. <field name="clock" writable="1">
  7976. <type name="Clock" c:type="GstClock*"/>
  7977. </field>
  7978. <field name="type" writable="1">
  7979. <type name="ClockEntryType" c:type="GstClockEntryType"/>
  7980. </field>
  7981. <field name="time" writable="1">
  7982. <type name="ClockTime" c:type="GstClockTime"/>
  7983. </field>
  7984. <field name="interval" writable="1">
  7985. <type name="ClockTime" c:type="GstClockTime"/>
  7986. </field>
  7987. <field name="status" writable="1">
  7988. <type name="ClockReturn" c:type="GstClockReturn"/>
  7989. </field>
  7990. <field name="func" writable="1">
  7991. <type name="ClockCallback" c:type="GstClockCallback"/>
  7992. </field>
  7993. <field name="user_data" writable="1">
  7994. <type name="gpointer" c:type="gpointer"/>
  7995. </field>
  7996. <field name="destroy_data" writable="1">
  7997. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  7998. </field>
  7999. <field name="unscheduled" writable="1">
  8000. <type name="gboolean" c:type="gboolean"/>
  8001. </field>
  8002. <field name="woken_up" writable="1">
  8003. <type name="gboolean" c:type="gboolean"/>
  8004. </field>
  8005. <field name="_gst_reserved" readable="0" private="1">
  8006. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  8007. <type name="gpointer" c:type="gpointer"/>
  8008. </array>
  8009. </field>
  8010. </record>
  8011. <enumeration name="ClockEntryType"
  8012. glib:type-name="GstClockEntryType"
  8013. glib:get-type="gst_clock_entry_type_get_type"
  8014. c:type="GstClockEntryType">
  8015. <doc xml:space="preserve">The type of the clock entry</doc>
  8016. <member name="single"
  8017. value="0"
  8018. c:identifier="GST_CLOCK_ENTRY_SINGLE"
  8019. glib:nick="single">
  8020. <doc xml:space="preserve">a single shot timeout</doc>
  8021. </member>
  8022. <member name="periodic"
  8023. value="1"
  8024. c:identifier="GST_CLOCK_ENTRY_PERIODIC"
  8025. glib:nick="periodic">
  8026. <doc xml:space="preserve">a periodic timeout request</doc>
  8027. </member>
  8028. </enumeration>
  8029. <bitfield name="ClockFlags"
  8030. glib:type-name="GstClockFlags"
  8031. glib:get-type="gst_clock_flags_get_type"
  8032. c:type="GstClockFlags">
  8033. <doc xml:space="preserve">The capabilities of this clock</doc>
  8034. <member name="can_do_single_sync"
  8035. value="16"
  8036. c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_SYNC"
  8037. glib:nick="can-do-single-sync">
  8038. <doc xml:space="preserve">clock can do a single sync timeout request</doc>
  8039. </member>
  8040. <member name="can_do_single_async"
  8041. value="32"
  8042. c:identifier="GST_CLOCK_FLAG_CAN_DO_SINGLE_ASYNC"
  8043. glib:nick="can-do-single-async">
  8044. <doc xml:space="preserve">clock can do a single async timeout request</doc>
  8045. </member>
  8046. <member name="can_do_periodic_sync"
  8047. value="64"
  8048. c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_SYNC"
  8049. glib:nick="can-do-periodic-sync">
  8050. <doc xml:space="preserve">clock can do sync periodic timeout requests</doc>
  8051. </member>
  8052. <member name="can_do_periodic_async"
  8053. value="128"
  8054. c:identifier="GST_CLOCK_FLAG_CAN_DO_PERIODIC_ASYNC"
  8055. glib:nick="can-do-periodic-async">
  8056. <doc xml:space="preserve">clock can do async periodic timeout callbacks</doc>
  8057. </member>
  8058. <member name="can_set_resolution"
  8059. value="256"
  8060. c:identifier="GST_CLOCK_FLAG_CAN_SET_RESOLUTION"
  8061. glib:nick="can-set-resolution">
  8062. <doc xml:space="preserve">clock's resolution can be changed</doc>
  8063. </member>
  8064. <member name="can_set_master"
  8065. value="512"
  8066. c:identifier="GST_CLOCK_FLAG_CAN_SET_MASTER"
  8067. glib:nick="can-set-master">
  8068. <doc xml:space="preserve">clock can be slaved to a master clock</doc>
  8069. </member>
  8070. <member name="needs_startup_sync"
  8071. value="1024"
  8072. c:identifier="GST_CLOCK_FLAG_NEEDS_STARTUP_SYNC"
  8073. glib:nick="needs-startup-sync">
  8074. <doc xml:space="preserve">clock needs to be synced before it can be used
  8075. (Since 1.6)</doc>
  8076. </member>
  8077. <member name="last"
  8078. value="4096"
  8079. c:identifier="GST_CLOCK_FLAG_LAST"
  8080. glib:nick="last">
  8081. <doc xml:space="preserve">subclasses can add additional flags starting from this flag</doc>
  8082. </member>
  8083. </bitfield>
  8084. <record name="ClockPrivate" c:type="GstClockPrivate" disguised="1">
  8085. </record>
  8086. <enumeration name="ClockReturn"
  8087. glib:type-name="GstClockReturn"
  8088. glib:get-type="gst_clock_return_get_type"
  8089. c:type="GstClockReturn">
  8090. <doc xml:space="preserve">The return value of a clock operation.</doc>
  8091. <member name="ok" value="0" c:identifier="GST_CLOCK_OK" glib:nick="ok">
  8092. <doc xml:space="preserve">The operation succeeded.</doc>
  8093. </member>
  8094. <member name="early"
  8095. value="1"
  8096. c:identifier="GST_CLOCK_EARLY"
  8097. glib:nick="early">
  8098. <doc xml:space="preserve">The operation was scheduled too late.</doc>
  8099. </member>
  8100. <member name="unscheduled"
  8101. value="2"
  8102. c:identifier="GST_CLOCK_UNSCHEDULED"
  8103. glib:nick="unscheduled">
  8104. <doc xml:space="preserve">The clockID was unscheduled</doc>
  8105. </member>
  8106. <member name="busy"
  8107. value="3"
  8108. c:identifier="GST_CLOCK_BUSY"
  8109. glib:nick="busy">
  8110. <doc xml:space="preserve">The ClockID is busy</doc>
  8111. </member>
  8112. <member name="badtime"
  8113. value="4"
  8114. c:identifier="GST_CLOCK_BADTIME"
  8115. glib:nick="badtime">
  8116. <doc xml:space="preserve">A bad time was provided to a function.</doc>
  8117. </member>
  8118. <member name="error"
  8119. value="5"
  8120. c:identifier="GST_CLOCK_ERROR"
  8121. glib:nick="error">
  8122. <doc xml:space="preserve">An error occurred</doc>
  8123. </member>
  8124. <member name="unsupported"
  8125. value="6"
  8126. c:identifier="GST_CLOCK_UNSUPPORTED"
  8127. glib:nick="unsupported">
  8128. <doc xml:space="preserve">Operation is not supported</doc>
  8129. </member>
  8130. <member name="done"
  8131. value="7"
  8132. c:identifier="GST_CLOCK_DONE"
  8133. glib:nick="done">
  8134. <doc xml:space="preserve">The ClockID is done waiting</doc>
  8135. </member>
  8136. </enumeration>
  8137. <enumeration name="ClockType"
  8138. glib:type-name="GstClockType"
  8139. glib:get-type="gst_clock_type_get_type"
  8140. c:type="GstClockType">
  8141. <doc xml:space="preserve">The different kind of clocks.</doc>
  8142. <member name="realtime"
  8143. value="0"
  8144. c:identifier="GST_CLOCK_TYPE_REALTIME"
  8145. glib:nick="realtime">
  8146. <doc xml:space="preserve">time since Epoch</doc>
  8147. </member>
  8148. <member name="monotonic"
  8149. value="1"
  8150. c:identifier="GST_CLOCK_TYPE_MONOTONIC"
  8151. glib:nick="monotonic">
  8152. <doc xml:space="preserve">monotonic time since some unspecified starting
  8153. point</doc>
  8154. </member>
  8155. <member name="other"
  8156. value="2"
  8157. c:identifier="GST_CLOCK_TYPE_OTHER"
  8158. glib:nick="other">
  8159. <doc xml:space="preserve">some other time source is used (Since 1.0.5)</doc>
  8160. </member>
  8161. </enumeration>
  8162. <record name="Context"
  8163. c:type="GstContext"
  8164. glib:type-name="GstContext"
  8165. glib:get-type="gst_context_get_type"
  8166. c:symbol-prefix="context">
  8167. <doc xml:space="preserve">#GstContext is a container object used to store contexts like a device
  8168. context, a display server connection and similar concepts that should
  8169. be shared between multiple elements.
  8170. Applications can set a context on a complete pipeline by using
  8171. gst_element_set_context(), which will then be propagated to all
  8172. child elements. Elements can handle these in #GstElementClass.set_context()
  8173. and merge them with the context information they already have.
  8174. When an element needs a context it will do the following actions in this
  8175. order until one step succeeds:
  8176. 1. Check if the element already has a context
  8177. 2. Query downstream with GST_QUERY_CONTEXT for the context
  8178. 3. Query upstream with GST_QUERY_CONTEXT for the context
  8179. 4. Post a GST_MESSAGE_NEED_CONTEXT message on the bus with the required
  8180. context types and afterwards check if a usable context was set now
  8181. 5. Create a context by itself and post a GST_MESSAGE_HAVE_CONTEXT message
  8182. on the bus.
  8183. Bins will catch GST_MESSAGE_NEED_CONTEXT messages and will set any previously
  8184. known context on the element that asks for it if possible. Otherwise the
  8185. application should provide one if it can.
  8186. #GstContext&lt;!-- --&gt;s can be persistent.
  8187. A persistent #GstContext is kept in elements when they reach
  8188. %GST_STATE_NULL, non-persistent ones will be removed.
  8189. Also, a non-persistent context won't override a previous persistent
  8190. context set to an element.</doc>
  8191. <constructor name="new" c:identifier="gst_context_new" version="1.2">
  8192. <doc xml:space="preserve">Create a new context.</doc>
  8193. <return-value transfer-ownership="full">
  8194. <doc xml:space="preserve">The new context.</doc>
  8195. <type name="Context" c:type="GstContext*"/>
  8196. </return-value>
  8197. <parameters>
  8198. <parameter name="context_type" transfer-ownership="none">
  8199. <doc xml:space="preserve">Context type</doc>
  8200. <type name="utf8" c:type="const gchar*"/>
  8201. </parameter>
  8202. <parameter name="persistent" transfer-ownership="none">
  8203. <doc xml:space="preserve">Persistent context</doc>
  8204. <type name="gboolean" c:type="gboolean"/>
  8205. </parameter>
  8206. </parameters>
  8207. </constructor>
  8208. <method name="get_context_type"
  8209. c:identifier="gst_context_get_context_type"
  8210. version="1.2">
  8211. <doc xml:space="preserve">Get the type of @context.</doc>
  8212. <return-value transfer-ownership="none">
  8213. <doc xml:space="preserve">The type of the context.</doc>
  8214. <type name="utf8" c:type="const gchar*"/>
  8215. </return-value>
  8216. <parameters>
  8217. <instance-parameter name="context" transfer-ownership="none">
  8218. <doc xml:space="preserve">The #GstContext.</doc>
  8219. <type name="Context" c:type="const GstContext*"/>
  8220. </instance-parameter>
  8221. </parameters>
  8222. </method>
  8223. <method name="get_structure"
  8224. c:identifier="gst_context_get_structure"
  8225. version="1.2">
  8226. <doc xml:space="preserve">Access the structure of the context.</doc>
  8227. <return-value transfer-ownership="none">
  8228. <doc xml:space="preserve">The structure of the context. The structure is
  8229. still owned by the context, which means that you should not modify it,
  8230. free it and that the pointer becomes invalid when you free the context.</doc>
  8231. <type name="Structure" c:type="const GstStructure*"/>
  8232. </return-value>
  8233. <parameters>
  8234. <instance-parameter name="context" transfer-ownership="none">
  8235. <doc xml:space="preserve">The #GstContext.</doc>
  8236. <type name="Context" c:type="const GstContext*"/>
  8237. </instance-parameter>
  8238. </parameters>
  8239. </method>
  8240. <method name="has_context_type"
  8241. c:identifier="gst_context_has_context_type"
  8242. version="1.2">
  8243. <doc xml:space="preserve">Checks if @context has @context_type.</doc>
  8244. <return-value transfer-ownership="none">
  8245. <doc xml:space="preserve">%TRUE if @context has @context_type.</doc>
  8246. <type name="gboolean" c:type="gboolean"/>
  8247. </return-value>
  8248. <parameters>
  8249. <instance-parameter name="context" transfer-ownership="none">
  8250. <doc xml:space="preserve">The #GstContext.</doc>
  8251. <type name="Context" c:type="const GstContext*"/>
  8252. </instance-parameter>
  8253. <parameter name="context_type" transfer-ownership="none">
  8254. <doc xml:space="preserve">Context type to check.</doc>
  8255. <type name="utf8" c:type="const gchar*"/>
  8256. </parameter>
  8257. </parameters>
  8258. </method>
  8259. <method name="is_persistent"
  8260. c:identifier="gst_context_is_persistent"
  8261. version="1.2">
  8262. <doc xml:space="preserve">Check if @context is persistent.</doc>
  8263. <return-value transfer-ownership="none">
  8264. <doc xml:space="preserve">%TRUE if the context is persistent.</doc>
  8265. <type name="gboolean" c:type="gboolean"/>
  8266. </return-value>
  8267. <parameters>
  8268. <instance-parameter name="context" transfer-ownership="none">
  8269. <doc xml:space="preserve">The #GstContext.</doc>
  8270. <type name="Context" c:type="const GstContext*"/>
  8271. </instance-parameter>
  8272. </parameters>
  8273. </method>
  8274. <method name="writable_structure"
  8275. c:identifier="gst_context_writable_structure"
  8276. version="1.2">
  8277. <doc xml:space="preserve">Get a writable version of the structure.</doc>
  8278. <return-value transfer-ownership="full">
  8279. <doc xml:space="preserve">The structure of the context. The structure is still
  8280. owned by the context, which means that you should not free it and
  8281. that the pointer becomes invalid when you free the context.
  8282. This function checks if @context is writable.</doc>
  8283. <type name="Structure" c:type="GstStructure*"/>
  8284. </return-value>
  8285. <parameters>
  8286. <instance-parameter name="context" transfer-ownership="none">
  8287. <doc xml:space="preserve">The #GstContext.</doc>
  8288. <type name="Context" c:type="GstContext*"/>
  8289. </instance-parameter>
  8290. </parameters>
  8291. </method>
  8292. </record>
  8293. <class name="ControlBinding"
  8294. c:symbol-prefix="control_binding"
  8295. c:type="GstControlBinding"
  8296. parent="Object"
  8297. abstract="1"
  8298. glib:type-name="GstControlBinding"
  8299. glib:get-type="gst_control_binding_get_type"
  8300. glib:type-struct="ControlBindingClass">
  8301. <doc xml:space="preserve">A base class for value mapping objects that attaches control sources to gobject
  8302. properties. Such an object is taking one or more #GstControlSource instances,
  8303. combines them and maps the resulting value to the type and value range of the
  8304. bound property.</doc>
  8305. <virtual-method name="get_g_value_array" invoker="get_g_value_array">
  8306. <doc xml:space="preserve">Gets a number of #GValues for the given controlled property starting at the
  8307. requested time. The array @values need to hold enough space for @n_values of
  8308. #GValue.
  8309. This function is useful if one wants to e.g. draw a graph of the control
  8310. curve or apply a control curve sample by sample.</doc>
  8311. <return-value transfer-ownership="none">
  8312. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8313. <type name="gboolean" c:type="gboolean"/>
  8314. </return-value>
  8315. <parameters>
  8316. <instance-parameter name="binding" transfer-ownership="none">
  8317. <doc xml:space="preserve">the control binding</doc>
  8318. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8319. </instance-parameter>
  8320. <parameter name="timestamp" transfer-ownership="none">
  8321. <doc xml:space="preserve">the time that should be processed</doc>
  8322. <type name="ClockTime" c:type="GstClockTime"/>
  8323. </parameter>
  8324. <parameter name="interval" transfer-ownership="none">
  8325. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8326. <type name="ClockTime" c:type="GstClockTime"/>
  8327. </parameter>
  8328. <parameter name="n_values" transfer-ownership="none">
  8329. <doc xml:space="preserve">the number of values</doc>
  8330. <type name="guint" c:type="guint"/>
  8331. </parameter>
  8332. <parameter name="values" transfer-ownership="none">
  8333. <doc xml:space="preserve">array to put control-values in</doc>
  8334. <array length="2" zero-terminated="0" c:type="GValue*">
  8335. <type name="GObject.Value" c:type="GValue"/>
  8336. </array>
  8337. </parameter>
  8338. </parameters>
  8339. </virtual-method>
  8340. <virtual-method name="get_value" invoker="get_value">
  8341. <doc xml:space="preserve">Gets the value for the given controlled property at the requested time.</doc>
  8342. <return-value transfer-ownership="full" nullable="1">
  8343. <doc xml:space="preserve">the GValue of the property at the given time,
  8344. or %NULL if the property isn't controlled.</doc>
  8345. <type name="GObject.Value" c:type="GValue*"/>
  8346. </return-value>
  8347. <parameters>
  8348. <instance-parameter name="binding" transfer-ownership="none">
  8349. <doc xml:space="preserve">the control binding</doc>
  8350. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8351. </instance-parameter>
  8352. <parameter name="timestamp" transfer-ownership="none">
  8353. <doc xml:space="preserve">the time the control-change should be read from</doc>
  8354. <type name="ClockTime" c:type="GstClockTime"/>
  8355. </parameter>
  8356. </parameters>
  8357. </virtual-method>
  8358. <virtual-method name="get_value_array"
  8359. invoker="get_value_array"
  8360. introspectable="0">
  8361. <doc xml:space="preserve">Gets a number of values for the given controlled property starting at the
  8362. requested time. The array @values need to hold enough space for @n_values of
  8363. the same type as the objects property's type.
  8364. This function is useful if one wants to e.g. draw a graph of the control
  8365. curve or apply a control curve sample by sample.
  8366. The values are unboxed and ready to be used. The similar function
  8367. gst_control_binding_get_g_value_array() returns the array as #GValues and is
  8368. more suitable for bindings.</doc>
  8369. <return-value transfer-ownership="none">
  8370. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8371. <type name="gboolean" c:type="gboolean"/>
  8372. </return-value>
  8373. <parameters>
  8374. <instance-parameter name="binding" transfer-ownership="none">
  8375. <doc xml:space="preserve">the control binding</doc>
  8376. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8377. </instance-parameter>
  8378. <parameter name="timestamp" transfer-ownership="none">
  8379. <doc xml:space="preserve">the time that should be processed</doc>
  8380. <type name="ClockTime" c:type="GstClockTime"/>
  8381. </parameter>
  8382. <parameter name="interval" transfer-ownership="none">
  8383. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8384. <type name="ClockTime" c:type="GstClockTime"/>
  8385. </parameter>
  8386. <parameter name="n_values" transfer-ownership="none">
  8387. <doc xml:space="preserve">the number of values</doc>
  8388. <type name="guint" c:type="guint"/>
  8389. </parameter>
  8390. <parameter name="values"
  8391. transfer-ownership="none"
  8392. nullable="1"
  8393. allow-none="1">
  8394. <doc xml:space="preserve">array to put control-values in</doc>
  8395. <array length="2" zero-terminated="0" c:type="gpointer">
  8396. <type name="gpointer" c:type="gpointer"/>
  8397. </array>
  8398. </parameter>
  8399. </parameters>
  8400. </virtual-method>
  8401. <virtual-method name="sync_values" invoker="sync_values">
  8402. <doc xml:space="preserve">Sets the property of the @object, according to the #GstControlSources that
  8403. handle them and for the given timestamp.
  8404. If this function fails, it is most likely the application developers fault.
  8405. Most probably the control sources are not setup correctly.</doc>
  8406. <return-value transfer-ownership="none">
  8407. <doc xml:space="preserve">%TRUE if the controller value could be applied to the object
  8408. property, %FALSE otherwise</doc>
  8409. <type name="gboolean" c:type="gboolean"/>
  8410. </return-value>
  8411. <parameters>
  8412. <instance-parameter name="binding" transfer-ownership="none">
  8413. <doc xml:space="preserve">the control binding</doc>
  8414. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8415. </instance-parameter>
  8416. <parameter name="object" transfer-ownership="none">
  8417. <doc xml:space="preserve">the object that has controlled properties</doc>
  8418. <type name="Object" c:type="GstObject*"/>
  8419. </parameter>
  8420. <parameter name="timestamp" transfer-ownership="none">
  8421. <doc xml:space="preserve">the time that should be processed</doc>
  8422. <type name="ClockTime" c:type="GstClockTime"/>
  8423. </parameter>
  8424. <parameter name="last_sync" transfer-ownership="none">
  8425. <doc xml:space="preserve">the last time this was called</doc>
  8426. <type name="ClockTime" c:type="GstClockTime"/>
  8427. </parameter>
  8428. </parameters>
  8429. </virtual-method>
  8430. <method name="get_g_value_array"
  8431. c:identifier="gst_control_binding_get_g_value_array">
  8432. <doc xml:space="preserve">Gets a number of #GValues for the given controlled property starting at the
  8433. requested time. The array @values need to hold enough space for @n_values of
  8434. #GValue.
  8435. This function is useful if one wants to e.g. draw a graph of the control
  8436. curve or apply a control curve sample by sample.</doc>
  8437. <return-value transfer-ownership="none">
  8438. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8439. <type name="gboolean" c:type="gboolean"/>
  8440. </return-value>
  8441. <parameters>
  8442. <instance-parameter name="binding" transfer-ownership="none">
  8443. <doc xml:space="preserve">the control binding</doc>
  8444. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8445. </instance-parameter>
  8446. <parameter name="timestamp" transfer-ownership="none">
  8447. <doc xml:space="preserve">the time that should be processed</doc>
  8448. <type name="ClockTime" c:type="GstClockTime"/>
  8449. </parameter>
  8450. <parameter name="interval" transfer-ownership="none">
  8451. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8452. <type name="ClockTime" c:type="GstClockTime"/>
  8453. </parameter>
  8454. <parameter name="n_values" transfer-ownership="none">
  8455. <doc xml:space="preserve">the number of values</doc>
  8456. <type name="guint" c:type="guint"/>
  8457. </parameter>
  8458. <parameter name="values" transfer-ownership="none">
  8459. <doc xml:space="preserve">array to put control-values in</doc>
  8460. <array length="2" zero-terminated="0" c:type="GValue*">
  8461. <type name="GObject.Value" c:type="GValue"/>
  8462. </array>
  8463. </parameter>
  8464. </parameters>
  8465. </method>
  8466. <method name="get_value" c:identifier="gst_control_binding_get_value">
  8467. <doc xml:space="preserve">Gets the value for the given controlled property at the requested time.</doc>
  8468. <return-value transfer-ownership="full" nullable="1">
  8469. <doc xml:space="preserve">the GValue of the property at the given time,
  8470. or %NULL if the property isn't controlled.</doc>
  8471. <type name="GObject.Value" c:type="GValue*"/>
  8472. </return-value>
  8473. <parameters>
  8474. <instance-parameter name="binding" transfer-ownership="none">
  8475. <doc xml:space="preserve">the control binding</doc>
  8476. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8477. </instance-parameter>
  8478. <parameter name="timestamp" transfer-ownership="none">
  8479. <doc xml:space="preserve">the time the control-change should be read from</doc>
  8480. <type name="ClockTime" c:type="GstClockTime"/>
  8481. </parameter>
  8482. </parameters>
  8483. </method>
  8484. <method name="get_value_array"
  8485. c:identifier="gst_control_binding_get_value_array"
  8486. introspectable="0">
  8487. <doc xml:space="preserve">Gets a number of values for the given controlled property starting at the
  8488. requested time. The array @values need to hold enough space for @n_values of
  8489. the same type as the objects property's type.
  8490. This function is useful if one wants to e.g. draw a graph of the control
  8491. curve or apply a control curve sample by sample.
  8492. The values are unboxed and ready to be used. The similar function
  8493. gst_control_binding_get_g_value_array() returns the array as #GValues and is
  8494. more suitable for bindings.</doc>
  8495. <return-value transfer-ownership="none">
  8496. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8497. <type name="gboolean" c:type="gboolean"/>
  8498. </return-value>
  8499. <parameters>
  8500. <instance-parameter name="binding" transfer-ownership="none">
  8501. <doc xml:space="preserve">the control binding</doc>
  8502. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8503. </instance-parameter>
  8504. <parameter name="timestamp" transfer-ownership="none">
  8505. <doc xml:space="preserve">the time that should be processed</doc>
  8506. <type name="ClockTime" c:type="GstClockTime"/>
  8507. </parameter>
  8508. <parameter name="interval" transfer-ownership="none">
  8509. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8510. <type name="ClockTime" c:type="GstClockTime"/>
  8511. </parameter>
  8512. <parameter name="n_values" transfer-ownership="none">
  8513. <doc xml:space="preserve">the number of values</doc>
  8514. <type name="guint" c:type="guint"/>
  8515. </parameter>
  8516. <parameter name="values" transfer-ownership="none">
  8517. <doc xml:space="preserve">array to put control-values in</doc>
  8518. <array length="2" zero-terminated="0" c:type="gpointer">
  8519. <type name="gpointer" c:type="gpointer"/>
  8520. </array>
  8521. </parameter>
  8522. </parameters>
  8523. </method>
  8524. <method name="is_disabled"
  8525. c:identifier="gst_control_binding_is_disabled">
  8526. <doc xml:space="preserve">Check if the control binding is disabled.</doc>
  8527. <return-value transfer-ownership="none">
  8528. <doc xml:space="preserve">%TRUE if the binding is inactive</doc>
  8529. <type name="gboolean" c:type="gboolean"/>
  8530. </return-value>
  8531. <parameters>
  8532. <instance-parameter name="binding" transfer-ownership="none">
  8533. <doc xml:space="preserve">the control binding</doc>
  8534. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8535. </instance-parameter>
  8536. </parameters>
  8537. </method>
  8538. <method name="set_disabled"
  8539. c:identifier="gst_control_binding_set_disabled">
  8540. <doc xml:space="preserve">This function is used to disable a control binding for some time, i.e.
  8541. gst_object_sync_values() will do nothing.</doc>
  8542. <return-value transfer-ownership="none">
  8543. <type name="none" c:type="void"/>
  8544. </return-value>
  8545. <parameters>
  8546. <instance-parameter name="binding" transfer-ownership="none">
  8547. <doc xml:space="preserve">the control binding</doc>
  8548. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8549. </instance-parameter>
  8550. <parameter name="disabled" transfer-ownership="none">
  8551. <doc xml:space="preserve">boolean that specifies whether to disable the controller
  8552. or not.</doc>
  8553. <type name="gboolean" c:type="gboolean"/>
  8554. </parameter>
  8555. </parameters>
  8556. </method>
  8557. <method name="sync_values"
  8558. c:identifier="gst_control_binding_sync_values">
  8559. <doc xml:space="preserve">Sets the property of the @object, according to the #GstControlSources that
  8560. handle them and for the given timestamp.
  8561. If this function fails, it is most likely the application developers fault.
  8562. Most probably the control sources are not setup correctly.</doc>
  8563. <return-value transfer-ownership="none">
  8564. <doc xml:space="preserve">%TRUE if the controller value could be applied to the object
  8565. property, %FALSE otherwise</doc>
  8566. <type name="gboolean" c:type="gboolean"/>
  8567. </return-value>
  8568. <parameters>
  8569. <instance-parameter name="binding" transfer-ownership="none">
  8570. <doc xml:space="preserve">the control binding</doc>
  8571. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8572. </instance-parameter>
  8573. <parameter name="object" transfer-ownership="none">
  8574. <doc xml:space="preserve">the object that has controlled properties</doc>
  8575. <type name="Object" c:type="GstObject*"/>
  8576. </parameter>
  8577. <parameter name="timestamp" transfer-ownership="none">
  8578. <doc xml:space="preserve">the time that should be processed</doc>
  8579. <type name="ClockTime" c:type="GstClockTime"/>
  8580. </parameter>
  8581. <parameter name="last_sync" transfer-ownership="none">
  8582. <doc xml:space="preserve">the last time this was called</doc>
  8583. <type name="ClockTime" c:type="GstClockTime"/>
  8584. </parameter>
  8585. </parameters>
  8586. </method>
  8587. <property name="name"
  8588. writable="1"
  8589. construct-only="1"
  8590. transfer-ownership="none">
  8591. <type name="utf8" c:type="gchar*"/>
  8592. </property>
  8593. <property name="object"
  8594. writable="1"
  8595. construct-only="1"
  8596. transfer-ownership="none">
  8597. <type name="Object"/>
  8598. </property>
  8599. <field name="parent">
  8600. <type name="Object" c:type="GstObject"/>
  8601. </field>
  8602. <field name="name">
  8603. <doc xml:space="preserve">name of the property of this binding</doc>
  8604. <type name="utf8" c:type="gchar*"/>
  8605. </field>
  8606. <field name="pspec">
  8607. <doc xml:space="preserve">#GParamSpec for this property</doc>
  8608. <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
  8609. </field>
  8610. <field name="object" readable="0" private="1">
  8611. <type name="Object" c:type="GstObject*"/>
  8612. </field>
  8613. <field name="disabled" readable="0" private="1">
  8614. <type name="gboolean" c:type="gboolean"/>
  8615. </field>
  8616. <field name="_gst_reserved" readable="0" private="1">
  8617. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  8618. <type name="gpointer" c:type="gpointer"/>
  8619. </array>
  8620. </field>
  8621. </class>
  8622. <record name="ControlBindingClass"
  8623. c:type="GstControlBindingClass"
  8624. glib:is-gtype-struct-for="ControlBinding">
  8625. <doc xml:space="preserve">The class structure of #GstControlBinding.</doc>
  8626. <field name="parent_class">
  8627. <doc xml:space="preserve">Parent class</doc>
  8628. <type name="ObjectClass" c:type="GstObjectClass"/>
  8629. </field>
  8630. <field name="sync_values">
  8631. <callback name="sync_values">
  8632. <return-value transfer-ownership="none">
  8633. <doc xml:space="preserve">%TRUE if the controller value could be applied to the object
  8634. property, %FALSE otherwise</doc>
  8635. <type name="gboolean" c:type="gboolean"/>
  8636. </return-value>
  8637. <parameters>
  8638. <parameter name="binding" transfer-ownership="none">
  8639. <doc xml:space="preserve">the control binding</doc>
  8640. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8641. </parameter>
  8642. <parameter name="object" transfer-ownership="none">
  8643. <doc xml:space="preserve">the object that has controlled properties</doc>
  8644. <type name="Object" c:type="GstObject*"/>
  8645. </parameter>
  8646. <parameter name="timestamp" transfer-ownership="none">
  8647. <doc xml:space="preserve">the time that should be processed</doc>
  8648. <type name="ClockTime" c:type="GstClockTime"/>
  8649. </parameter>
  8650. <parameter name="last_sync" transfer-ownership="none">
  8651. <doc xml:space="preserve">the last time this was called</doc>
  8652. <type name="ClockTime" c:type="GstClockTime"/>
  8653. </parameter>
  8654. </parameters>
  8655. </callback>
  8656. </field>
  8657. <field name="get_value">
  8658. <callback name="get_value">
  8659. <return-value transfer-ownership="full" nullable="1">
  8660. <doc xml:space="preserve">the GValue of the property at the given time,
  8661. or %NULL if the property isn't controlled.</doc>
  8662. <type name="GObject.Value" c:type="GValue*"/>
  8663. </return-value>
  8664. <parameters>
  8665. <parameter name="binding" transfer-ownership="none">
  8666. <doc xml:space="preserve">the control binding</doc>
  8667. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8668. </parameter>
  8669. <parameter name="timestamp" transfer-ownership="none">
  8670. <doc xml:space="preserve">the time the control-change should be read from</doc>
  8671. <type name="ClockTime" c:type="GstClockTime"/>
  8672. </parameter>
  8673. </parameters>
  8674. </callback>
  8675. </field>
  8676. <field name="get_value_array" introspectable="0">
  8677. <callback name="get_value_array" introspectable="0">
  8678. <return-value transfer-ownership="none">
  8679. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8680. <type name="gboolean" c:type="gboolean"/>
  8681. </return-value>
  8682. <parameters>
  8683. <parameter name="binding" transfer-ownership="none">
  8684. <doc xml:space="preserve">the control binding</doc>
  8685. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8686. </parameter>
  8687. <parameter name="timestamp" transfer-ownership="none">
  8688. <doc xml:space="preserve">the time that should be processed</doc>
  8689. <type name="ClockTime" c:type="GstClockTime"/>
  8690. </parameter>
  8691. <parameter name="interval" transfer-ownership="none">
  8692. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8693. <type name="ClockTime" c:type="GstClockTime"/>
  8694. </parameter>
  8695. <parameter name="n_values" transfer-ownership="none">
  8696. <doc xml:space="preserve">the number of values</doc>
  8697. <type name="guint" c:type="guint"/>
  8698. </parameter>
  8699. <parameter name="values"
  8700. transfer-ownership="none"
  8701. nullable="1"
  8702. allow-none="1">
  8703. <doc xml:space="preserve">array to put control-values in</doc>
  8704. <array length="3" zero-terminated="0" c:type="gpointer">
  8705. <type name="gpointer" c:type="gpointer"/>
  8706. </array>
  8707. </parameter>
  8708. </parameters>
  8709. </callback>
  8710. </field>
  8711. <field name="get_g_value_array">
  8712. <callback name="get_g_value_array">
  8713. <return-value transfer-ownership="none">
  8714. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8715. <type name="gboolean" c:type="gboolean"/>
  8716. </return-value>
  8717. <parameters>
  8718. <parameter name="binding" transfer-ownership="none">
  8719. <doc xml:space="preserve">the control binding</doc>
  8720. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8721. </parameter>
  8722. <parameter name="timestamp" transfer-ownership="none">
  8723. <doc xml:space="preserve">the time that should be processed</doc>
  8724. <type name="ClockTime" c:type="GstClockTime"/>
  8725. </parameter>
  8726. <parameter name="interval" transfer-ownership="none">
  8727. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8728. <type name="ClockTime" c:type="GstClockTime"/>
  8729. </parameter>
  8730. <parameter name="n_values" transfer-ownership="none">
  8731. <doc xml:space="preserve">the number of values</doc>
  8732. <type name="guint" c:type="guint"/>
  8733. </parameter>
  8734. <parameter name="values" transfer-ownership="none">
  8735. <doc xml:space="preserve">array to put control-values in</doc>
  8736. <array length="3" zero-terminated="0" c:type="GValue*">
  8737. <type name="GObject.Value" c:type="GValue"/>
  8738. </array>
  8739. </parameter>
  8740. </parameters>
  8741. </callback>
  8742. </field>
  8743. <field name="_gst_reserved" readable="0" private="1">
  8744. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  8745. <type name="gpointer" c:type="gpointer"/>
  8746. </array>
  8747. </field>
  8748. </record>
  8749. <callback name="ControlBindingConvert" c:type="GstControlBindingConvert">
  8750. <return-value transfer-ownership="none">
  8751. <type name="none" c:type="void"/>
  8752. </return-value>
  8753. <parameters>
  8754. <parameter name="binding" transfer-ownership="none">
  8755. <type name="ControlBinding" c:type="GstControlBinding*"/>
  8756. </parameter>
  8757. <parameter name="src_value" transfer-ownership="none">
  8758. <type name="gdouble" c:type="gdouble"/>
  8759. </parameter>
  8760. <parameter name="dest_value" transfer-ownership="none">
  8761. <type name="GObject.Value" c:type="GValue*"/>
  8762. </parameter>
  8763. </parameters>
  8764. </callback>
  8765. <class name="ControlSource"
  8766. c:symbol-prefix="control_source"
  8767. c:type="GstControlSource"
  8768. parent="Object"
  8769. abstract="1"
  8770. glib:type-name="GstControlSource"
  8771. glib:get-type="gst_control_source_get_type"
  8772. glib:type-struct="ControlSourceClass">
  8773. <doc xml:space="preserve">The #GstControlSource is a base class for control value sources that could
  8774. be used to get timestamp-value pairs. A control source essentially is a
  8775. function over time, returning float values between 0.0 and 1.0.
  8776. A #GstControlSource is used by first getting an instance of a specific
  8777. control-source, creating a binding for the control-source to the target property
  8778. of the element and then adding the binding to the element. The binding will
  8779. convert the data types and value range to fit to the bound property.
  8780. For implementing a new #GstControlSource one has to implement
  8781. #GstControlSourceGetValue and #GstControlSourceGetValueArray functions.
  8782. These are then used by gst_control_source_get_value() and
  8783. gst_control_source_get_value_array() to get values for specific timestamps.</doc>
  8784. <method name="control_source_get_value"
  8785. c:identifier="gst_control_source_get_value">
  8786. <doc xml:space="preserve">Gets the value for this #GstControlSource at a given timestamp.</doc>
  8787. <return-value transfer-ownership="none">
  8788. <doc xml:space="preserve">%FALSE if the value couldn't be returned, %TRUE otherwise.</doc>
  8789. <type name="gboolean" c:type="gboolean"/>
  8790. </return-value>
  8791. <parameters>
  8792. <instance-parameter name="self" transfer-ownership="none">
  8793. <doc xml:space="preserve">the #GstControlSource object</doc>
  8794. <type name="ControlSource" c:type="GstControlSource*"/>
  8795. </instance-parameter>
  8796. <parameter name="timestamp" transfer-ownership="none">
  8797. <doc xml:space="preserve">the time for which the value should be returned</doc>
  8798. <type name="ClockTime" c:type="GstClockTime"/>
  8799. </parameter>
  8800. <parameter name="value"
  8801. direction="out"
  8802. caller-allocates="0"
  8803. transfer-ownership="full">
  8804. <doc xml:space="preserve">the value</doc>
  8805. <type name="gdouble" c:type="gdouble*"/>
  8806. </parameter>
  8807. </parameters>
  8808. </method>
  8809. <method name="control_source_get_value_array"
  8810. c:identifier="gst_control_source_get_value_array">
  8811. <doc xml:space="preserve">Gets an array of values for for this #GstControlSource. Values that are
  8812. undefined contain NANs.</doc>
  8813. <return-value transfer-ownership="none">
  8814. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  8815. <type name="gboolean" c:type="gboolean"/>
  8816. </return-value>
  8817. <parameters>
  8818. <instance-parameter name="self" transfer-ownership="none">
  8819. <doc xml:space="preserve">the #GstControlSource object</doc>
  8820. <type name="ControlSource" c:type="GstControlSource*"/>
  8821. </instance-parameter>
  8822. <parameter name="timestamp" transfer-ownership="none">
  8823. <doc xml:space="preserve">the first timestamp</doc>
  8824. <type name="ClockTime" c:type="GstClockTime"/>
  8825. </parameter>
  8826. <parameter name="interval" transfer-ownership="none">
  8827. <doc xml:space="preserve">the time steps</doc>
  8828. <type name="ClockTime" c:type="GstClockTime"/>
  8829. </parameter>
  8830. <parameter name="n_values" transfer-ownership="none">
  8831. <doc xml:space="preserve">the number of values to fetch</doc>
  8832. <type name="guint" c:type="guint"/>
  8833. </parameter>
  8834. <parameter name="values" transfer-ownership="none">
  8835. <doc xml:space="preserve">array to put control-values in</doc>
  8836. <array length="2" zero-terminated="0" c:type="gdouble*">
  8837. <type name="gdouble" c:type="gdouble"/>
  8838. </array>
  8839. </parameter>
  8840. </parameters>
  8841. </method>
  8842. <field name="parent">
  8843. <type name="Object" c:type="GstObject"/>
  8844. </field>
  8845. <field name="get_value">
  8846. <doc xml:space="preserve">Function for returning a value for a given timestamp</doc>
  8847. <type name="ControlSourceGetValue" c:type="GstControlSourceGetValue"/>
  8848. </field>
  8849. <field name="get_value_array">
  8850. <doc xml:space="preserve">Function for returning a values array for a given timestamp</doc>
  8851. <type name="ControlSourceGetValueArray"
  8852. c:type="GstControlSourceGetValueArray"/>
  8853. </field>
  8854. <field name="_gst_reserved" readable="0" private="1">
  8855. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  8856. <type name="gpointer" c:type="gpointer"/>
  8857. </array>
  8858. </field>
  8859. </class>
  8860. <record name="ControlSourceClass"
  8861. c:type="GstControlSourceClass"
  8862. glib:is-gtype-struct-for="ControlSource">
  8863. <doc xml:space="preserve">The class structure of #GstControlSource.</doc>
  8864. <field name="parent_class">
  8865. <doc xml:space="preserve">Parent class</doc>
  8866. <type name="ObjectClass" c:type="GstObjectClass"/>
  8867. </field>
  8868. <field name="_gst_reserved" readable="0" private="1">
  8869. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  8870. <type name="gpointer" c:type="gpointer"/>
  8871. </array>
  8872. </field>
  8873. </record>
  8874. <callback name="ControlSourceGetValue" c:type="GstControlSourceGetValue">
  8875. <doc xml:space="preserve">Function for returning a value for a given timestamp.</doc>
  8876. <return-value transfer-ownership="none">
  8877. <doc xml:space="preserve">%TRUE if the value was successfully calculated.</doc>
  8878. <type name="gboolean" c:type="gboolean"/>
  8879. </return-value>
  8880. <parameters>
  8881. <parameter name="self" transfer-ownership="none">
  8882. <doc xml:space="preserve">the #GstControlSource instance</doc>
  8883. <type name="ControlSource" c:type="GstControlSource*"/>
  8884. </parameter>
  8885. <parameter name="timestamp" transfer-ownership="none">
  8886. <doc xml:space="preserve">timestamp for which a value should be calculated</doc>
  8887. <type name="ClockTime" c:type="GstClockTime"/>
  8888. </parameter>
  8889. <parameter name="value" transfer-ownership="none">
  8890. <doc xml:space="preserve">a value which will be set to the result.</doc>
  8891. <type name="gdouble" c:type="gdouble*"/>
  8892. </parameter>
  8893. </parameters>
  8894. </callback>
  8895. <callback name="ControlSourceGetValueArray"
  8896. c:type="GstControlSourceGetValueArray">
  8897. <doc xml:space="preserve">Function for returning an array of values for starting at a given timestamp.</doc>
  8898. <return-value transfer-ownership="none">
  8899. <doc xml:space="preserve">%TRUE if the values were successfully calculated.</doc>
  8900. <type name="gboolean" c:type="gboolean"/>
  8901. </return-value>
  8902. <parameters>
  8903. <parameter name="self" transfer-ownership="none">
  8904. <doc xml:space="preserve">the #GstControlSource instance</doc>
  8905. <type name="ControlSource" c:type="GstControlSource*"/>
  8906. </parameter>
  8907. <parameter name="timestamp" transfer-ownership="none">
  8908. <doc xml:space="preserve">timestamp for which a value should be calculated</doc>
  8909. <type name="ClockTime" c:type="GstClockTime"/>
  8910. </parameter>
  8911. <parameter name="interval" transfer-ownership="none">
  8912. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  8913. <type name="ClockTime" c:type="GstClockTime"/>
  8914. </parameter>
  8915. <parameter name="n_values" transfer-ownership="none">
  8916. <doc xml:space="preserve">the number of values</doc>
  8917. <type name="guint" c:type="guint"/>
  8918. </parameter>
  8919. <parameter name="values" transfer-ownership="none">
  8920. <doc xml:space="preserve">array to put control-values in</doc>
  8921. <type name="gdouble" c:type="gdouble*"/>
  8922. </parameter>
  8923. </parameters>
  8924. </callback>
  8925. <enumeration name="CoreError"
  8926. glib:type-name="GstCoreError"
  8927. glib:get-type="gst_core_error_get_type"
  8928. c:type="GstCoreError"
  8929. glib:error-domain="gst-core-error-quark">
  8930. <doc xml:space="preserve">Core errors are errors inside the core GStreamer library.</doc>
  8931. <member name="failed"
  8932. value="1"
  8933. c:identifier="GST_CORE_ERROR_FAILED"
  8934. glib:nick="failed">
  8935. <doc xml:space="preserve">a general error which doesn't fit in any other
  8936. category. Make sure you add a custom message to the error call.</doc>
  8937. </member>
  8938. <member name="too_lazy"
  8939. value="2"
  8940. c:identifier="GST_CORE_ERROR_TOO_LAZY"
  8941. glib:nick="too-lazy">
  8942. <doc xml:space="preserve">do not use this except as a placeholder for
  8943. deciding where to go while developing code.</doc>
  8944. </member>
  8945. <member name="not_implemented"
  8946. value="3"
  8947. c:identifier="GST_CORE_ERROR_NOT_IMPLEMENTED"
  8948. glib:nick="not-implemented">
  8949. <doc xml:space="preserve">use this when you do not want to implement
  8950. this functionality yet.</doc>
  8951. </member>
  8952. <member name="state_change"
  8953. value="4"
  8954. c:identifier="GST_CORE_ERROR_STATE_CHANGE"
  8955. glib:nick="state-change">
  8956. <doc xml:space="preserve">used for state change errors.</doc>
  8957. </member>
  8958. <member name="pad"
  8959. value="5"
  8960. c:identifier="GST_CORE_ERROR_PAD"
  8961. glib:nick="pad">
  8962. <doc xml:space="preserve">used for pad-related errors.</doc>
  8963. </member>
  8964. <member name="thread"
  8965. value="6"
  8966. c:identifier="GST_CORE_ERROR_THREAD"
  8967. glib:nick="thread">
  8968. <doc xml:space="preserve">used for thread-related errors.</doc>
  8969. </member>
  8970. <member name="negotiation"
  8971. value="7"
  8972. c:identifier="GST_CORE_ERROR_NEGOTIATION"
  8973. glib:nick="negotiation">
  8974. <doc xml:space="preserve">used for negotiation-related errors.</doc>
  8975. </member>
  8976. <member name="event"
  8977. value="8"
  8978. c:identifier="GST_CORE_ERROR_EVENT"
  8979. glib:nick="event">
  8980. <doc xml:space="preserve">used for event-related errors.</doc>
  8981. </member>
  8982. <member name="seek"
  8983. value="9"
  8984. c:identifier="GST_CORE_ERROR_SEEK"
  8985. glib:nick="seek">
  8986. <doc xml:space="preserve">used for seek-related errors.</doc>
  8987. </member>
  8988. <member name="caps"
  8989. value="10"
  8990. c:identifier="GST_CORE_ERROR_CAPS"
  8991. glib:nick="caps">
  8992. <doc xml:space="preserve">used for caps-related errors.</doc>
  8993. </member>
  8994. <member name="tag"
  8995. value="11"
  8996. c:identifier="GST_CORE_ERROR_TAG"
  8997. glib:nick="tag">
  8998. <doc xml:space="preserve">used for negotiation-related errors.</doc>
  8999. </member>
  9000. <member name="missing_plugin"
  9001. value="12"
  9002. c:identifier="GST_CORE_ERROR_MISSING_PLUGIN"
  9003. glib:nick="missing-plugin">
  9004. <doc xml:space="preserve">used if a plugin is missing.</doc>
  9005. </member>
  9006. <member name="clock"
  9007. value="13"
  9008. c:identifier="GST_CORE_ERROR_CLOCK"
  9009. glib:nick="clock">
  9010. <doc xml:space="preserve">used for clock related errors.</doc>
  9011. </member>
  9012. <member name="disabled"
  9013. value="14"
  9014. c:identifier="GST_CORE_ERROR_DISABLED"
  9015. glib:nick="disabled">
  9016. <doc xml:space="preserve">used if functionality has been disabled at
  9017. compile time.</doc>
  9018. </member>
  9019. <member name="num_errors"
  9020. value="15"
  9021. c:identifier="GST_CORE_ERROR_NUM_ERRORS"
  9022. glib:nick="num-errors">
  9023. <doc xml:space="preserve">the number of core error types.</doc>
  9024. </member>
  9025. <function name="quark" c:identifier="gst_core_error_quark">
  9026. <return-value transfer-ownership="none">
  9027. <type name="GLib.Quark" c:type="GQuark"/>
  9028. </return-value>
  9029. </function>
  9030. </enumeration>
  9031. <constant name="DEBUG_BG_MASK" value="240" c:type="GST_DEBUG_BG_MASK">
  9032. <type name="gint" c:type="gint"/>
  9033. </constant>
  9034. <constant name="DEBUG_FG_MASK" value="15" c:type="GST_DEBUG_FG_MASK">
  9035. <type name="gint" c:type="gint"/>
  9036. </constant>
  9037. <constant name="DEBUG_FORMAT_MASK"
  9038. value="65280"
  9039. c:type="GST_DEBUG_FORMAT_MASK">
  9040. <type name="gint" c:type="gint"/>
  9041. </constant>
  9042. <record name="DateTime"
  9043. c:type="GstDateTime"
  9044. glib:type-name="GstDateTime"
  9045. glib:get-type="gst_date_time_get_type"
  9046. c:symbol-prefix="date_time">
  9047. <doc xml:space="preserve">Struct to store date, time and timezone information altogether.
  9048. #GstDateTime is refcounted and immutable.
  9049. Date information is handled using the proleptic Gregorian calendar.
  9050. Provides basic creation functions and accessor functions to its fields.</doc>
  9051. <constructor name="new" c:identifier="gst_date_time_new">
  9052. <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
  9053. in the supplied timezone.
  9054. @year should be from 1 to 9999, @month should be from 1 to 12, @day from
  9055. 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.
  9056. Note that @tzoffset is a float and was chosen so for being able to handle
  9057. some fractional timezones, while it still keeps the readability of
  9058. representing it in hours for most timezones.
  9059. If value is -1 then all over value will be ignored. For example
  9060. if @month == -1, then #GstDateTime will created only for @year. If
  9061. @day == -1, then #GstDateTime will created for @year and @month and
  9062. so on.
  9063. Free-function: gst_date_time_unref</doc>
  9064. <return-value transfer-ownership="full">
  9065. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9066. <type name="DateTime" c:type="GstDateTime*"/>
  9067. </return-value>
  9068. <parameters>
  9069. <parameter name="tzoffset" transfer-ownership="none">
  9070. <doc xml:space="preserve">Offset from UTC in hours.</doc>
  9071. <type name="gfloat" c:type="gfloat"/>
  9072. </parameter>
  9073. <parameter name="year" transfer-ownership="none">
  9074. <doc xml:space="preserve">the gregorian year</doc>
  9075. <type name="gint" c:type="gint"/>
  9076. </parameter>
  9077. <parameter name="month" transfer-ownership="none">
  9078. <doc xml:space="preserve">the gregorian month</doc>
  9079. <type name="gint" c:type="gint"/>
  9080. </parameter>
  9081. <parameter name="day" transfer-ownership="none">
  9082. <doc xml:space="preserve">the day of the gregorian month</doc>
  9083. <type name="gint" c:type="gint"/>
  9084. </parameter>
  9085. <parameter name="hour" transfer-ownership="none">
  9086. <doc xml:space="preserve">the hour of the day</doc>
  9087. <type name="gint" c:type="gint"/>
  9088. </parameter>
  9089. <parameter name="minute" transfer-ownership="none">
  9090. <doc xml:space="preserve">the minute of the hour</doc>
  9091. <type name="gint" c:type="gint"/>
  9092. </parameter>
  9093. <parameter name="seconds" transfer-ownership="none">
  9094. <doc xml:space="preserve">the second of the minute</doc>
  9095. <type name="gdouble" c:type="gdouble"/>
  9096. </parameter>
  9097. </parameters>
  9098. </constructor>
  9099. <constructor name="new_from_g_date_time"
  9100. c:identifier="gst_date_time_new_from_g_date_time">
  9101. <doc xml:space="preserve">Creates a new #GstDateTime from a #GDateTime object.
  9102. Free-function: gst_date_time_unref</doc>
  9103. <return-value transfer-ownership="full" nullable="1">
  9104. <doc xml:space="preserve">a newly created #GstDateTime,
  9105. or %NULL on error</doc>
  9106. <type name="DateTime" c:type="GstDateTime*"/>
  9107. </return-value>
  9108. <parameters>
  9109. <parameter name="dt" transfer-ownership="full">
  9110. <doc xml:space="preserve">the #GDateTime. The new #GstDateTime takes ownership.</doc>
  9111. <type name="GLib.DateTime" c:type="GDateTime*"/>
  9112. </parameter>
  9113. </parameters>
  9114. </constructor>
  9115. <constructor name="new_from_iso8601_string"
  9116. c:identifier="gst_date_time_new_from_iso8601_string">
  9117. <doc xml:space="preserve">Tries to parse common variants of ISO-8601 datetime strings into a
  9118. #GstDateTime. Possible input formats are (for example):
  9119. 2012-06-30T22:46:43Z, 2012, 2012-06, 2012-06-30, 2012-06-30T22:46:43-0430,
  9120. 2012-06-30T22:46Z, 2012-06-30T22:46-0430, 2012-06-30 22:46,
  9121. 2012-06-30 22:46:43, 2012-06-00, 2012-00-00, 2012-00-30, 22:46:43Z, 22:46Z,
  9122. 22:46:43-0430, 22:46-0430, 22:46:30, 22:46
  9123. If no date is provided, it is assumed to be "today" in the timezone
  9124. provided (if any), otherwise UTC.
  9125. Free-function: gst_date_time_unref</doc>
  9126. <return-value transfer-ownership="full" nullable="1">
  9127. <doc xml:space="preserve">a newly created #GstDateTime,
  9128. or %NULL on error</doc>
  9129. <type name="DateTime" c:type="GstDateTime*"/>
  9130. </return-value>
  9131. <parameters>
  9132. <parameter name="string" transfer-ownership="none">
  9133. <doc xml:space="preserve">ISO 8601-formatted datetime string.</doc>
  9134. <type name="utf8" c:type="const gchar*"/>
  9135. </parameter>
  9136. </parameters>
  9137. </constructor>
  9138. <constructor name="new_from_unix_epoch_local_time"
  9139. c:identifier="gst_date_time_new_from_unix_epoch_local_time">
  9140. <doc xml:space="preserve">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
  9141. @secs. The #GstDateTime is in the local timezone.
  9142. Free-function: gst_date_time_unref</doc>
  9143. <return-value transfer-ownership="full">
  9144. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9145. <type name="DateTime" c:type="GstDateTime*"/>
  9146. </return-value>
  9147. <parameters>
  9148. <parameter name="secs" transfer-ownership="none">
  9149. <doc xml:space="preserve">seconds from the Unix epoch</doc>
  9150. <type name="gint64" c:type="gint64"/>
  9151. </parameter>
  9152. </parameters>
  9153. </constructor>
  9154. <constructor name="new_from_unix_epoch_utc"
  9155. c:identifier="gst_date_time_new_from_unix_epoch_utc">
  9156. <doc xml:space="preserve">Creates a new #GstDateTime using the time since Jan 1, 1970 specified by
  9157. @secs. The #GstDateTime is in the UTC timezone.
  9158. Free-function: gst_date_time_unref</doc>
  9159. <return-value transfer-ownership="full">
  9160. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9161. <type name="DateTime" c:type="GstDateTime*"/>
  9162. </return-value>
  9163. <parameters>
  9164. <parameter name="secs" transfer-ownership="none">
  9165. <doc xml:space="preserve">seconds from the Unix epoch</doc>
  9166. <type name="gint64" c:type="gint64"/>
  9167. </parameter>
  9168. </parameters>
  9169. </constructor>
  9170. <constructor name="new_local_time"
  9171. c:identifier="gst_date_time_new_local_time">
  9172. <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
  9173. in the local timezone.
  9174. @year should be from 1 to 9999, @month should be from 1 to 12, @day from
  9175. 1 to 31, @hour from 0 to 23, @minutes and @seconds from 0 to 59.
  9176. If @month is -1, then the #GstDateTime created will only contain @year,
  9177. and all other fields will be considered not set.
  9178. If @day is -1, then the #GstDateTime created will only contain @year and
  9179. @month and all other fields will be considered not set.
  9180. If @hour is -1, then the #GstDateTime created will only contain @year and
  9181. @month and @day, and the time fields will be considered not set. In this
  9182. case @minute and @seconds should also be -1.
  9183. Free-function: gst_date_time_unref</doc>
  9184. <return-value transfer-ownership="full">
  9185. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9186. <type name="DateTime" c:type="GstDateTime*"/>
  9187. </return-value>
  9188. <parameters>
  9189. <parameter name="year" transfer-ownership="none">
  9190. <doc xml:space="preserve">the gregorian year</doc>
  9191. <type name="gint" c:type="gint"/>
  9192. </parameter>
  9193. <parameter name="month" transfer-ownership="none">
  9194. <doc xml:space="preserve">the gregorian month, or -1</doc>
  9195. <type name="gint" c:type="gint"/>
  9196. </parameter>
  9197. <parameter name="day" transfer-ownership="none">
  9198. <doc xml:space="preserve">the day of the gregorian month, or -1</doc>
  9199. <type name="gint" c:type="gint"/>
  9200. </parameter>
  9201. <parameter name="hour" transfer-ownership="none">
  9202. <doc xml:space="preserve">the hour of the day, or -1</doc>
  9203. <type name="gint" c:type="gint"/>
  9204. </parameter>
  9205. <parameter name="minute" transfer-ownership="none">
  9206. <doc xml:space="preserve">the minute of the hour, or -1</doc>
  9207. <type name="gint" c:type="gint"/>
  9208. </parameter>
  9209. <parameter name="seconds" transfer-ownership="none">
  9210. <doc xml:space="preserve">the second of the minute, or -1</doc>
  9211. <type name="gdouble" c:type="gdouble"/>
  9212. </parameter>
  9213. </parameters>
  9214. </constructor>
  9215. <constructor name="new_now_local_time"
  9216. c:identifier="gst_date_time_new_now_local_time">
  9217. <doc xml:space="preserve">Creates a new #GstDateTime representing the current date and time.
  9218. Free-function: gst_date_time_unref</doc>
  9219. <return-value transfer-ownership="full">
  9220. <doc xml:space="preserve">the newly created #GstDateTime which should
  9221. be freed with gst_date_time_unref().</doc>
  9222. <type name="DateTime" c:type="GstDateTime*"/>
  9223. </return-value>
  9224. </constructor>
  9225. <constructor name="new_now_utc" c:identifier="gst_date_time_new_now_utc">
  9226. <doc xml:space="preserve">Creates a new #GstDateTime that represents the current instant at Universal
  9227. coordinated time.
  9228. Free-function: gst_date_time_unref</doc>
  9229. <return-value transfer-ownership="full">
  9230. <doc xml:space="preserve">the newly created #GstDateTime which should
  9231. be freed with gst_date_time_unref().</doc>
  9232. <type name="DateTime" c:type="GstDateTime*"/>
  9233. </return-value>
  9234. </constructor>
  9235. <constructor name="new_y" c:identifier="gst_date_time_new_y">
  9236. <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
  9237. in the local timezone.
  9238. @year should be from 1 to 9999.
  9239. Free-function: gst_date_time_unref</doc>
  9240. <return-value transfer-ownership="full">
  9241. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9242. <type name="DateTime" c:type="GstDateTime*"/>
  9243. </return-value>
  9244. <parameters>
  9245. <parameter name="year" transfer-ownership="none">
  9246. <doc xml:space="preserve">the gregorian year</doc>
  9247. <type name="gint" c:type="gint"/>
  9248. </parameter>
  9249. </parameters>
  9250. </constructor>
  9251. <constructor name="new_ym" c:identifier="gst_date_time_new_ym">
  9252. <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
  9253. in the local timezone.
  9254. @year should be from 1 to 9999, @month should be from 1 to 12.
  9255. If value is -1 then all over value will be ignored. For example
  9256. if @month == -1, then #GstDateTime will created only for @year.
  9257. Free-function: gst_date_time_unref</doc>
  9258. <return-value transfer-ownership="full">
  9259. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9260. <type name="DateTime" c:type="GstDateTime*"/>
  9261. </return-value>
  9262. <parameters>
  9263. <parameter name="year" transfer-ownership="none">
  9264. <doc xml:space="preserve">the gregorian year</doc>
  9265. <type name="gint" c:type="gint"/>
  9266. </parameter>
  9267. <parameter name="month" transfer-ownership="none">
  9268. <doc xml:space="preserve">the gregorian month</doc>
  9269. <type name="gint" c:type="gint"/>
  9270. </parameter>
  9271. </parameters>
  9272. </constructor>
  9273. <constructor name="new_ymd" c:identifier="gst_date_time_new_ymd">
  9274. <doc xml:space="preserve">Creates a new #GstDateTime using the date and times in the gregorian calendar
  9275. in the local timezone.
  9276. @year should be from 1 to 9999, @month should be from 1 to 12, @day from
  9277. 1 to 31.
  9278. If value is -1 then all over value will be ignored. For example
  9279. if @month == -1, then #GstDateTime will created only for @year. If
  9280. @day == -1, then #GstDateTime will created for @year and @month and
  9281. so on.
  9282. Free-function: gst_date_time_unref</doc>
  9283. <return-value transfer-ownership="full">
  9284. <doc xml:space="preserve">the newly created #GstDateTime</doc>
  9285. <type name="DateTime" c:type="GstDateTime*"/>
  9286. </return-value>
  9287. <parameters>
  9288. <parameter name="year" transfer-ownership="none">
  9289. <doc xml:space="preserve">the gregorian year</doc>
  9290. <type name="gint" c:type="gint"/>
  9291. </parameter>
  9292. <parameter name="month" transfer-ownership="none">
  9293. <doc xml:space="preserve">the gregorian month</doc>
  9294. <type name="gint" c:type="gint"/>
  9295. </parameter>
  9296. <parameter name="day" transfer-ownership="none">
  9297. <doc xml:space="preserve">the day of the gregorian month</doc>
  9298. <type name="gint" c:type="gint"/>
  9299. </parameter>
  9300. </parameters>
  9301. </constructor>
  9302. <method name="get_day" c:identifier="gst_date_time_get_day">
  9303. <doc xml:space="preserve">Returns the day of the month of this #GstDateTime.
  9304. Call gst_date_time_has_day before, to avoid warnings.</doc>
  9305. <return-value transfer-ownership="none">
  9306. <doc xml:space="preserve">The day of this #GstDateTime</doc>
  9307. <type name="gint" c:type="gint"/>
  9308. </return-value>
  9309. <parameters>
  9310. <instance-parameter name="datetime" transfer-ownership="none">
  9311. <doc xml:space="preserve">a #GstDateTime</doc>
  9312. <type name="DateTime" c:type="const GstDateTime*"/>
  9313. </instance-parameter>
  9314. </parameters>
  9315. </method>
  9316. <method name="get_hour" c:identifier="gst_date_time_get_hour">
  9317. <doc xml:space="preserve">Retrieves the hour of the day represented by @datetime in the gregorian
  9318. calendar. The return is in the range of 0 to 23.
  9319. Call gst_date_time_has_haur before, to avoid warnings.</doc>
  9320. <return-value transfer-ownership="none">
  9321. <doc xml:space="preserve">the hour of the day</doc>
  9322. <type name="gint" c:type="gint"/>
  9323. </return-value>
  9324. <parameters>
  9325. <instance-parameter name="datetime" transfer-ownership="none">
  9326. <doc xml:space="preserve">a #GstDateTime</doc>
  9327. <type name="DateTime" c:type="const GstDateTime*"/>
  9328. </instance-parameter>
  9329. </parameters>
  9330. </method>
  9331. <method name="get_microsecond"
  9332. c:identifier="gst_date_time_get_microsecond">
  9333. <doc xml:space="preserve">Retrieves the fractional part of the seconds in microseconds represented by
  9334. @datetime in the gregorian calendar.</doc>
  9335. <return-value transfer-ownership="none">
  9336. <doc xml:space="preserve">the microsecond of the second</doc>
  9337. <type name="gint" c:type="gint"/>
  9338. </return-value>
  9339. <parameters>
  9340. <instance-parameter name="datetime" transfer-ownership="none">
  9341. <doc xml:space="preserve">a #GstDateTime</doc>
  9342. <type name="DateTime" c:type="const GstDateTime*"/>
  9343. </instance-parameter>
  9344. </parameters>
  9345. </method>
  9346. <method name="get_minute" c:identifier="gst_date_time_get_minute">
  9347. <doc xml:space="preserve">Retrieves the minute of the hour represented by @datetime in the gregorian
  9348. calendar.
  9349. Call gst_date_time_has_minute before, to avoid warnings.</doc>
  9350. <return-value transfer-ownership="none">
  9351. <doc xml:space="preserve">the minute of the hour</doc>
  9352. <type name="gint" c:type="gint"/>
  9353. </return-value>
  9354. <parameters>
  9355. <instance-parameter name="datetime" transfer-ownership="none">
  9356. <doc xml:space="preserve">a #GstDateTime</doc>
  9357. <type name="DateTime" c:type="const GstDateTime*"/>
  9358. </instance-parameter>
  9359. </parameters>
  9360. </method>
  9361. <method name="get_month" c:identifier="gst_date_time_get_month">
  9362. <doc xml:space="preserve">Returns the month of this #GstDateTime. January is 1, February is 2, etc..
  9363. Call gst_date_time_has_month before, to avoid warnings.</doc>
  9364. <return-value transfer-ownership="none">
  9365. <doc xml:space="preserve">The month of this #GstDateTime</doc>
  9366. <type name="gint" c:type="gint"/>
  9367. </return-value>
  9368. <parameters>
  9369. <instance-parameter name="datetime" transfer-ownership="none">
  9370. <doc xml:space="preserve">a #GstDateTime</doc>
  9371. <type name="DateTime" c:type="const GstDateTime*"/>
  9372. </instance-parameter>
  9373. </parameters>
  9374. </method>
  9375. <method name="get_second" c:identifier="gst_date_time_get_second">
  9376. <doc xml:space="preserve">Retrieves the second of the minute represented by @datetime in the gregorian
  9377. calendar.
  9378. Call gst_date_time_has_second before, to avoid warnings.</doc>
  9379. <return-value transfer-ownership="none">
  9380. <doc xml:space="preserve">the second represented by @datetime</doc>
  9381. <type name="gint" c:type="gint"/>
  9382. </return-value>
  9383. <parameters>
  9384. <instance-parameter name="datetime" transfer-ownership="none">
  9385. <doc xml:space="preserve">a #GstDateTime</doc>
  9386. <type name="DateTime" c:type="const GstDateTime*"/>
  9387. </instance-parameter>
  9388. </parameters>
  9389. </method>
  9390. <method name="get_time_zone_offset"
  9391. c:identifier="gst_date_time_get_time_zone_offset">
  9392. <doc xml:space="preserve">Retrieves the offset from UTC in hours that the timezone specified
  9393. by @datetime represents. Timezones ahead (to the east) of UTC have positive
  9394. values, timezones before (to the west) of UTC have negative values.
  9395. If @datetime represents UTC time, then the offset is zero.</doc>
  9396. <return-value transfer-ownership="none">
  9397. <doc xml:space="preserve">the offset from UTC in hours</doc>
  9398. <type name="gfloat" c:type="gfloat"/>
  9399. </return-value>
  9400. <parameters>
  9401. <instance-parameter name="datetime" transfer-ownership="none">
  9402. <doc xml:space="preserve">a #GstDateTime</doc>
  9403. <type name="DateTime" c:type="const GstDateTime*"/>
  9404. </instance-parameter>
  9405. </parameters>
  9406. </method>
  9407. <method name="get_year" c:identifier="gst_date_time_get_year">
  9408. <doc xml:space="preserve">Returns the year of this #GstDateTime
  9409. Call gst_date_time_has_year before, to avoid warnings.</doc>
  9410. <return-value transfer-ownership="none">
  9411. <doc xml:space="preserve">The year of this #GstDateTime</doc>
  9412. <type name="gint" c:type="gint"/>
  9413. </return-value>
  9414. <parameters>
  9415. <instance-parameter name="datetime" transfer-ownership="none">
  9416. <doc xml:space="preserve">a #GstDateTime</doc>
  9417. <type name="DateTime" c:type="const GstDateTime*"/>
  9418. </instance-parameter>
  9419. </parameters>
  9420. </method>
  9421. <method name="has_day" c:identifier="gst_date_time_has_day">
  9422. <return-value transfer-ownership="none">
  9423. <doc xml:space="preserve">%TRUE if @datetime&lt;!-- --&gt;'s day field is set, otherwise %FALSE</doc>
  9424. <type name="gboolean" c:type="gboolean"/>
  9425. </return-value>
  9426. <parameters>
  9427. <instance-parameter name="datetime" transfer-ownership="none">
  9428. <doc xml:space="preserve">a #GstDateTime</doc>
  9429. <type name="DateTime" c:type="const GstDateTime*"/>
  9430. </instance-parameter>
  9431. </parameters>
  9432. </method>
  9433. <method name="has_month" c:identifier="gst_date_time_has_month">
  9434. <return-value transfer-ownership="none">
  9435. <doc xml:space="preserve">%TRUE if @datetime&lt;!-- --&gt;'s month field is set, otherwise %FALSE</doc>
  9436. <type name="gboolean" c:type="gboolean"/>
  9437. </return-value>
  9438. <parameters>
  9439. <instance-parameter name="datetime" transfer-ownership="none">
  9440. <doc xml:space="preserve">a #GstDateTime</doc>
  9441. <type name="DateTime" c:type="const GstDateTime*"/>
  9442. </instance-parameter>
  9443. </parameters>
  9444. </method>
  9445. <method name="has_second" c:identifier="gst_date_time_has_second">
  9446. <return-value transfer-ownership="none">
  9447. <doc xml:space="preserve">%TRUE if @datetime&lt;!-- --&gt;'s second field is set, otherwise %FALSE</doc>
  9448. <type name="gboolean" c:type="gboolean"/>
  9449. </return-value>
  9450. <parameters>
  9451. <instance-parameter name="datetime" transfer-ownership="none">
  9452. <doc xml:space="preserve">a #GstDateTime</doc>
  9453. <type name="DateTime" c:type="const GstDateTime*"/>
  9454. </instance-parameter>
  9455. </parameters>
  9456. </method>
  9457. <method name="has_time" c:identifier="gst_date_time_has_time">
  9458. <return-value transfer-ownership="none">
  9459. <doc xml:space="preserve">%TRUE if @datetime&lt;!-- --&gt;'s hour and minute fields are set,
  9460. otherwise %FALSE</doc>
  9461. <type name="gboolean" c:type="gboolean"/>
  9462. </return-value>
  9463. <parameters>
  9464. <instance-parameter name="datetime" transfer-ownership="none">
  9465. <doc xml:space="preserve">a #GstDateTime</doc>
  9466. <type name="DateTime" c:type="const GstDateTime*"/>
  9467. </instance-parameter>
  9468. </parameters>
  9469. </method>
  9470. <method name="has_year" c:identifier="gst_date_time_has_year">
  9471. <return-value transfer-ownership="none">
  9472. <doc xml:space="preserve">%TRUE if @datetime&lt;!-- --&gt;'s year field is set (which should always
  9473. be the case), otherwise %FALSE</doc>
  9474. <type name="gboolean" c:type="gboolean"/>
  9475. </return-value>
  9476. <parameters>
  9477. <instance-parameter name="datetime" transfer-ownership="none">
  9478. <doc xml:space="preserve">a #GstDateTime</doc>
  9479. <type name="DateTime" c:type="const GstDateTime*"/>
  9480. </instance-parameter>
  9481. </parameters>
  9482. </method>
  9483. <method name="ref" c:identifier="gst_date_time_ref">
  9484. <doc xml:space="preserve">Atomically increments the reference count of @datetime by one.</doc>
  9485. <return-value transfer-ownership="full">
  9486. <doc xml:space="preserve">the reference @datetime</doc>
  9487. <type name="DateTime" c:type="GstDateTime*"/>
  9488. </return-value>
  9489. <parameters>
  9490. <instance-parameter name="datetime" transfer-ownership="none">
  9491. <doc xml:space="preserve">a #GstDateTime</doc>
  9492. <type name="DateTime" c:type="GstDateTime*"/>
  9493. </instance-parameter>
  9494. </parameters>
  9495. </method>
  9496. <method name="to_g_date_time"
  9497. c:identifier="gst_date_time_to_g_date_time">
  9498. <doc xml:space="preserve">Creates a new #GDateTime from a fully defined #GstDateTime object.
  9499. Free-function: g_date_time_unref</doc>
  9500. <return-value transfer-ownership="full" nullable="1">
  9501. <doc xml:space="preserve">a newly created #GDateTime, or
  9502. %NULL on error</doc>
  9503. <type name="GLib.DateTime" c:type="GDateTime*"/>
  9504. </return-value>
  9505. <parameters>
  9506. <instance-parameter name="datetime" transfer-ownership="none">
  9507. <doc xml:space="preserve">GstDateTime.</doc>
  9508. <type name="DateTime" c:type="GstDateTime*"/>
  9509. </instance-parameter>
  9510. </parameters>
  9511. </method>
  9512. <method name="to_iso8601_string"
  9513. c:identifier="gst_date_time_to_iso8601_string">
  9514. <doc xml:space="preserve">Create a minimal string compatible with ISO-8601. Possible output formats
  9515. are (for example): 2012, 2012-06, 2012-06-23, 2012-06-23T23:30Z,
  9516. 2012-06-23T23:30+0100, 2012-06-23T23:30:59Z, 2012-06-23T23:30:59+0100</doc>
  9517. <return-value transfer-ownership="full" nullable="1">
  9518. <doc xml:space="preserve">a newly allocated string formatted according
  9519. to ISO 8601 and only including the datetime fields that are
  9520. valid, or %NULL in case there was an error. The string should
  9521. be freed with g_free().</doc>
  9522. <type name="utf8" c:type="gchar*"/>
  9523. </return-value>
  9524. <parameters>
  9525. <instance-parameter name="datetime" transfer-ownership="none">
  9526. <doc xml:space="preserve">GstDateTime.</doc>
  9527. <type name="DateTime" c:type="GstDateTime*"/>
  9528. </instance-parameter>
  9529. </parameters>
  9530. </method>
  9531. <method name="unref" c:identifier="gst_date_time_unref">
  9532. <doc xml:space="preserve">Atomically decrements the reference count of @datetime by one. When the
  9533. reference count reaches zero, the structure is freed.</doc>
  9534. <return-value transfer-ownership="none">
  9535. <type name="none" c:type="void"/>
  9536. </return-value>
  9537. <parameters>
  9538. <instance-parameter name="datetime" transfer-ownership="full">
  9539. <doc xml:space="preserve">a #GstDateTime</doc>
  9540. <type name="DateTime" c:type="GstDateTime*"/>
  9541. </instance-parameter>
  9542. </parameters>
  9543. </method>
  9544. </record>
  9545. <record name="DebugCategory" c:type="GstDebugCategory">
  9546. <doc xml:space="preserve">This is the struct that describes the categories. Once initialized with
  9547. #GST_DEBUG_CATEGORY_INIT, its values can't be changed anymore.</doc>
  9548. <field name="threshold" readable="0" private="1">
  9549. <type name="gint" c:type="gint"/>
  9550. </field>
  9551. <field name="color" readable="0" private="1">
  9552. <type name="guint" c:type="guint"/>
  9553. </field>
  9554. <field name="name" readable="0" private="1">
  9555. <type name="utf8" c:type="const gchar*"/>
  9556. </field>
  9557. <field name="description" readable="0" private="1">
  9558. <type name="utf8" c:type="const gchar*"/>
  9559. </field>
  9560. <method name="free" c:identifier="gst_debug_category_free">
  9561. <doc xml:space="preserve">Removes and frees the category and all associated resources.</doc>
  9562. <return-value transfer-ownership="none">
  9563. <type name="none" c:type="void"/>
  9564. </return-value>
  9565. <parameters>
  9566. <instance-parameter name="category" transfer-ownership="none">
  9567. <doc xml:space="preserve">#GstDebugCategory to free.</doc>
  9568. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9569. </instance-parameter>
  9570. </parameters>
  9571. </method>
  9572. <method name="get_color" c:identifier="gst_debug_category_get_color">
  9573. <doc xml:space="preserve">Returns the color of a debug category used when printing output in this
  9574. category.</doc>
  9575. <return-value transfer-ownership="none">
  9576. <doc xml:space="preserve">the color of the category.</doc>
  9577. <type name="guint" c:type="guint"/>
  9578. </return-value>
  9579. <parameters>
  9580. <instance-parameter name="category" transfer-ownership="none">
  9581. <doc xml:space="preserve">a #GstDebugCategory to get the color of.</doc>
  9582. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9583. </instance-parameter>
  9584. </parameters>
  9585. </method>
  9586. <method name="get_description"
  9587. c:identifier="gst_debug_category_get_description">
  9588. <doc xml:space="preserve">Returns the description of a debug category.</doc>
  9589. <return-value transfer-ownership="none">
  9590. <doc xml:space="preserve">the description of the category.</doc>
  9591. <type name="utf8" c:type="const gchar*"/>
  9592. </return-value>
  9593. <parameters>
  9594. <instance-parameter name="category" transfer-ownership="none">
  9595. <doc xml:space="preserve">a #GstDebugCategory to get the description of.</doc>
  9596. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9597. </instance-parameter>
  9598. </parameters>
  9599. </method>
  9600. <method name="get_name" c:identifier="gst_debug_category_get_name">
  9601. <doc xml:space="preserve">Returns the name of a debug category.</doc>
  9602. <return-value transfer-ownership="none">
  9603. <doc xml:space="preserve">the name of the category.</doc>
  9604. <type name="utf8" c:type="const gchar*"/>
  9605. </return-value>
  9606. <parameters>
  9607. <instance-parameter name="category" transfer-ownership="none">
  9608. <doc xml:space="preserve">a #GstDebugCategory to get name of.</doc>
  9609. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9610. </instance-parameter>
  9611. </parameters>
  9612. </method>
  9613. <method name="get_threshold"
  9614. c:identifier="gst_debug_category_get_threshold">
  9615. <doc xml:space="preserve">Returns the threshold of a #GstDebugCategory.</doc>
  9616. <return-value transfer-ownership="none">
  9617. <doc xml:space="preserve">the #GstDebugLevel that is used as threshold.</doc>
  9618. <type name="DebugLevel" c:type="GstDebugLevel"/>
  9619. </return-value>
  9620. <parameters>
  9621. <instance-parameter name="category" transfer-ownership="none">
  9622. <doc xml:space="preserve">a #GstDebugCategory to get threshold of.</doc>
  9623. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9624. </instance-parameter>
  9625. </parameters>
  9626. </method>
  9627. <method name="reset_threshold"
  9628. c:identifier="gst_debug_category_reset_threshold">
  9629. <doc xml:space="preserve">Resets the threshold of the category to the default level. Debug information
  9630. will only be output if the threshold is lower or equal to the level of the
  9631. debugging message.
  9632. Use this function to set the threshold back to where it was after using
  9633. gst_debug_category_set_threshold().</doc>
  9634. <return-value transfer-ownership="none">
  9635. <type name="none" c:type="void"/>
  9636. </return-value>
  9637. <parameters>
  9638. <instance-parameter name="category" transfer-ownership="none">
  9639. <doc xml:space="preserve">a #GstDebugCategory to reset threshold of.</doc>
  9640. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9641. </instance-parameter>
  9642. </parameters>
  9643. </method>
  9644. <method name="set_threshold"
  9645. c:identifier="gst_debug_category_set_threshold">
  9646. <doc xml:space="preserve">Sets the threshold of the category to the given level. Debug information will
  9647. only be output if the threshold is lower or equal to the level of the
  9648. debugging message.
  9649. &lt;note&gt;&lt;para&gt;
  9650. Do not use this function in production code, because other functions may
  9651. change the threshold of categories as side effect. It is however a nice
  9652. function to use when debugging (even from gdb).
  9653. &lt;/para&gt;&lt;/note&gt;</doc>
  9654. <return-value transfer-ownership="none">
  9655. <type name="none" c:type="void"/>
  9656. </return-value>
  9657. <parameters>
  9658. <instance-parameter name="category" transfer-ownership="none">
  9659. <doc xml:space="preserve">a #GstDebugCategory to set threshold of.</doc>
  9660. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  9661. </instance-parameter>
  9662. <parameter name="level" transfer-ownership="none">
  9663. <doc xml:space="preserve">the #GstDebugLevel threshold to set.</doc>
  9664. <type name="DebugLevel" c:type="GstDebugLevel"/>
  9665. </parameter>
  9666. </parameters>
  9667. </method>
  9668. </record>
  9669. <enumeration name="DebugColorFlags"
  9670. glib:type-name="GstDebugColorFlags"
  9671. glib:get-type="gst_debug_color_flags_get_type"
  9672. c:type="GstDebugColorFlags">
  9673. <doc xml:space="preserve">These are some terminal style flags you can use when creating your
  9674. debugging categories to make them stand out in debugging output.</doc>
  9675. <member name="fg_black"
  9676. value="0"
  9677. c:identifier="GST_DEBUG_FG_BLACK"
  9678. glib:nick="fg-black">
  9679. <doc xml:space="preserve">Use black as foreground color.</doc>
  9680. </member>
  9681. <member name="fg_red"
  9682. value="1"
  9683. c:identifier="GST_DEBUG_FG_RED"
  9684. glib:nick="fg-red">
  9685. <doc xml:space="preserve">Use red as foreground color.</doc>
  9686. </member>
  9687. <member name="fg_green"
  9688. value="2"
  9689. c:identifier="GST_DEBUG_FG_GREEN"
  9690. glib:nick="fg-green">
  9691. <doc xml:space="preserve">Use green as foreground color.</doc>
  9692. </member>
  9693. <member name="fg_yellow"
  9694. value="3"
  9695. c:identifier="GST_DEBUG_FG_YELLOW"
  9696. glib:nick="fg-yellow">
  9697. <doc xml:space="preserve">Use yellow as foreground color.</doc>
  9698. </member>
  9699. <member name="fg_blue"
  9700. value="4"
  9701. c:identifier="GST_DEBUG_FG_BLUE"
  9702. glib:nick="fg-blue">
  9703. <doc xml:space="preserve">Use blue as foreground color.</doc>
  9704. </member>
  9705. <member name="fg_magenta"
  9706. value="5"
  9707. c:identifier="GST_DEBUG_FG_MAGENTA"
  9708. glib:nick="fg-magenta">
  9709. <doc xml:space="preserve">Use magenta as foreground color.</doc>
  9710. </member>
  9711. <member name="fg_cyan"
  9712. value="6"
  9713. c:identifier="GST_DEBUG_FG_CYAN"
  9714. glib:nick="fg-cyan">
  9715. <doc xml:space="preserve">Use cyan as foreground color.</doc>
  9716. </member>
  9717. <member name="fg_white"
  9718. value="7"
  9719. c:identifier="GST_DEBUG_FG_WHITE"
  9720. glib:nick="fg-white">
  9721. <doc xml:space="preserve">Use white as foreground color.</doc>
  9722. </member>
  9723. <member name="bg_black"
  9724. value="0"
  9725. c:identifier="GST_DEBUG_BG_BLACK"
  9726. glib:nick="bg-black">
  9727. <doc xml:space="preserve">Use black as background color.</doc>
  9728. </member>
  9729. <member name="bg_red"
  9730. value="16"
  9731. c:identifier="GST_DEBUG_BG_RED"
  9732. glib:nick="bg-red">
  9733. <doc xml:space="preserve">Use red as background color.</doc>
  9734. </member>
  9735. <member name="bg_green"
  9736. value="32"
  9737. c:identifier="GST_DEBUG_BG_GREEN"
  9738. glib:nick="bg-green">
  9739. <doc xml:space="preserve">Use green as background color.</doc>
  9740. </member>
  9741. <member name="bg_yellow"
  9742. value="48"
  9743. c:identifier="GST_DEBUG_BG_YELLOW"
  9744. glib:nick="bg-yellow">
  9745. <doc xml:space="preserve">Use yellow as background color.</doc>
  9746. </member>
  9747. <member name="bg_blue"
  9748. value="64"
  9749. c:identifier="GST_DEBUG_BG_BLUE"
  9750. glib:nick="bg-blue">
  9751. <doc xml:space="preserve">Use blue as background color.</doc>
  9752. </member>
  9753. <member name="bg_magenta"
  9754. value="80"
  9755. c:identifier="GST_DEBUG_BG_MAGENTA"
  9756. glib:nick="bg-magenta">
  9757. <doc xml:space="preserve">Use magenta as background color.</doc>
  9758. </member>
  9759. <member name="bg_cyan"
  9760. value="96"
  9761. c:identifier="GST_DEBUG_BG_CYAN"
  9762. glib:nick="bg-cyan">
  9763. <doc xml:space="preserve">Use cyan as background color.</doc>
  9764. </member>
  9765. <member name="bg_white"
  9766. value="112"
  9767. c:identifier="GST_DEBUG_BG_WHITE"
  9768. glib:nick="bg-white">
  9769. <doc xml:space="preserve">Use white as background color.</doc>
  9770. </member>
  9771. <member name="bold"
  9772. value="256"
  9773. c:identifier="GST_DEBUG_BOLD"
  9774. glib:nick="bold">
  9775. <doc xml:space="preserve">Make the output bold.</doc>
  9776. </member>
  9777. <member name="underline"
  9778. value="512"
  9779. c:identifier="GST_DEBUG_UNDERLINE"
  9780. glib:nick="underline">
  9781. <doc xml:space="preserve">Underline the output.</doc>
  9782. </member>
  9783. </enumeration>
  9784. <enumeration name="DebugColorMode"
  9785. glib:type-name="GstDebugColorMode"
  9786. glib:get-type="gst_debug_color_mode_get_type"
  9787. c:type="GstDebugColorMode">
  9788. <member name="off"
  9789. value="0"
  9790. c:identifier="GST_DEBUG_COLOR_MODE_OFF"
  9791. glib:nick="off">
  9792. <doc xml:space="preserve">Do not use colors in logs.</doc>
  9793. </member>
  9794. <member name="on"
  9795. value="1"
  9796. c:identifier="GST_DEBUG_COLOR_MODE_ON"
  9797. glib:nick="on">
  9798. <doc xml:space="preserve">Paint logs in a platform-specific way.</doc>
  9799. </member>
  9800. <member name="unix"
  9801. value="2"
  9802. c:identifier="GST_DEBUG_COLOR_MODE_UNIX"
  9803. glib:nick="unix">
  9804. <doc xml:space="preserve">Paint logs with UNIX terminal color codes
  9805. no matter what platform GStreamer is running on.</doc>
  9806. </member>
  9807. </enumeration>
  9808. <callback name="DebugFuncPtr" c:type="GstDebugFuncPtr">
  9809. <return-value transfer-ownership="none">
  9810. <type name="none" c:type="void"/>
  9811. </return-value>
  9812. </callback>
  9813. <bitfield name="DebugGraphDetails"
  9814. glib:type-name="GstDebugGraphDetails"
  9815. glib:get-type="gst_debug_graph_details_get_type"
  9816. c:type="GstDebugGraphDetails">
  9817. <doc xml:space="preserve">Available details for pipeline graphs produced by GST_DEBUG_BIN_TO_DOT_FILE()
  9818. and GST_DEBUG_BIN_TO_DOT_FILE_WITH_TS().</doc>
  9819. <member name="media_type"
  9820. value="1"
  9821. c:identifier="GST_DEBUG_GRAPH_SHOW_MEDIA_TYPE"
  9822. glib:nick="media-type">
  9823. <doc xml:space="preserve">show caps-name on edges</doc>
  9824. </member>
  9825. <member name="caps_details"
  9826. value="2"
  9827. c:identifier="GST_DEBUG_GRAPH_SHOW_CAPS_DETAILS"
  9828. glib:nick="caps-details">
  9829. <doc xml:space="preserve">show caps-details on edges</doc>
  9830. </member>
  9831. <member name="non_default_params"
  9832. value="4"
  9833. c:identifier="GST_DEBUG_GRAPH_SHOW_NON_DEFAULT_PARAMS"
  9834. glib:nick="non-default-params">
  9835. <doc xml:space="preserve">show modified parameters on
  9836. elements</doc>
  9837. </member>
  9838. <member name="states"
  9839. value="8"
  9840. c:identifier="GST_DEBUG_GRAPH_SHOW_STATES"
  9841. glib:nick="states">
  9842. <doc xml:space="preserve">show element states</doc>
  9843. </member>
  9844. <member name="full_params"
  9845. value="16"
  9846. c:identifier="GST_DEBUG_GRAPH_SHOW_FULL_PARAMS"
  9847. glib:nick="full-params">
  9848. <doc xml:space="preserve">show full element parameter values even
  9849. if they are very long</doc>
  9850. </member>
  9851. <member name="all"
  9852. value="15"
  9853. c:identifier="GST_DEBUG_GRAPH_SHOW_ALL"
  9854. glib:nick="all">
  9855. <doc xml:space="preserve">show all the typical details that one might want</doc>
  9856. </member>
  9857. <member name="verbose"
  9858. value="-1"
  9859. c:identifier="GST_DEBUG_GRAPH_SHOW_VERBOSE"
  9860. glib:nick="verbose">
  9861. <doc xml:space="preserve">show all details regardless of how large or
  9862. verbose they make the resulting output</doc>
  9863. </member>
  9864. </bitfield>
  9865. <enumeration name="DebugLevel"
  9866. glib:type-name="GstDebugLevel"
  9867. glib:get-type="gst_debug_level_get_type"
  9868. c:type="GstDebugLevel">
  9869. <doc xml:space="preserve">The level defines the importance of a debugging message. The more important a
  9870. message is, the greater the probability that the debugging system outputs it.</doc>
  9871. <member name="none"
  9872. value="0"
  9873. c:identifier="GST_LEVEL_NONE"
  9874. glib:nick="none">
  9875. <doc xml:space="preserve">No debugging level specified or desired. Used to deactivate
  9876. debugging output.</doc>
  9877. </member>
  9878. <member name="error"
  9879. value="1"
  9880. c:identifier="GST_LEVEL_ERROR"
  9881. glib:nick="error">
  9882. <doc xml:space="preserve">Error messages are to be used only when an error occurred
  9883. that stops the application from keeping working correctly.
  9884. An examples is gst_element_error, which outputs a message with this priority.
  9885. It does not mean that the application is terminating as with g_error.</doc>
  9886. </member>
  9887. <member name="warning"
  9888. value="2"
  9889. c:identifier="GST_LEVEL_WARNING"
  9890. glib:nick="warning">
  9891. <doc xml:space="preserve">Warning messages are to inform about abnormal behaviour
  9892. that could lead to problems or weird behaviour later on. An example of this
  9893. would be clocking issues ("your computer is pretty slow") or broken input
  9894. data ("Can't synchronize to stream.")</doc>
  9895. </member>
  9896. <member name="fixme"
  9897. value="3"
  9898. c:identifier="GST_LEVEL_FIXME"
  9899. glib:nick="fixme">
  9900. <doc xml:space="preserve">Fixme messages are messages that indicate that something
  9901. in the executed code path is not fully implemented or handled yet. Note
  9902. that this does not replace proper error handling in any way, the purpose
  9903. of this message is to make it easier to spot incomplete/unfinished pieces
  9904. of code when reading the debug log.</doc>
  9905. </member>
  9906. <member name="info"
  9907. value="4"
  9908. c:identifier="GST_LEVEL_INFO"
  9909. glib:nick="info">
  9910. <doc xml:space="preserve">Informational messages should be used to keep the developer
  9911. updated about what is happening.
  9912. Examples where this should be used are when a typefind function has
  9913. successfully determined the type of the stream or when an mp3 plugin detects
  9914. the format to be used. ("This file has mono sound.")</doc>
  9915. </member>
  9916. <member name="debug"
  9917. value="5"
  9918. c:identifier="GST_LEVEL_DEBUG"
  9919. glib:nick="debug">
  9920. <doc xml:space="preserve">Debugging messages should be used when something common
  9921. happens that is not the expected default behavior, or something that's
  9922. useful to know but doesn't happen all the time (ie. per loop iteration or
  9923. buffer processed or event handled).
  9924. An example would be notifications about state changes or receiving/sending
  9925. of events.</doc>
  9926. </member>
  9927. <member name="log"
  9928. value="6"
  9929. c:identifier="GST_LEVEL_LOG"
  9930. glib:nick="log">
  9931. <doc xml:space="preserve">Log messages are messages that are very common but might be
  9932. useful to know. As a rule of thumb a pipeline that is running as expected
  9933. should never output anything else but LOG messages whilst processing data.
  9934. Use this log level to log recurring information in chain functions and
  9935. loop functions, for example.</doc>
  9936. </member>
  9937. <member name="trace"
  9938. value="7"
  9939. c:identifier="GST_LEVEL_TRACE"
  9940. glib:nick="trace">
  9941. <doc xml:space="preserve">Tracing-related messages.
  9942. Examples for this are referencing/dereferencing of objects.</doc>
  9943. </member>
  9944. <member name="memdump"
  9945. value="9"
  9946. c:identifier="GST_LEVEL_MEMDUMP"
  9947. glib:nick="memdump">
  9948. <doc xml:space="preserve">memory dump messages are used to log (small) chunks of
  9949. data as memory dumps in the log. They will be displayed as hexdump with
  9950. ASCII characters.</doc>
  9951. </member>
  9952. <member name="count"
  9953. value="10"
  9954. c:identifier="GST_LEVEL_COUNT"
  9955. glib:nick="count">
  9956. <doc xml:space="preserve">The number of defined debugging levels.</doc>
  9957. </member>
  9958. <function name="get_name" c:identifier="gst_debug_level_get_name">
  9959. <doc xml:space="preserve">Get the string representation of a debugging level</doc>
  9960. <return-value transfer-ownership="none">
  9961. <doc xml:space="preserve">the name</doc>
  9962. <type name="utf8" c:type="const gchar*"/>
  9963. </return-value>
  9964. <parameters>
  9965. <parameter name="level" transfer-ownership="none">
  9966. <doc xml:space="preserve">the level to get the name for</doc>
  9967. <type name="DebugLevel" c:type="GstDebugLevel"/>
  9968. </parameter>
  9969. </parameters>
  9970. </function>
  9971. </enumeration>
  9972. <record name="DebugMessage" c:type="GstDebugMessage" disguised="1">
  9973. <method name="get" c:identifier="gst_debug_message_get">
  9974. <doc xml:space="preserve">Gets the string representation of a #GstDebugMessage. This function is used
  9975. in debug handlers to extract the message.</doc>
  9976. <return-value transfer-ownership="none">
  9977. <doc xml:space="preserve">the string representation of a #GstDebugMessage.</doc>
  9978. <type name="utf8" c:type="const gchar*"/>
  9979. </return-value>
  9980. <parameters>
  9981. <instance-parameter name="message" transfer-ownership="none">
  9982. <doc xml:space="preserve">a debug message</doc>
  9983. <type name="DebugMessage" c:type="GstDebugMessage*"/>
  9984. </instance-parameter>
  9985. </parameters>
  9986. </method>
  9987. </record>
  9988. <class name="Device"
  9989. c:symbol-prefix="device"
  9990. c:type="GstDevice"
  9991. version="1.4"
  9992. parent="Object"
  9993. abstract="1"
  9994. glib:type-name="GstDevice"
  9995. glib:get-type="gst_device_get_type"
  9996. glib:type-struct="DeviceClass">
  9997. <doc xml:space="preserve">#GstDevice are objects representing a device, they contain
  9998. relevant metadata about the device, such as its class and the #GstCaps
  9999. representing the media types it can produce or handle.
  10000. #GstDevice are created by #GstDeviceProvider objects which can be
  10001. aggregated by #GstDeviceMonitor objects.</doc>
  10002. <virtual-method name="create_element"
  10003. invoker="create_element"
  10004. version="1.4">
  10005. <doc xml:space="preserve">Creates the element with all of the required paramaters set to use
  10006. this device.</doc>
  10007. <return-value transfer-ownership="full">
  10008. <doc xml:space="preserve">a new #GstElement configured to use this device</doc>
  10009. <type name="Element" c:type="GstElement*"/>
  10010. </return-value>
  10011. <parameters>
  10012. <instance-parameter name="device" transfer-ownership="none">
  10013. <doc xml:space="preserve">a #GstDevice</doc>
  10014. <type name="Device" c:type="GstDevice*"/>
  10015. </instance-parameter>
  10016. <parameter name="name"
  10017. transfer-ownership="none"
  10018. nullable="1"
  10019. allow-none="1">
  10020. <doc xml:space="preserve">name of new element, or %NULL to automatically
  10021. create a unique name.</doc>
  10022. <type name="utf8" c:type="const gchar*"/>
  10023. </parameter>
  10024. </parameters>
  10025. </virtual-method>
  10026. <virtual-method name="reconfigure_element"
  10027. invoker="reconfigure_element"
  10028. version="1.4">
  10029. <doc xml:space="preserve">Tries to reconfigure an existing element to use the device. If this
  10030. function fails, then one must destroy the element and create a new one
  10031. using gst_device_create_element().
  10032. Note: This should only be implemented for elements can change their
  10033. device in the PLAYING state.</doc>
  10034. <return-value transfer-ownership="none">
  10035. <doc xml:space="preserve">%TRUE if the element could be reconfigured to use this device,
  10036. %FALSE otherwise.</doc>
  10037. <type name="gboolean" c:type="gboolean"/>
  10038. </return-value>
  10039. <parameters>
  10040. <instance-parameter name="device" transfer-ownership="none">
  10041. <doc xml:space="preserve">a #GstDevice</doc>
  10042. <type name="Device" c:type="GstDevice*"/>
  10043. </instance-parameter>
  10044. <parameter name="element" transfer-ownership="none">
  10045. <doc xml:space="preserve">a #GstElement</doc>
  10046. <type name="Element" c:type="GstElement*"/>
  10047. </parameter>
  10048. </parameters>
  10049. </virtual-method>
  10050. <method name="create_element"
  10051. c:identifier="gst_device_create_element"
  10052. version="1.4">
  10053. <doc xml:space="preserve">Creates the element with all of the required paramaters set to use
  10054. this device.</doc>
  10055. <return-value transfer-ownership="full">
  10056. <doc xml:space="preserve">a new #GstElement configured to use this device</doc>
  10057. <type name="Element" c:type="GstElement*"/>
  10058. </return-value>
  10059. <parameters>
  10060. <instance-parameter name="device" transfer-ownership="none">
  10061. <doc xml:space="preserve">a #GstDevice</doc>
  10062. <type name="Device" c:type="GstDevice*"/>
  10063. </instance-parameter>
  10064. <parameter name="name"
  10065. transfer-ownership="none"
  10066. nullable="1"
  10067. allow-none="1">
  10068. <doc xml:space="preserve">name of new element, or %NULL to automatically
  10069. create a unique name.</doc>
  10070. <type name="utf8" c:type="const gchar*"/>
  10071. </parameter>
  10072. </parameters>
  10073. </method>
  10074. <method name="get_caps" c:identifier="gst_device_get_caps" version="1.4">
  10075. <doc xml:space="preserve">Getter for the #GstCaps that this device supports.</doc>
  10076. <return-value transfer-ownership="full">
  10077. <doc xml:space="preserve">The #GstCaps supported by this device. Unref with
  10078. gst_caps_unref() when done.</doc>
  10079. <type name="Caps" c:type="GstCaps*"/>
  10080. </return-value>
  10081. <parameters>
  10082. <instance-parameter name="device" transfer-ownership="none">
  10083. <doc xml:space="preserve">a #GstDevice</doc>
  10084. <type name="Device" c:type="GstDevice*"/>
  10085. </instance-parameter>
  10086. </parameters>
  10087. </method>
  10088. <method name="get_device_class"
  10089. c:identifier="gst_device_get_device_class"
  10090. version="1.4">
  10091. <doc xml:space="preserve">Gets the "class" of a device. This is a "/" separated list of
  10092. classes that represent this device. They are a subset of the
  10093. classes of the #GstDeviceProvider that produced this device.</doc>
  10094. <return-value transfer-ownership="full">
  10095. <doc xml:space="preserve">The device class. Free with g_free() after use.</doc>
  10096. <type name="utf8" c:type="gchar*"/>
  10097. </return-value>
  10098. <parameters>
  10099. <instance-parameter name="device" transfer-ownership="none">
  10100. <doc xml:space="preserve">a #GstDevice</doc>
  10101. <type name="Device" c:type="GstDevice*"/>
  10102. </instance-parameter>
  10103. </parameters>
  10104. </method>
  10105. <method name="get_display_name"
  10106. c:identifier="gst_device_get_display_name"
  10107. version="1.4">
  10108. <doc xml:space="preserve">Gets the user-friendly name of the device.</doc>
  10109. <return-value transfer-ownership="full">
  10110. <doc xml:space="preserve">The device name. Free with g_free() after use.</doc>
  10111. <type name="utf8" c:type="gchar*"/>
  10112. </return-value>
  10113. <parameters>
  10114. <instance-parameter name="device" transfer-ownership="none">
  10115. <doc xml:space="preserve">a #GstDevice</doc>
  10116. <type name="Device" c:type="GstDevice*"/>
  10117. </instance-parameter>
  10118. </parameters>
  10119. </method>
  10120. <method name="get_properties"
  10121. c:identifier="gst_device_get_properties"
  10122. version="1.6">
  10123. <doc xml:space="preserve">Gets the extra properties of a device.</doc>
  10124. <return-value transfer-ownership="full">
  10125. <doc xml:space="preserve">The extra properties or %NULL when there are none.
  10126. Free with gst_structure_free() after use.</doc>
  10127. <type name="Structure" c:type="GstStructure*"/>
  10128. </return-value>
  10129. <parameters>
  10130. <instance-parameter name="device" transfer-ownership="none">
  10131. <doc xml:space="preserve">a #GstDevice</doc>
  10132. <type name="Device" c:type="GstDevice*"/>
  10133. </instance-parameter>
  10134. </parameters>
  10135. </method>
  10136. <method name="has_classes"
  10137. c:identifier="gst_device_has_classes"
  10138. version="1.4">
  10139. <doc xml:space="preserve">Check if @device matches all of the given classes</doc>
  10140. <return-value transfer-ownership="none">
  10141. <doc xml:space="preserve">%TRUE if @device matches.</doc>
  10142. <type name="gboolean" c:type="gboolean"/>
  10143. </return-value>
  10144. <parameters>
  10145. <instance-parameter name="device" transfer-ownership="none">
  10146. <doc xml:space="preserve">a #GstDevice</doc>
  10147. <type name="Device" c:type="GstDevice*"/>
  10148. </instance-parameter>
  10149. <parameter name="classes" transfer-ownership="none">
  10150. <doc xml:space="preserve">a "/"-separated list of device classes to match, only match if
  10151. all classes are matched</doc>
  10152. <type name="utf8" c:type="const gchar*"/>
  10153. </parameter>
  10154. </parameters>
  10155. </method>
  10156. <method name="has_classesv"
  10157. c:identifier="gst_device_has_classesv"
  10158. version="1.4">
  10159. <doc xml:space="preserve">Check if @factory matches all of the given classes</doc>
  10160. <return-value transfer-ownership="none">
  10161. <doc xml:space="preserve">%TRUE if @device matches.</doc>
  10162. <type name="gboolean" c:type="gboolean"/>
  10163. </return-value>
  10164. <parameters>
  10165. <instance-parameter name="device" transfer-ownership="none">
  10166. <doc xml:space="preserve">a #GstDevice</doc>
  10167. <type name="Device" c:type="GstDevice*"/>
  10168. </instance-parameter>
  10169. <parameter name="classes" transfer-ownership="none">
  10170. <doc xml:space="preserve">a %NULL terminated array of classes
  10171. to match, only match if all classes are matched</doc>
  10172. <array c:type="gchar**">
  10173. <type name="utf8" c:type="gchar*"/>
  10174. </array>
  10175. </parameter>
  10176. </parameters>
  10177. </method>
  10178. <method name="reconfigure_element"
  10179. c:identifier="gst_device_reconfigure_element"
  10180. version="1.4">
  10181. <doc xml:space="preserve">Tries to reconfigure an existing element to use the device. If this
  10182. function fails, then one must destroy the element and create a new one
  10183. using gst_device_create_element().
  10184. Note: This should only be implemented for elements can change their
  10185. device in the PLAYING state.</doc>
  10186. <return-value transfer-ownership="none">
  10187. <doc xml:space="preserve">%TRUE if the element could be reconfigured to use this device,
  10188. %FALSE otherwise.</doc>
  10189. <type name="gboolean" c:type="gboolean"/>
  10190. </return-value>
  10191. <parameters>
  10192. <instance-parameter name="device" transfer-ownership="none">
  10193. <doc xml:space="preserve">a #GstDevice</doc>
  10194. <type name="Device" c:type="GstDevice*"/>
  10195. </instance-parameter>
  10196. <parameter name="element" transfer-ownership="none">
  10197. <doc xml:space="preserve">a #GstElement</doc>
  10198. <type name="Element" c:type="GstElement*"/>
  10199. </parameter>
  10200. </parameters>
  10201. </method>
  10202. <property name="caps"
  10203. writable="1"
  10204. construct-only="1"
  10205. transfer-ownership="none">
  10206. <type name="Caps"/>
  10207. </property>
  10208. <property name="device-class"
  10209. writable="1"
  10210. construct-only="1"
  10211. transfer-ownership="none">
  10212. <type name="utf8" c:type="gchar*"/>
  10213. </property>
  10214. <property name="display-name"
  10215. writable="1"
  10216. construct-only="1"
  10217. transfer-ownership="none">
  10218. <type name="utf8" c:type="gchar*"/>
  10219. </property>
  10220. <property name="properties"
  10221. writable="1"
  10222. construct-only="1"
  10223. transfer-ownership="none">
  10224. <type name="Structure"/>
  10225. </property>
  10226. <field name="parent">
  10227. <doc xml:space="preserve">The parent #GstObject strucuture.</doc>
  10228. <type name="Object" c:type="GstObject"/>
  10229. </field>
  10230. <field name="priv" readable="0" private="1">
  10231. <type name="DevicePrivate" c:type="GstDevicePrivate*"/>
  10232. </field>
  10233. <field name="_gst_reserved" readable="0" private="1">
  10234. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10235. <type name="gpointer" c:type="gpointer"/>
  10236. </array>
  10237. </field>
  10238. <glib:signal name="removed" when="last">
  10239. <return-value transfer-ownership="none">
  10240. <type name="none" c:type="void"/>
  10241. </return-value>
  10242. </glib:signal>
  10243. </class>
  10244. <record name="DeviceClass"
  10245. c:type="GstDeviceClass"
  10246. glib:is-gtype-struct-for="Device"
  10247. version="1.4">
  10248. <doc xml:space="preserve">The class structure for a #GstDevice object.</doc>
  10249. <field name="parent_class">
  10250. <doc xml:space="preserve">The parent #GstObjectClass strucuture.</doc>
  10251. <type name="ObjectClass" c:type="GstObjectClass"/>
  10252. </field>
  10253. <field name="create_element">
  10254. <callback name="create_element">
  10255. <return-value transfer-ownership="full">
  10256. <doc xml:space="preserve">a new #GstElement configured to use this device</doc>
  10257. <type name="Element" c:type="GstElement*"/>
  10258. </return-value>
  10259. <parameters>
  10260. <parameter name="device" transfer-ownership="none">
  10261. <doc xml:space="preserve">a #GstDevice</doc>
  10262. <type name="Device" c:type="GstDevice*"/>
  10263. </parameter>
  10264. <parameter name="name"
  10265. transfer-ownership="none"
  10266. nullable="1"
  10267. allow-none="1">
  10268. <doc xml:space="preserve">name of new element, or %NULL to automatically
  10269. create a unique name.</doc>
  10270. <type name="utf8" c:type="const gchar*"/>
  10271. </parameter>
  10272. </parameters>
  10273. </callback>
  10274. </field>
  10275. <field name="reconfigure_element">
  10276. <callback name="reconfigure_element">
  10277. <return-value transfer-ownership="none">
  10278. <doc xml:space="preserve">%TRUE if the element could be reconfigured to use this device,
  10279. %FALSE otherwise.</doc>
  10280. <type name="gboolean" c:type="gboolean"/>
  10281. </return-value>
  10282. <parameters>
  10283. <parameter name="device" transfer-ownership="none">
  10284. <doc xml:space="preserve">a #GstDevice</doc>
  10285. <type name="Device" c:type="GstDevice*"/>
  10286. </parameter>
  10287. <parameter name="element" transfer-ownership="none">
  10288. <doc xml:space="preserve">a #GstElement</doc>
  10289. <type name="Element" c:type="GstElement*"/>
  10290. </parameter>
  10291. </parameters>
  10292. </callback>
  10293. </field>
  10294. <field name="_gst_reserved" readable="0" private="1">
  10295. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10296. <type name="gpointer" c:type="gpointer"/>
  10297. </array>
  10298. </field>
  10299. </record>
  10300. <class name="DeviceMonitor"
  10301. c:symbol-prefix="device_monitor"
  10302. c:type="GstDeviceMonitor"
  10303. version="1.4"
  10304. parent="Object"
  10305. glib:type-name="GstDeviceMonitor"
  10306. glib:get-type="gst_device_monitor_get_type"
  10307. glib:type-struct="DeviceMonitorClass">
  10308. <doc xml:space="preserve">Applications should create a #GstDeviceMonitor when they want
  10309. to probe, list and monitor devices of a specific type. The
  10310. #GstDeviceMonitor will create the appropriate
  10311. #GstDeviceProvider objects and manage them. It will then post
  10312. messages on its #GstBus for devices that have been added and
  10313. removed.
  10314. The device monitor will monitor all devices matching the filters that
  10315. the application has set.
  10316. The basic use pattern of a device monitor is as follows:
  10317. |[
  10318. static gboolean
  10319. my_bus_func (GstBus * bus, GstMessage * message, gpointer user_data)
  10320. {
  10321. GstDevice *device;
  10322. gchar *name;
  10323. switch (GST_MESSAGE_TYPE (message)) {
  10324. case GST_MESSAGE_DEVICE_ADDED:
  10325. gst_message_parse_device_added (message, &amp;device);
  10326. name = gst_device_get_display_name (device);
  10327. g_print("Device added: %s\n", name);
  10328. g_free (name);
  10329. break;
  10330. case GST_MESSAGE_DEVICE_REMOVED:
  10331. gst_message_parse_device_removed (message, &amp;device);
  10332. name = gst_device_get_display_name (device);
  10333. g_print("Device removed: %s\n", name);
  10334. g_free (name);
  10335. break;
  10336. default:
  10337. break;
  10338. }
  10339. return G_SOURCE_CONTINUE;
  10340. }
  10341. GstDeviceMonitor *
  10342. setup_raw_video_source_device_monitor (void) {
  10343. GstDeviceMonitor *monitor;
  10344. GstBus *bus;
  10345. GstCaps *caps;
  10346. monitor = gst_device_monitor_new ();
  10347. bus = gst_device_monitor_get_bus (monitor);
  10348. gst_bus_add_watch (bus, my_bus_func, NULL);
  10349. gst_object_unref (bus);
  10350. caps = gst_caps_new_empty_simple ("video/x-raw");
  10351. gst_device_monitor_add_filter (monitor, "Video/Source", caps);
  10352. gst_caps_unref (caps);
  10353. gst_device_monitor_start (monitor);
  10354. return monitor;
  10355. }
  10356. ]|</doc>
  10357. <constructor name="new"
  10358. c:identifier="gst_device_monitor_new"
  10359. version="1.4">
  10360. <doc xml:space="preserve">Create a new #GstDeviceMonitor</doc>
  10361. <return-value transfer-ownership="full">
  10362. <doc xml:space="preserve">a new device monitor.</doc>
  10363. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10364. </return-value>
  10365. </constructor>
  10366. <method name="add_filter"
  10367. c:identifier="gst_device_monitor_add_filter"
  10368. version="1.4">
  10369. <doc xml:space="preserve">Adds a filter for which #GstDevice will be monitored, any device that matches
  10370. all these classes and the #GstCaps will be returned.
  10371. If this function is called multiple times to add more filters, each will be
  10372. matched independently. That is, adding more filters will not further restrict
  10373. what devices are matched.
  10374. The #GstCaps supported by the device as returned by gst_device_get_caps() are
  10375. not intersected with caps filters added using this function.
  10376. Filters must be added before the #GstDeviceMonitor is started.</doc>
  10377. <return-value transfer-ownership="none">
  10378. <doc xml:space="preserve">The id of the new filter or 0 if no provider matched the filter's
  10379. classes.</doc>
  10380. <type name="guint" c:type="guint"/>
  10381. </return-value>
  10382. <parameters>
  10383. <instance-parameter name="monitor" transfer-ownership="none">
  10384. <doc xml:space="preserve">a device monitor</doc>
  10385. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10386. </instance-parameter>
  10387. <parameter name="classes"
  10388. transfer-ownership="none"
  10389. nullable="1"
  10390. allow-none="1">
  10391. <doc xml:space="preserve">device classes to use as filter or %NULL for any class</doc>
  10392. <type name="utf8" c:type="const gchar*"/>
  10393. </parameter>
  10394. <parameter name="caps"
  10395. transfer-ownership="none"
  10396. nullable="1"
  10397. allow-none="1">
  10398. <doc xml:space="preserve">the #GstCaps to filter or %NULL for ANY</doc>
  10399. <type name="Caps" c:type="GstCaps*"/>
  10400. </parameter>
  10401. </parameters>
  10402. </method>
  10403. <method name="get_bus"
  10404. c:identifier="gst_device_monitor_get_bus"
  10405. version="1.4">
  10406. <doc xml:space="preserve">Gets the #GstBus of this #GstDeviceMonitor</doc>
  10407. <return-value transfer-ownership="full">
  10408. <doc xml:space="preserve">a #GstBus</doc>
  10409. <type name="Bus" c:type="GstBus*"/>
  10410. </return-value>
  10411. <parameters>
  10412. <instance-parameter name="monitor" transfer-ownership="none">
  10413. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10414. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10415. </instance-parameter>
  10416. </parameters>
  10417. </method>
  10418. <method name="get_devices"
  10419. c:identifier="gst_device_monitor_get_devices"
  10420. version="1.4">
  10421. <doc xml:space="preserve">Gets a list of devices from all of the relevant monitors. This may actually
  10422. probe the hardware if the monitor is not currently started.</doc>
  10423. <return-value transfer-ownership="full">
  10424. <doc xml:space="preserve">a #GList of
  10425. #GstDevice</doc>
  10426. <type name="GLib.List" c:type="GList*">
  10427. <type name="Device"/>
  10428. </type>
  10429. </return-value>
  10430. <parameters>
  10431. <instance-parameter name="monitor" transfer-ownership="none">
  10432. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10433. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10434. </instance-parameter>
  10435. </parameters>
  10436. </method>
  10437. <method name="get_providers"
  10438. c:identifier="gst_device_monitor_get_providers"
  10439. version="1.6">
  10440. <doc xml:space="preserve">Get a list of the currently selected device provider factories.
  10441. This</doc>
  10442. <return-value transfer-ownership="full">
  10443. <doc xml:space="preserve">
  10444. A list of device provider factory names that are currently being
  10445. monitored by @monitor or %NULL when nothing is being monitored.</doc>
  10446. <array c:type="gchar**">
  10447. <type name="utf8"/>
  10448. </array>
  10449. </return-value>
  10450. <parameters>
  10451. <instance-parameter name="monitor" transfer-ownership="none">
  10452. <doc xml:space="preserve">a #GstDeviceMonitor</doc>
  10453. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10454. </instance-parameter>
  10455. </parameters>
  10456. </method>
  10457. <method name="get_show_all_devices"
  10458. c:identifier="gst_device_monitor_get_show_all_devices"
  10459. version="1.6">
  10460. <doc xml:space="preserve">Get if @monitor is curretly showing all devices, even those from hidden
  10461. providers.</doc>
  10462. <return-value transfer-ownership="none">
  10463. <doc xml:space="preserve">%TRUE when all devices will be shown.</doc>
  10464. <type name="gboolean" c:type="gboolean"/>
  10465. </return-value>
  10466. <parameters>
  10467. <instance-parameter name="monitor" transfer-ownership="none">
  10468. <doc xml:space="preserve">a #GstDeviceMonitor</doc>
  10469. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10470. </instance-parameter>
  10471. </parameters>
  10472. </method>
  10473. <method name="remove_filter"
  10474. c:identifier="gst_device_monitor_remove_filter"
  10475. version="1.4">
  10476. <doc xml:space="preserve">Removes a filter from the #GstDeviceMonitor using the id that was returned
  10477. by gst_device_monitor_add_filter().</doc>
  10478. <return-value transfer-ownership="none">
  10479. <doc xml:space="preserve">%TRUE of the filter id was valid, %FALSE otherwise</doc>
  10480. <type name="gboolean" c:type="gboolean"/>
  10481. </return-value>
  10482. <parameters>
  10483. <instance-parameter name="monitor" transfer-ownership="none">
  10484. <doc xml:space="preserve">a device monitor</doc>
  10485. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10486. </instance-parameter>
  10487. <parameter name="filter_id" transfer-ownership="none">
  10488. <doc xml:space="preserve">the id of the filter</doc>
  10489. <type name="guint" c:type="guint"/>
  10490. </parameter>
  10491. </parameters>
  10492. </method>
  10493. <method name="set_show_all_devices"
  10494. c:identifier="gst_device_monitor_set_show_all_devices"
  10495. version="1.6">
  10496. <doc xml:space="preserve">Set if all devices should be visible, even those devices from hidden
  10497. providers. Setting @show_all to true might show some devices multiple times.</doc>
  10498. <return-value transfer-ownership="none">
  10499. <type name="none" c:type="void"/>
  10500. </return-value>
  10501. <parameters>
  10502. <instance-parameter name="monitor" transfer-ownership="none">
  10503. <doc xml:space="preserve">a #GstDeviceMonitor</doc>
  10504. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10505. </instance-parameter>
  10506. <parameter name="show_all" transfer-ownership="none">
  10507. <doc xml:space="preserve">show all devices</doc>
  10508. <type name="gboolean" c:type="gboolean"/>
  10509. </parameter>
  10510. </parameters>
  10511. </method>
  10512. <method name="start"
  10513. c:identifier="gst_device_monitor_start"
  10514. version="1.4">
  10515. <doc xml:space="preserve">Starts monitoring the devices, one this has succeeded, the
  10516. %GST_MESSAGE_DEVICE_ADDED and %GST_MESSAGE_DEVICE_REMOVED messages
  10517. will be emitted on the bus when the list of devices changes.</doc>
  10518. <return-value transfer-ownership="none">
  10519. <doc xml:space="preserve">%TRUE if the device monitoring could be started</doc>
  10520. <type name="gboolean" c:type="gboolean"/>
  10521. </return-value>
  10522. <parameters>
  10523. <instance-parameter name="monitor" transfer-ownership="none">
  10524. <doc xml:space="preserve">A #GstDeviceMonitor</doc>
  10525. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10526. </instance-parameter>
  10527. </parameters>
  10528. </method>
  10529. <method name="stop" c:identifier="gst_device_monitor_stop" version="1.4">
  10530. <doc xml:space="preserve">Stops monitoring the devices.</doc>
  10531. <return-value transfer-ownership="none">
  10532. <type name="none" c:type="void"/>
  10533. </return-value>
  10534. <parameters>
  10535. <instance-parameter name="monitor" transfer-ownership="none">
  10536. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10537. <type name="DeviceMonitor" c:type="GstDeviceMonitor*"/>
  10538. </instance-parameter>
  10539. </parameters>
  10540. </method>
  10541. <property name="show-all" writable="1" transfer-ownership="none">
  10542. <type name="gboolean" c:type="gboolean"/>
  10543. </property>
  10544. <field name="parent">
  10545. <doc xml:space="preserve">the parent #GstObject structure</doc>
  10546. <type name="Object" c:type="GstObject"/>
  10547. </field>
  10548. <field name="priv" readable="0" private="1">
  10549. <type name="DeviceMonitorPrivate" c:type="GstDeviceMonitorPrivate*"/>
  10550. </field>
  10551. <field name="_gst_reserved" readable="0" private="1">
  10552. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10553. <type name="gpointer" c:type="gpointer"/>
  10554. </array>
  10555. </field>
  10556. </class>
  10557. <record name="DeviceMonitorClass"
  10558. c:type="GstDeviceMonitorClass"
  10559. glib:is-gtype-struct-for="DeviceMonitor"
  10560. version="1.4">
  10561. <doc xml:space="preserve">Opaque device monitor class structure.</doc>
  10562. <field name="parent_class">
  10563. <doc xml:space="preserve">the parent #GstObjectClass structure</doc>
  10564. <type name="ObjectClass" c:type="GstObjectClass"/>
  10565. </field>
  10566. <field name="_gst_reserved" readable="0" private="1">
  10567. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10568. <type name="gpointer" c:type="gpointer"/>
  10569. </array>
  10570. </field>
  10571. </record>
  10572. <record name="DeviceMonitorPrivate"
  10573. c:type="GstDeviceMonitorPrivate"
  10574. disguised="1">
  10575. </record>
  10576. <record name="DevicePrivate" c:type="GstDevicePrivate" disguised="1">
  10577. </record>
  10578. <class name="DeviceProvider"
  10579. c:symbol-prefix="device_provider"
  10580. c:type="GstDeviceProvider"
  10581. version="1.4"
  10582. parent="Object"
  10583. abstract="1"
  10584. glib:type-name="GstDeviceProvider"
  10585. glib:get-type="gst_device_provider_get_type"
  10586. glib:type-struct="DeviceProviderClass">
  10587. <doc xml:space="preserve">A #GstDeviceProvider subclass is provided by a plugin that handles devices
  10588. if there is a way to programatically list connected devices. It can also
  10589. optionally provide updates to the list of connected devices.
  10590. Each #GstDeviceProvider subclass is a singleton, a plugin should
  10591. normally provide a single subclass for all devices.
  10592. Applications would normally use a #GstDeviceMonitor to monitor devices
  10593. from all relevant providers.</doc>
  10594. <function name="register"
  10595. c:identifier="gst_device_provider_register"
  10596. version="1.4">
  10597. <doc xml:space="preserve">Create a new device providerfactory capable of instantiating objects of the
  10598. @type and add the factory to @plugin.</doc>
  10599. <return-value transfer-ownership="none">
  10600. <doc xml:space="preserve">%TRUE, if the registering succeeded, %FALSE on error</doc>
  10601. <type name="gboolean" c:type="gboolean"/>
  10602. </return-value>
  10603. <parameters>
  10604. <parameter name="plugin"
  10605. transfer-ownership="none"
  10606. nullable="1"
  10607. allow-none="1">
  10608. <doc xml:space="preserve">#GstPlugin to register the device provider with, or %NULL for
  10609. a static device provider.</doc>
  10610. <type name="Plugin" c:type="GstPlugin*"/>
  10611. </parameter>
  10612. <parameter name="name" transfer-ownership="none">
  10613. <doc xml:space="preserve">name of device providers of this type</doc>
  10614. <type name="utf8" c:type="const gchar*"/>
  10615. </parameter>
  10616. <parameter name="rank" transfer-ownership="none">
  10617. <doc xml:space="preserve">rank of device provider (higher rank means more importance when autoplugging)</doc>
  10618. <type name="guint" c:type="guint"/>
  10619. </parameter>
  10620. <parameter name="type" transfer-ownership="none">
  10621. <doc xml:space="preserve">GType of device provider to register</doc>
  10622. <type name="GType" c:type="GType"/>
  10623. </parameter>
  10624. </parameters>
  10625. </function>
  10626. <virtual-method name="probe" introspectable="0">
  10627. <return-value>
  10628. <type name="GLib.List" c:type="GList*">
  10629. <type name="gpointer" c:type="gpointer"/>
  10630. </type>
  10631. </return-value>
  10632. <parameters>
  10633. <instance-parameter name="provider" transfer-ownership="none">
  10634. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10635. </instance-parameter>
  10636. </parameters>
  10637. </virtual-method>
  10638. <virtual-method name="start" invoker="start" version="1.4">
  10639. <doc xml:space="preserve">Starts providering the devices. This will cause #GST_MESSAGE_DEVICE_ADDED
  10640. and #GST_MESSAGE_DEVICE_REMOVED messages to be posted on the provider's bus
  10641. when devices are added or removed from the system.
  10642. Since the #GstDeviceProvider is a singleton,
  10643. gst_device_provider_start() may already have been called by another
  10644. user of the object, gst_device_provider_stop() needs to be called the same
  10645. number of times.</doc>
  10646. <return-value transfer-ownership="none">
  10647. <doc xml:space="preserve">%TRUE if the device providering could be started</doc>
  10648. <type name="gboolean" c:type="gboolean"/>
  10649. </return-value>
  10650. <parameters>
  10651. <instance-parameter name="provider" transfer-ownership="none">
  10652. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10653. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10654. </instance-parameter>
  10655. </parameters>
  10656. </virtual-method>
  10657. <virtual-method name="stop" invoker="stop" version="1.4">
  10658. <doc xml:space="preserve">Decreases the use-count by one. If the use count reaches zero, this
  10659. #GstDeviceProvider will stop providering the devices. This needs to be
  10660. called the same number of times that gst_device_provider_start() was called.</doc>
  10661. <return-value transfer-ownership="none">
  10662. <type name="none" c:type="void"/>
  10663. </return-value>
  10664. <parameters>
  10665. <instance-parameter name="provider" transfer-ownership="none">
  10666. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10667. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10668. </instance-parameter>
  10669. </parameters>
  10670. </virtual-method>
  10671. <method name="can_monitor"
  10672. c:identifier="gst_device_provider_can_monitor">
  10673. <return-value transfer-ownership="none">
  10674. <type name="gboolean" c:type="gboolean"/>
  10675. </return-value>
  10676. <parameters>
  10677. <instance-parameter name="provider" transfer-ownership="none">
  10678. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10679. </instance-parameter>
  10680. </parameters>
  10681. </method>
  10682. <method name="device_add"
  10683. c:identifier="gst_device_provider_device_add"
  10684. version="1.4">
  10685. <doc xml:space="preserve">Posts a message on the provider's #GstBus to inform applications that
  10686. a new device has been added.
  10687. This is for use by subclasses.</doc>
  10688. <return-value transfer-ownership="none">
  10689. <type name="none" c:type="void"/>
  10690. </return-value>
  10691. <parameters>
  10692. <instance-parameter name="provider" transfer-ownership="none">
  10693. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10694. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10695. </instance-parameter>
  10696. <parameter name="device" transfer-ownership="full">
  10697. <doc xml:space="preserve">a #GstDevice that has been added</doc>
  10698. <type name="Device" c:type="GstDevice*"/>
  10699. </parameter>
  10700. </parameters>
  10701. </method>
  10702. <method name="device_remove"
  10703. c:identifier="gst_device_provider_device_remove"
  10704. version="1.4">
  10705. <doc xml:space="preserve">Posts a message on the provider's #GstBus to inform applications that
  10706. a device has been removed.
  10707. This is for use by subclasses.</doc>
  10708. <return-value transfer-ownership="none">
  10709. <type name="none" c:type="void"/>
  10710. </return-value>
  10711. <parameters>
  10712. <instance-parameter name="provider" transfer-ownership="none">
  10713. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10714. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10715. </instance-parameter>
  10716. <parameter name="device" transfer-ownership="none">
  10717. <doc xml:space="preserve">a #GstDevice that has been removed</doc>
  10718. <type name="Device" c:type="GstDevice*"/>
  10719. </parameter>
  10720. </parameters>
  10721. </method>
  10722. <method name="get_bus"
  10723. c:identifier="gst_device_provider_get_bus"
  10724. version="1.4">
  10725. <doc xml:space="preserve">Gets the #GstBus of this #GstDeviceProvider</doc>
  10726. <return-value transfer-ownership="full">
  10727. <doc xml:space="preserve">a #GstBus</doc>
  10728. <type name="Bus" c:type="GstBus*"/>
  10729. </return-value>
  10730. <parameters>
  10731. <instance-parameter name="provider" transfer-ownership="none">
  10732. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10733. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10734. </instance-parameter>
  10735. </parameters>
  10736. </method>
  10737. <method name="get_devices"
  10738. c:identifier="gst_device_provider_get_devices"
  10739. version="1.4">
  10740. <doc xml:space="preserve">Gets a list of devices that this provider understands. This may actually
  10741. probe the hardware if the provider is not currently started.</doc>
  10742. <return-value transfer-ownership="full">
  10743. <doc xml:space="preserve">a #GList of
  10744. #GstDevice</doc>
  10745. <type name="GLib.List" c:type="GList*">
  10746. <type name="Device"/>
  10747. </type>
  10748. </return-value>
  10749. <parameters>
  10750. <instance-parameter name="provider" transfer-ownership="none">
  10751. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10752. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10753. </instance-parameter>
  10754. </parameters>
  10755. </method>
  10756. <method name="get_factory"
  10757. c:identifier="gst_device_provider_get_factory"
  10758. version="1.4">
  10759. <doc xml:space="preserve">Retrieves the factory that was used to create this device provider.</doc>
  10760. <return-value transfer-ownership="none">
  10761. <doc xml:space="preserve">the #GstDeviceProviderFactory used for
  10762. creating this device provider. no refcounting is needed.</doc>
  10763. <type name="DeviceProviderFactory"
  10764. c:type="GstDeviceProviderFactory*"/>
  10765. </return-value>
  10766. <parameters>
  10767. <instance-parameter name="provider" transfer-ownership="none">
  10768. <doc xml:space="preserve">a #GstDeviceProvider to request the device provider factory of.</doc>
  10769. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10770. </instance-parameter>
  10771. </parameters>
  10772. </method>
  10773. <method name="get_hidden_providers"
  10774. c:identifier="gst_device_provider_get_hidden_providers"
  10775. version="1.6">
  10776. <doc xml:space="preserve">Get the provider factory names of the #GstDeviceProvider instances that
  10777. are hidden by @provider.</doc>
  10778. <return-value transfer-ownership="full">
  10779. <doc xml:space="preserve">
  10780. a list of hidden providers factory names or %NULL when
  10781. nothing is hidden by @provider. Free with g_strfreev.</doc>
  10782. <array c:type="gchar**">
  10783. <type name="utf8"/>
  10784. </array>
  10785. </return-value>
  10786. <parameters>
  10787. <instance-parameter name="provider" transfer-ownership="none">
  10788. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10789. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10790. </instance-parameter>
  10791. </parameters>
  10792. </method>
  10793. <method name="hide_provider"
  10794. c:identifier="gst_device_provider_hide_provider"
  10795. version="1.6">
  10796. <doc xml:space="preserve">Make @provider hide the devices from the factory with @name.
  10797. This function is used when @provider will also provide the devices reported
  10798. by provider factory @name. A monitor should stop monitoring the
  10799. device provider with @name to avoid duplicate devices.</doc>
  10800. <return-value transfer-ownership="none">
  10801. <type name="none" c:type="void"/>
  10802. </return-value>
  10803. <parameters>
  10804. <instance-parameter name="provider" transfer-ownership="none">
  10805. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10806. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10807. </instance-parameter>
  10808. <parameter name="name" transfer-ownership="none">
  10809. <doc xml:space="preserve">a provider factory name</doc>
  10810. <type name="utf8" c:type="const gchar*"/>
  10811. </parameter>
  10812. </parameters>
  10813. </method>
  10814. <method name="start"
  10815. c:identifier="gst_device_provider_start"
  10816. version="1.4">
  10817. <doc xml:space="preserve">Starts providering the devices. This will cause #GST_MESSAGE_DEVICE_ADDED
  10818. and #GST_MESSAGE_DEVICE_REMOVED messages to be posted on the provider's bus
  10819. when devices are added or removed from the system.
  10820. Since the #GstDeviceProvider is a singleton,
  10821. gst_device_provider_start() may already have been called by another
  10822. user of the object, gst_device_provider_stop() needs to be called the same
  10823. number of times.</doc>
  10824. <return-value transfer-ownership="none">
  10825. <doc xml:space="preserve">%TRUE if the device providering could be started</doc>
  10826. <type name="gboolean" c:type="gboolean"/>
  10827. </return-value>
  10828. <parameters>
  10829. <instance-parameter name="provider" transfer-ownership="none">
  10830. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10831. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10832. </instance-parameter>
  10833. </parameters>
  10834. </method>
  10835. <method name="stop"
  10836. c:identifier="gst_device_provider_stop"
  10837. version="1.4">
  10838. <doc xml:space="preserve">Decreases the use-count by one. If the use count reaches zero, this
  10839. #GstDeviceProvider will stop providering the devices. This needs to be
  10840. called the same number of times that gst_device_provider_start() was called.</doc>
  10841. <return-value transfer-ownership="none">
  10842. <type name="none" c:type="void"/>
  10843. </return-value>
  10844. <parameters>
  10845. <instance-parameter name="provider" transfer-ownership="none">
  10846. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10847. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10848. </instance-parameter>
  10849. </parameters>
  10850. </method>
  10851. <method name="unhide_provider"
  10852. c:identifier="gst_device_provider_unhide_provider"
  10853. version="1.6">
  10854. <doc xml:space="preserve">Make @provider unhide the devices from factory @name.
  10855. This function is used when @provider will no longer provide the devices
  10856. reported by provider factory @name. A monitor should start
  10857. monitoring the devices from provider factory @name in order to see
  10858. all devices again.</doc>
  10859. <return-value transfer-ownership="none">
  10860. <type name="none" c:type="void"/>
  10861. </return-value>
  10862. <parameters>
  10863. <instance-parameter name="provider" transfer-ownership="none">
  10864. <doc xml:space="preserve">a #GstDeviceProvider</doc>
  10865. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10866. </instance-parameter>
  10867. <parameter name="name" transfer-ownership="none">
  10868. <doc xml:space="preserve">a provider factory name</doc>
  10869. <type name="utf8" c:type="const gchar*"/>
  10870. </parameter>
  10871. </parameters>
  10872. </method>
  10873. <field name="parent">
  10874. <doc xml:space="preserve">The parent #GstObject</doc>
  10875. <type name="Object" c:type="GstObject"/>
  10876. </field>
  10877. <field name="devices">
  10878. <doc xml:space="preserve">a #GList of the #GstDevice objects</doc>
  10879. <type name="GLib.List" c:type="GList*">
  10880. <type name="gpointer" c:type="gpointer"/>
  10881. </type>
  10882. </field>
  10883. <field name="priv" readable="0" private="1">
  10884. <type name="DeviceProviderPrivate" c:type="GstDeviceProviderPrivate*"/>
  10885. </field>
  10886. <field name="_gst_reserved" readable="0" private="1">
  10887. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10888. <type name="gpointer" c:type="gpointer"/>
  10889. </array>
  10890. </field>
  10891. <glib:signal name="provider-hidden" when="first">
  10892. <return-value transfer-ownership="none">
  10893. <type name="none" c:type="void"/>
  10894. </return-value>
  10895. <parameters>
  10896. <parameter name="object" transfer-ownership="none">
  10897. <type name="utf8" c:type="gchar*"/>
  10898. </parameter>
  10899. </parameters>
  10900. </glib:signal>
  10901. <glib:signal name="provider-unhidden" when="first">
  10902. <return-value transfer-ownership="none">
  10903. <type name="none" c:type="void"/>
  10904. </return-value>
  10905. <parameters>
  10906. <parameter name="object" transfer-ownership="none">
  10907. <type name="utf8" c:type="gchar*"/>
  10908. </parameter>
  10909. </parameters>
  10910. </glib:signal>
  10911. </class>
  10912. <record name="DeviceProviderClass"
  10913. c:type="GstDeviceProviderClass"
  10914. glib:is-gtype-struct-for="DeviceProvider"
  10915. version="1.4">
  10916. <doc xml:space="preserve">The structure of the base #GstDeviceProviderClass</doc>
  10917. <field name="parent_class">
  10918. <doc xml:space="preserve">the parent #GstObjectClass structure</doc>
  10919. <type name="ObjectClass" c:type="GstObjectClass"/>
  10920. </field>
  10921. <field name="factory">
  10922. <doc xml:space="preserve">a pointer to the #GstDeviceProviderFactory that creates this
  10923. provider</doc>
  10924. <type name="DeviceProviderFactory" c:type="GstDeviceProviderFactory*"/>
  10925. </field>
  10926. <field name="probe" introspectable="0">
  10927. <callback name="probe" introspectable="0">
  10928. <return-value>
  10929. <type name="GLib.List" c:type="GList*">
  10930. <type name="gpointer" c:type="gpointer"/>
  10931. </type>
  10932. </return-value>
  10933. <parameters>
  10934. <parameter name="provider" transfer-ownership="none">
  10935. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10936. </parameter>
  10937. </parameters>
  10938. </callback>
  10939. </field>
  10940. <field name="start">
  10941. <callback name="start">
  10942. <return-value transfer-ownership="none">
  10943. <doc xml:space="preserve">%TRUE if the device providering could be started</doc>
  10944. <type name="gboolean" c:type="gboolean"/>
  10945. </return-value>
  10946. <parameters>
  10947. <parameter name="provider" transfer-ownership="none">
  10948. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10949. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10950. </parameter>
  10951. </parameters>
  10952. </callback>
  10953. </field>
  10954. <field name="stop">
  10955. <callback name="stop">
  10956. <return-value transfer-ownership="none">
  10957. <type name="none" c:type="void"/>
  10958. </return-value>
  10959. <parameters>
  10960. <parameter name="provider" transfer-ownership="none">
  10961. <doc xml:space="preserve">A #GstDeviceProvider</doc>
  10962. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  10963. </parameter>
  10964. </parameters>
  10965. </callback>
  10966. </field>
  10967. <field name="metadata" readable="0" private="1">
  10968. <type name="gpointer" c:type="gpointer"/>
  10969. </field>
  10970. <field name="_gst_reserved" readable="0" private="1">
  10971. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10972. <type name="gpointer" c:type="gpointer"/>
  10973. </array>
  10974. </field>
  10975. <method name="add_metadata"
  10976. c:identifier="gst_device_provider_class_add_metadata"
  10977. version="1.4">
  10978. <doc xml:space="preserve">Set @key with @value as metadata in @klass.</doc>
  10979. <return-value transfer-ownership="none">
  10980. <type name="none" c:type="void"/>
  10981. </return-value>
  10982. <parameters>
  10983. <instance-parameter name="klass" transfer-ownership="none">
  10984. <doc xml:space="preserve">class to set metadata for</doc>
  10985. <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
  10986. </instance-parameter>
  10987. <parameter name="key" transfer-ownership="none">
  10988. <doc xml:space="preserve">the key to set</doc>
  10989. <type name="utf8" c:type="const gchar*"/>
  10990. </parameter>
  10991. <parameter name="value" transfer-ownership="none">
  10992. <doc xml:space="preserve">the value to set</doc>
  10993. <type name="utf8" c:type="const gchar*"/>
  10994. </parameter>
  10995. </parameters>
  10996. </method>
  10997. <method name="add_static_metadata"
  10998. c:identifier="gst_device_provider_class_add_static_metadata"
  10999. version="1.4">
  11000. <doc xml:space="preserve">Set @key with @value as metadata in @klass.
  11001. Same as gst_device_provider_class_add_metadata(), but @value must be a static string
  11002. or an inlined string, as it will not be copied. (GStreamer plugins will
  11003. be made resident once loaded, so this function can be used even from
  11004. dynamically loaded plugins.)</doc>
  11005. <return-value transfer-ownership="none">
  11006. <type name="none" c:type="void"/>
  11007. </return-value>
  11008. <parameters>
  11009. <instance-parameter name="klass" transfer-ownership="none">
  11010. <doc xml:space="preserve">class to set metadata for</doc>
  11011. <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
  11012. </instance-parameter>
  11013. <parameter name="key" transfer-ownership="none">
  11014. <doc xml:space="preserve">the key to set</doc>
  11015. <type name="utf8" c:type="const gchar*"/>
  11016. </parameter>
  11017. <parameter name="value" transfer-ownership="full">
  11018. <doc xml:space="preserve">the value to set</doc>
  11019. <type name="utf8" c:type="const gchar*"/>
  11020. </parameter>
  11021. </parameters>
  11022. </method>
  11023. <method name="get_metadata"
  11024. c:identifier="gst_device_provider_class_get_metadata"
  11025. version="1.4">
  11026. <doc xml:space="preserve">Get metadata with @key in @klass.</doc>
  11027. <return-value transfer-ownership="none">
  11028. <doc xml:space="preserve">the metadata for @key.</doc>
  11029. <type name="utf8" c:type="const gchar*"/>
  11030. </return-value>
  11031. <parameters>
  11032. <instance-parameter name="klass" transfer-ownership="none">
  11033. <doc xml:space="preserve">class to get metadata for</doc>
  11034. <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
  11035. </instance-parameter>
  11036. <parameter name="key" transfer-ownership="none">
  11037. <doc xml:space="preserve">the key to get</doc>
  11038. <type name="utf8" c:type="const gchar*"/>
  11039. </parameter>
  11040. </parameters>
  11041. </method>
  11042. <method name="set_metadata"
  11043. c:identifier="gst_device_provider_class_set_metadata"
  11044. version="1.4">
  11045. <doc xml:space="preserve">Sets the detailed information for a #GstDeviceProviderClass.
  11046. &lt;note&gt;This function is for use in _class_init functions only.&lt;/note&gt;</doc>
  11047. <return-value transfer-ownership="none">
  11048. <type name="none" c:type="void"/>
  11049. </return-value>
  11050. <parameters>
  11051. <instance-parameter name="klass" transfer-ownership="none">
  11052. <doc xml:space="preserve">class to set metadata for</doc>
  11053. <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
  11054. </instance-parameter>
  11055. <parameter name="longname" transfer-ownership="none">
  11056. <doc xml:space="preserve">The long English name of the device provider. E.g. "File Sink"</doc>
  11057. <type name="utf8" c:type="const gchar*"/>
  11058. </parameter>
  11059. <parameter name="classification" transfer-ownership="none">
  11060. <doc xml:space="preserve">String describing the type of device provider, as an
  11061. unordered list separated with slashes ('/'). See draft-klass.txt of the
  11062. design docs
  11063. for more details and common types. E.g: "Sink/File"</doc>
  11064. <type name="utf8" c:type="const gchar*"/>
  11065. </parameter>
  11066. <parameter name="description" transfer-ownership="none">
  11067. <doc xml:space="preserve">Sentence describing the purpose of the device provider.
  11068. E.g: "Write stream to a file"</doc>
  11069. <type name="utf8" c:type="const gchar*"/>
  11070. </parameter>
  11071. <parameter name="author" transfer-ownership="none">
  11072. <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
  11073. multiple author metadata. E.g: "Joe Bloggs &amp;lt;joe.blogs at foo.com&amp;gt;"</doc>
  11074. <type name="utf8" c:type="const gchar*"/>
  11075. </parameter>
  11076. </parameters>
  11077. </method>
  11078. <method name="set_static_metadata"
  11079. c:identifier="gst_device_provider_class_set_static_metadata"
  11080. version="1.4">
  11081. <doc xml:space="preserve">Sets the detailed information for a #GstDeviceProviderClass.
  11082. &lt;note&gt;This function is for use in _class_init functions only.&lt;/note&gt;
  11083. Same as gst_device_provider_class_set_metadata(), but @longname, @classification,
  11084. @description, and @author must be static strings or inlined strings, as
  11085. they will not be copied. (GStreamer plugins will be made resident once
  11086. loaded, so this function can be used even from dynamically loaded plugins.)</doc>
  11087. <return-value transfer-ownership="none">
  11088. <type name="none" c:type="void"/>
  11089. </return-value>
  11090. <parameters>
  11091. <instance-parameter name="klass" transfer-ownership="none">
  11092. <doc xml:space="preserve">class to set metadata for</doc>
  11093. <type name="DeviceProviderClass" c:type="GstDeviceProviderClass*"/>
  11094. </instance-parameter>
  11095. <parameter name="longname" transfer-ownership="full">
  11096. <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
  11097. <type name="utf8" c:type="const gchar*"/>
  11098. </parameter>
  11099. <parameter name="classification" transfer-ownership="full">
  11100. <doc xml:space="preserve">String describing the type of element, as
  11101. an unordered list separated with slashes ('/'). See draft-klass.txt of the
  11102. design docs for more details and common types. E.g: "Sink/File"</doc>
  11103. <type name="utf8" c:type="const gchar*"/>
  11104. </parameter>
  11105. <parameter name="description" transfer-ownership="full">
  11106. <doc xml:space="preserve">Sentence describing the purpose of the
  11107. element. E.g: "Write stream to a file"</doc>
  11108. <type name="utf8" c:type="const gchar*"/>
  11109. </parameter>
  11110. <parameter name="author" transfer-ownership="full">
  11111. <doc xml:space="preserve">Name and contact details of the author(s). Use \n
  11112. to separate multiple author metadata. E.g: "Joe Bloggs &amp;lt;joe.blogs at
  11113. foo.com&amp;gt;"</doc>
  11114. <type name="utf8" c:type="const gchar*"/>
  11115. </parameter>
  11116. </parameters>
  11117. </method>
  11118. </record>
  11119. <class name="DeviceProviderFactory"
  11120. c:symbol-prefix="device_provider_factory"
  11121. c:type="GstDeviceProviderFactory"
  11122. version="1.4"
  11123. parent="PluginFeature"
  11124. glib:type-name="GstDeviceProviderFactory"
  11125. glib:get-type="gst_device_provider_factory_get_type"
  11126. glib:type-struct="DeviceProviderFactoryClass">
  11127. <doc xml:space="preserve">#GstDeviceProviderFactory is used to create instances of device providers. A
  11128. GstDeviceProviderfactory can be added to a #GstPlugin as it is also a
  11129. #GstPluginFeature.
  11130. Use the gst_device_provider_factory_find() and
  11131. gst_device_provider_factory_get() functions to create device
  11132. provider instances or use gst_device_provider_factory_get_by_name() as a
  11133. convenient shortcut.</doc>
  11134. <function name="find"
  11135. c:identifier="gst_device_provider_factory_find"
  11136. version="1.4">
  11137. <doc xml:space="preserve">Search for an device provider factory of the given name. Refs the returned
  11138. device provider factory; caller is responsible for unreffing.</doc>
  11139. <return-value transfer-ownership="full" nullable="1">
  11140. <doc xml:space="preserve">#GstDeviceProviderFactory if
  11141. found, %NULL otherwise</doc>
  11142. <type name="DeviceProviderFactory"
  11143. c:type="GstDeviceProviderFactory*"/>
  11144. </return-value>
  11145. <parameters>
  11146. <parameter name="name" transfer-ownership="none">
  11147. <doc xml:space="preserve">name of factory to find</doc>
  11148. <type name="utf8" c:type="const gchar*"/>
  11149. </parameter>
  11150. </parameters>
  11151. </function>
  11152. <function name="get_by_name"
  11153. c:identifier="gst_device_provider_factory_get_by_name"
  11154. version="1.4">
  11155. <doc xml:space="preserve">Returns the device provider of the type defined by the given device
  11156. provider factory.</doc>
  11157. <return-value transfer-ownership="full" nullable="1">
  11158. <doc xml:space="preserve">a #GstDeviceProvider or %NULL
  11159. if unable to create device provider</doc>
  11160. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  11161. </return-value>
  11162. <parameters>
  11163. <parameter name="factoryname" transfer-ownership="none">
  11164. <doc xml:space="preserve">a named factory to instantiate</doc>
  11165. <type name="utf8" c:type="const gchar*"/>
  11166. </parameter>
  11167. </parameters>
  11168. </function>
  11169. <function name="list_get_device_providers"
  11170. c:identifier="gst_device_provider_factory_list_get_device_providers"
  11171. version="1.4">
  11172. <doc xml:space="preserve">Get a list of factories with a rank greater or equal to @minrank.
  11173. The list of factories is returned by decreasing rank.</doc>
  11174. <return-value transfer-ownership="full">
  11175. <doc xml:space="preserve">
  11176. a #GList of #GstDeviceProviderFactory device providers. Use
  11177. gst_plugin_feature_list_free() after usage.</doc>
  11178. <type name="GLib.List" c:type="GList*">
  11179. <type name="DeviceProviderFactory"/>
  11180. </type>
  11181. </return-value>
  11182. <parameters>
  11183. <parameter name="minrank" transfer-ownership="none">
  11184. <doc xml:space="preserve">Minimum rank</doc>
  11185. <type name="Rank" c:type="GstRank"/>
  11186. </parameter>
  11187. </parameters>
  11188. </function>
  11189. <method name="get"
  11190. c:identifier="gst_device_provider_factory_get"
  11191. version="1.4">
  11192. <doc xml:space="preserve">Returns the device provider of the type defined by the given device
  11193. providerfactory.</doc>
  11194. <return-value transfer-ownership="full" nullable="1">
  11195. <doc xml:space="preserve">the #GstDeviceProvider or %NULL
  11196. if the device provider couldn't be created</doc>
  11197. <type name="DeviceProvider" c:type="GstDeviceProvider*"/>
  11198. </return-value>
  11199. <parameters>
  11200. <instance-parameter name="factory" transfer-ownership="none">
  11201. <doc xml:space="preserve">factory to instantiate</doc>
  11202. <type name="DeviceProviderFactory"
  11203. c:type="GstDeviceProviderFactory*"/>
  11204. </instance-parameter>
  11205. </parameters>
  11206. </method>
  11207. <method name="get_device_provider_type"
  11208. c:identifier="gst_device_provider_factory_get_device_provider_type"
  11209. version="1.4">
  11210. <doc xml:space="preserve">Get the #GType for device providers managed by this factory. The type can
  11211. only be retrieved if the device provider factory is loaded, which can be
  11212. assured with gst_plugin_feature_load().</doc>
  11213. <return-value transfer-ownership="none">
  11214. <doc xml:space="preserve">the #GType for device providers managed by this factory.</doc>
  11215. <type name="GType" c:type="GType"/>
  11216. </return-value>
  11217. <parameters>
  11218. <instance-parameter name="factory" transfer-ownership="none">
  11219. <doc xml:space="preserve">factory to get managed #GType from</doc>
  11220. <type name="DeviceProviderFactory"
  11221. c:type="GstDeviceProviderFactory*"/>
  11222. </instance-parameter>
  11223. </parameters>
  11224. </method>
  11225. <method name="get_metadata"
  11226. c:identifier="gst_device_provider_factory_get_metadata"
  11227. version="1.4">
  11228. <doc xml:space="preserve">Get the metadata on @factory with @key.</doc>
  11229. <return-value transfer-ownership="none" nullable="1">
  11230. <doc xml:space="preserve">the metadata with @key on @factory or %NULL
  11231. when there was no metadata with the given @key.</doc>
  11232. <type name="utf8" c:type="const gchar*"/>
  11233. </return-value>
  11234. <parameters>
  11235. <instance-parameter name="factory" transfer-ownership="none">
  11236. <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
  11237. <type name="DeviceProviderFactory"
  11238. c:type="GstDeviceProviderFactory*"/>
  11239. </instance-parameter>
  11240. <parameter name="key" transfer-ownership="none">
  11241. <doc xml:space="preserve">a key</doc>
  11242. <type name="utf8" c:type="const gchar*"/>
  11243. </parameter>
  11244. </parameters>
  11245. </method>
  11246. <method name="get_metadata_keys"
  11247. c:identifier="gst_device_provider_factory_get_metadata_keys"
  11248. version="1.4">
  11249. <doc xml:space="preserve">Get the available keys for the metadata on @factory.</doc>
  11250. <return-value transfer-ownership="full" nullable="1">
  11251. <doc xml:space="preserve">
  11252. a %NULL-terminated array of key strings, or %NULL when there is no
  11253. metadata. Free with g_strfreev() when no longer needed.</doc>
  11254. <array c:type="gchar**">
  11255. <type name="utf8"/>
  11256. </array>
  11257. </return-value>
  11258. <parameters>
  11259. <instance-parameter name="factory" transfer-ownership="none">
  11260. <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
  11261. <type name="DeviceProviderFactory"
  11262. c:type="GstDeviceProviderFactory*"/>
  11263. </instance-parameter>
  11264. </parameters>
  11265. </method>
  11266. <method name="has_classes"
  11267. c:identifier="gst_device_provider_factory_has_classes"
  11268. version="1.4">
  11269. <doc xml:space="preserve">Check if @factory matches all of the given @classes</doc>
  11270. <return-value transfer-ownership="none">
  11271. <doc xml:space="preserve">%TRUE if @factory matches or if @classes is %NULL.</doc>
  11272. <type name="gboolean" c:type="gboolean"/>
  11273. </return-value>
  11274. <parameters>
  11275. <instance-parameter name="factory" transfer-ownership="none">
  11276. <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
  11277. <type name="DeviceProviderFactory"
  11278. c:type="GstDeviceProviderFactory*"/>
  11279. </instance-parameter>
  11280. <parameter name="classes"
  11281. transfer-ownership="none"
  11282. nullable="1"
  11283. allow-none="1">
  11284. <doc xml:space="preserve">a "/" separate list of classes to match, only match
  11285. if all classes are matched</doc>
  11286. <type name="utf8" c:type="const gchar*"/>
  11287. </parameter>
  11288. </parameters>
  11289. </method>
  11290. <method name="has_classesv"
  11291. c:identifier="gst_device_provider_factory_has_classesv"
  11292. version="1.4">
  11293. <doc xml:space="preserve">Check if @factory matches all of the given classes</doc>
  11294. <return-value transfer-ownership="none">
  11295. <doc xml:space="preserve">%TRUE if @factory matches.</doc>
  11296. <type name="gboolean" c:type="gboolean"/>
  11297. </return-value>
  11298. <parameters>
  11299. <instance-parameter name="factory" transfer-ownership="none">
  11300. <doc xml:space="preserve">a #GstDeviceProviderFactory</doc>
  11301. <type name="DeviceProviderFactory"
  11302. c:type="GstDeviceProviderFactory*"/>
  11303. </instance-parameter>
  11304. <parameter name="classes"
  11305. transfer-ownership="none"
  11306. nullable="1"
  11307. allow-none="1">
  11308. <doc xml:space="preserve">a %NULL terminated array
  11309. of classes to match, only match if all classes are matched</doc>
  11310. <array c:type="gchar**">
  11311. <type name="utf8" c:type="gchar*"/>
  11312. </array>
  11313. </parameter>
  11314. </parameters>
  11315. </method>
  11316. </class>
  11317. <record name="DeviceProviderFactoryClass"
  11318. c:type="GstDeviceProviderFactoryClass"
  11319. disguised="1"
  11320. glib:is-gtype-struct-for="DeviceProviderFactory"
  11321. version="1.4">
  11322. <doc xml:space="preserve">The opaque #GstDeviceProviderFactoryClass data structure.</doc>
  11323. </record>
  11324. <record name="DeviceProviderPrivate"
  11325. c:type="GstDeviceProviderPrivate"
  11326. disguised="1">
  11327. </record>
  11328. <class name="DoubleRange"
  11329. c:symbol-prefix="double_range"
  11330. glib:type-name="GstDoubleRange"
  11331. glib:get-type="gst_double_range_get_type"
  11332. glib:fundamental="1">
  11333. </class>
  11334. <constant name="ELEMENT_FACTORY_KLASS_DECODER"
  11335. value="Decoder"
  11336. c:type="GST_ELEMENT_FACTORY_KLASS_DECODER">
  11337. <type name="utf8" c:type="gchar*"/>
  11338. </constant>
  11339. <constant name="ELEMENT_FACTORY_KLASS_DECRYPTOR"
  11340. value="Decryptor"
  11341. c:type="GST_ELEMENT_FACTORY_KLASS_DECRYPTOR">
  11342. <type name="utf8" c:type="gchar*"/>
  11343. </constant>
  11344. <constant name="ELEMENT_FACTORY_KLASS_DEMUXER"
  11345. value="Demuxer"
  11346. c:type="GST_ELEMENT_FACTORY_KLASS_DEMUXER">
  11347. <type name="utf8" c:type="gchar*"/>
  11348. </constant>
  11349. <constant name="ELEMENT_FACTORY_KLASS_DEPAYLOADER"
  11350. value="Depayloader"
  11351. c:type="GST_ELEMENT_FACTORY_KLASS_DEPAYLOADER">
  11352. <type name="utf8" c:type="gchar*"/>
  11353. </constant>
  11354. <constant name="ELEMENT_FACTORY_KLASS_ENCODER"
  11355. value="Encoder"
  11356. c:type="GST_ELEMENT_FACTORY_KLASS_ENCODER">
  11357. <type name="utf8" c:type="gchar*"/>
  11358. </constant>
  11359. <constant name="ELEMENT_FACTORY_KLASS_ENCRYPTOR"
  11360. value="Encryptor"
  11361. c:type="GST_ELEMENT_FACTORY_KLASS_ENCRYPTOR">
  11362. <type name="utf8" c:type="gchar*"/>
  11363. </constant>
  11364. <constant name="ELEMENT_FACTORY_KLASS_FORMATTER"
  11365. value="Formatter"
  11366. c:type="GST_ELEMENT_FACTORY_KLASS_FORMATTER">
  11367. <type name="utf8" c:type="gchar*"/>
  11368. </constant>
  11369. <constant name="ELEMENT_FACTORY_KLASS_MEDIA_AUDIO"
  11370. value="Audio"
  11371. c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_AUDIO">
  11372. <type name="utf8" c:type="gchar*"/>
  11373. </constant>
  11374. <constant name="ELEMENT_FACTORY_KLASS_MEDIA_IMAGE"
  11375. value="Image"
  11376. c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_IMAGE">
  11377. <type name="utf8" c:type="gchar*"/>
  11378. </constant>
  11379. <constant name="ELEMENT_FACTORY_KLASS_MEDIA_METADATA"
  11380. value="Metadata"
  11381. c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_METADATA">
  11382. <type name="utf8" c:type="gchar*"/>
  11383. </constant>
  11384. <constant name="ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE"
  11385. value="Subtitle"
  11386. c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_SUBTITLE">
  11387. <type name="utf8" c:type="gchar*"/>
  11388. </constant>
  11389. <constant name="ELEMENT_FACTORY_KLASS_MEDIA_VIDEO"
  11390. value="Video"
  11391. c:type="GST_ELEMENT_FACTORY_KLASS_MEDIA_VIDEO">
  11392. <type name="utf8" c:type="gchar*"/>
  11393. </constant>
  11394. <constant name="ELEMENT_FACTORY_KLASS_MUXER"
  11395. value="Muxer"
  11396. c:type="GST_ELEMENT_FACTORY_KLASS_MUXER">
  11397. <type name="utf8" c:type="gchar*"/>
  11398. </constant>
  11399. <constant name="ELEMENT_FACTORY_KLASS_PARSER"
  11400. value="Parser"
  11401. c:type="GST_ELEMENT_FACTORY_KLASS_PARSER">
  11402. <type name="utf8" c:type="gchar*"/>
  11403. </constant>
  11404. <constant name="ELEMENT_FACTORY_KLASS_PAYLOADER"
  11405. value="Payloader"
  11406. c:type="GST_ELEMENT_FACTORY_KLASS_PAYLOADER">
  11407. <type name="utf8" c:type="gchar*"/>
  11408. </constant>
  11409. <constant name="ELEMENT_FACTORY_KLASS_SINK"
  11410. value="Sink"
  11411. c:type="GST_ELEMENT_FACTORY_KLASS_SINK">
  11412. <type name="utf8" c:type="gchar*"/>
  11413. </constant>
  11414. <constant name="ELEMENT_FACTORY_KLASS_SRC"
  11415. value="Source"
  11416. c:type="GST_ELEMENT_FACTORY_KLASS_SRC">
  11417. <type name="utf8" c:type="gchar*"/>
  11418. </constant>
  11419. <constant name="ELEMENT_FACTORY_TYPE_ANY"
  11420. value="562949953421311"
  11421. c:type="GST_ELEMENT_FACTORY_TYPE_ANY">
  11422. <doc xml:space="preserve">Elements of any of the defined GST_ELEMENT_FACTORY_LIST types</doc>
  11423. <type name="gint" c:type="gint"/>
  11424. </constant>
  11425. <constant name="ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS"
  11426. value="3940649673949188"
  11427. c:type="GST_ELEMENT_FACTORY_TYPE_AUDIOVIDEO_SINKS">
  11428. <doc xml:space="preserve">All sinks handling audio, video or image media types</doc>
  11429. <type name="gint" c:type="gint"/>
  11430. </constant>
  11431. <constant name="ELEMENT_FACTORY_TYPE_AUDIO_ENCODER"
  11432. value="1125899906842626"
  11433. c:type="GST_ELEMENT_FACTORY_TYPE_AUDIO_ENCODER">
  11434. <doc xml:space="preserve">All encoders handling audio media types</doc>
  11435. <type name="gint" c:type="gint"/>
  11436. </constant>
  11437. <constant name="ELEMENT_FACTORY_TYPE_DECODABLE"
  11438. value="353"
  11439. c:type="GST_ELEMENT_FACTORY_TYPE_DECODABLE">
  11440. <doc xml:space="preserve">All elements used to 'decode' streams (decoders, demuxers, parsers, depayloaders)</doc>
  11441. <type name="gint" c:type="gint"/>
  11442. </constant>
  11443. <constant name="ELEMENT_FACTORY_TYPE_DECODER"
  11444. value="1"
  11445. c:type="GST_ELEMENT_FACTORY_TYPE_DECODER">
  11446. <type name="gint" c:type="gint"/>
  11447. </constant>
  11448. <constant name="ELEMENT_FACTORY_TYPE_DECRYPTOR"
  11449. value="1024"
  11450. c:type="GST_ELEMENT_FACTORY_TYPE_DECRYPTOR">
  11451. <type name="gint" c:type="gint"/>
  11452. </constant>
  11453. <constant name="ELEMENT_FACTORY_TYPE_DEMUXER"
  11454. value="32"
  11455. c:type="GST_ELEMENT_FACTORY_TYPE_DEMUXER">
  11456. <type name="gint" c:type="gint"/>
  11457. </constant>
  11458. <constant name="ELEMENT_FACTORY_TYPE_DEPAYLOADER"
  11459. value="256"
  11460. c:type="GST_ELEMENT_FACTORY_TYPE_DEPAYLOADER">
  11461. <type name="gint" c:type="gint"/>
  11462. </constant>
  11463. <constant name="ELEMENT_FACTORY_TYPE_ENCODER"
  11464. value="2"
  11465. c:type="GST_ELEMENT_FACTORY_TYPE_ENCODER">
  11466. <type name="gint" c:type="gint"/>
  11467. </constant>
  11468. <constant name="ELEMENT_FACTORY_TYPE_ENCRYPTOR"
  11469. value="2048"
  11470. c:type="GST_ELEMENT_FACTORY_TYPE_ENCRYPTOR">
  11471. <type name="gint" c:type="gint"/>
  11472. </constant>
  11473. <constant name="ELEMENT_FACTORY_TYPE_FORMATTER"
  11474. value="512"
  11475. c:type="GST_ELEMENT_FACTORY_TYPE_FORMATTER">
  11476. <type name="gint" c:type="gint"/>
  11477. </constant>
  11478. <constant name="ELEMENT_FACTORY_TYPE_MAX_ELEMENTS"
  11479. value="281474976710656"
  11480. c:type="GST_ELEMENT_FACTORY_TYPE_MAX_ELEMENTS">
  11481. <type name="gint" c:type="gint"/>
  11482. </constant>
  11483. <constant name="ELEMENT_FACTORY_TYPE_MEDIA_ANY"
  11484. value="18446462598732840960"
  11485. c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_ANY">
  11486. <doc xml:space="preserve">Elements matching any of the defined GST_ELEMENT_FACTORY_TYPE_MEDIA types
  11487. Note: Do not use this if you wish to not filter against any of the defined
  11488. media types. If you wish to do this, simply don't specify any
  11489. GST_ELEMENT_FACTORY_TYPE_MEDIA flag.</doc>
  11490. <type name="gint" c:type="gint"/>
  11491. </constant>
  11492. <constant name="ELEMENT_FACTORY_TYPE_MEDIA_AUDIO"
  11493. value="1125899906842624"
  11494. c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_AUDIO">
  11495. <type name="gint" c:type="gint"/>
  11496. </constant>
  11497. <constant name="ELEMENT_FACTORY_TYPE_MEDIA_IMAGE"
  11498. value="2251799813685248"
  11499. c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_IMAGE">
  11500. <type name="gint" c:type="gint"/>
  11501. </constant>
  11502. <constant name="ELEMENT_FACTORY_TYPE_MEDIA_METADATA"
  11503. value="9007199254740992"
  11504. c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_METADATA">
  11505. <type name="gint" c:type="gint"/>
  11506. </constant>
  11507. <constant name="ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE"
  11508. value="4503599627370496"
  11509. c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_SUBTITLE">
  11510. <type name="gint" c:type="gint"/>
  11511. </constant>
  11512. <constant name="ELEMENT_FACTORY_TYPE_MEDIA_VIDEO"
  11513. value="562949953421312"
  11514. c:type="GST_ELEMENT_FACTORY_TYPE_MEDIA_VIDEO">
  11515. <type name="gint" c:type="gint"/>
  11516. </constant>
  11517. <constant name="ELEMENT_FACTORY_TYPE_MUXER"
  11518. value="16"
  11519. c:type="GST_ELEMENT_FACTORY_TYPE_MUXER">
  11520. <type name="gint" c:type="gint"/>
  11521. </constant>
  11522. <constant name="ELEMENT_FACTORY_TYPE_PARSER"
  11523. value="64"
  11524. c:type="GST_ELEMENT_FACTORY_TYPE_PARSER">
  11525. <type name="gint" c:type="gint"/>
  11526. </constant>
  11527. <constant name="ELEMENT_FACTORY_TYPE_PAYLOADER"
  11528. value="128"
  11529. c:type="GST_ELEMENT_FACTORY_TYPE_PAYLOADER">
  11530. <type name="gint" c:type="gint"/>
  11531. </constant>
  11532. <constant name="ELEMENT_FACTORY_TYPE_SINK"
  11533. value="4"
  11534. c:type="GST_ELEMENT_FACTORY_TYPE_SINK">
  11535. <type name="gint" c:type="gint"/>
  11536. </constant>
  11537. <constant name="ELEMENT_FACTORY_TYPE_SRC"
  11538. value="8"
  11539. c:type="GST_ELEMENT_FACTORY_TYPE_SRC">
  11540. <type name="gint" c:type="gint"/>
  11541. </constant>
  11542. <constant name="ELEMENT_FACTORY_TYPE_VIDEO_ENCODER"
  11543. value="2814749767106562"
  11544. c:type="GST_ELEMENT_FACTORY_TYPE_VIDEO_ENCODER">
  11545. <doc xml:space="preserve">All encoders handling video or image media types</doc>
  11546. <type name="gint" c:type="gint"/>
  11547. </constant>
  11548. <constant name="ELEMENT_METADATA_AUTHOR"
  11549. value="author"
  11550. c:type="GST_ELEMENT_METADATA_AUTHOR">
  11551. <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
  11552. multiple author details.
  11553. E.g: "Joe Bloggs &amp;lt;joe.blogs at foo.com&amp;gt;"</doc>
  11554. <type name="utf8" c:type="gchar*"/>
  11555. </constant>
  11556. <constant name="ELEMENT_METADATA_DESCRIPTION"
  11557. value="description"
  11558. c:type="GST_ELEMENT_METADATA_DESCRIPTION">
  11559. <doc xml:space="preserve">Sentence describing the purpose of the element.
  11560. E.g: "Write stream to a file"</doc>
  11561. <type name="utf8" c:type="gchar*"/>
  11562. </constant>
  11563. <constant name="ELEMENT_METADATA_DOC_URI"
  11564. value="doc-uri"
  11565. c:type="GST_ELEMENT_METADATA_DOC_URI">
  11566. <doc xml:space="preserve">Set uri pointing to user documentation. Applications can use this to show
  11567. help for e.g. effects to users.</doc>
  11568. <type name="utf8" c:type="gchar*"/>
  11569. </constant>
  11570. <constant name="ELEMENT_METADATA_ICON_NAME"
  11571. value="icon-name"
  11572. c:type="GST_ELEMENT_METADATA_ICON_NAME">
  11573. <doc xml:space="preserve">Elements that bridge to certain other products can include an icon of that
  11574. used product. Application can show the icon in menus/selectors to help
  11575. identifying specific elements.</doc>
  11576. <type name="utf8" c:type="gchar*"/>
  11577. </constant>
  11578. <constant name="ELEMENT_METADATA_KLASS"
  11579. value="klass"
  11580. c:type="GST_ELEMENT_METADATA_KLASS">
  11581. <doc xml:space="preserve">String describing the type of element, as an unordered list
  11582. separated with slashes ('/'). See draft-klass.txt of the design docs
  11583. for more details and common types. E.g: "Sink/File"</doc>
  11584. <type name="utf8" c:type="gchar*"/>
  11585. </constant>
  11586. <constant name="ELEMENT_METADATA_LONGNAME"
  11587. value="long-name"
  11588. c:type="GST_ELEMENT_METADATA_LONGNAME">
  11589. <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
  11590. <type name="utf8" c:type="gchar*"/>
  11591. </constant>
  11592. <constant name="ERROR_SYSTEM"
  11593. value="system error: %s"
  11594. c:type="GST_ERROR_SYSTEM">
  11595. <doc xml:space="preserve">Builds a string using errno describing the previously failed system
  11596. call. To be used as the debug argument in #GST_ELEMENT_ERROR.</doc>
  11597. <type name="utf8" c:type="gchar*"/>
  11598. </constant>
  11599. <constant name="EVENT_NUM_SHIFT" value="8" c:type="GST_EVENT_NUM_SHIFT">
  11600. <type name="gint" c:type="gint"/>
  11601. </constant>
  11602. <constant name="EVENT_TYPE_BOTH" value="0" c:type="GST_EVENT_TYPE_BOTH">
  11603. <doc xml:space="preserve">The same thing as #GST_EVENT_TYPE_UPSTREAM | #GST_EVENT_TYPE_DOWNSTREAM.</doc>
  11604. <type name="gint" c:type="gint"/>
  11605. </constant>
  11606. <class name="Element"
  11607. c:symbol-prefix="element"
  11608. c:type="GstElement"
  11609. parent="Object"
  11610. abstract="1"
  11611. glib:type-name="GstElement"
  11612. glib:get-type="gst_element_get_type"
  11613. glib:type-struct="ElementClass">
  11614. <doc xml:space="preserve">GstElement is the abstract base class needed to construct an element that
  11615. can be used in a GStreamer pipeline. Please refer to the plugin writers
  11616. guide for more information on creating #GstElement subclasses.
  11617. The name of a #GstElement can be get with gst_element_get_name() and set with
  11618. gst_element_set_name(). For speed, GST_ELEMENT_NAME() can be used in the
  11619. core when using the appropriate locking. Do not use this in plug-ins or
  11620. applications in order to retain ABI compatibility.
  11621. Elements can have pads (of the type #GstPad). These pads link to pads on
  11622. other elements. #GstBuffer flow between these linked pads.
  11623. A #GstElement has a #GList of #GstPad structures for all their input (or sink)
  11624. and output (or source) pads.
  11625. Core and plug-in writers can add and remove pads with gst_element_add_pad()
  11626. and gst_element_remove_pad().
  11627. An existing pad of an element can be retrieved by name with
  11628. gst_element_get_static_pad(). A new dynamic pad can be created using
  11629. gst_element_request_pad() with a #GstPadTemplate.
  11630. An iterator of all pads can be retrieved with gst_element_iterate_pads().
  11631. Elements can be linked through their pads.
  11632. If the link is straightforward, use the gst_element_link()
  11633. convenience function to link two elements, or gst_element_link_many()
  11634. for more elements in a row.
  11635. Use gst_element_link_filtered() to link two elements constrained by
  11636. a specified set of #GstCaps.
  11637. For finer control, use gst_element_link_pads() and
  11638. gst_element_link_pads_filtered() to specify the pads to link on
  11639. each element by name.
  11640. Each element has a state (see #GstState). You can get and set the state
  11641. of an element with gst_element_get_state() and gst_element_set_state().
  11642. Setting a state triggers a #GstStateChange. To get a string representation
  11643. of a #GstState, use gst_element_state_get_name().
  11644. You can get and set a #GstClock on an element using gst_element_get_clock()
  11645. and gst_element_set_clock().
  11646. Some elements can provide a clock for the pipeline if
  11647. the #GST_ELEMENT_FLAG_PROVIDE_CLOCK flag is set. With the
  11648. gst_element_provide_clock() method one can retrieve the clock provided by
  11649. such an element.
  11650. Not all elements require a clock to operate correctly. If the
  11651. #GST_ELEMENT_FLAG_REQUIRE_CLOCK() flag is set, a clock should be set on the
  11652. element with gst_element_set_clock().
  11653. Note that clock selection and distribution is normally handled by the
  11654. toplevel #GstPipeline so the clock functions are only to be used in very
  11655. specific situations.</doc>
  11656. <function name="make_from_uri"
  11657. c:identifier="gst_element_make_from_uri"
  11658. throws="1">
  11659. <doc xml:space="preserve">Creates an element for handling the given URI.</doc>
  11660. <return-value transfer-ownership="none">
  11661. <doc xml:space="preserve">a new element or %NULL if none could be created</doc>
  11662. <type name="Element" c:type="GstElement*"/>
  11663. </return-value>
  11664. <parameters>
  11665. <parameter name="type" transfer-ownership="none">
  11666. <doc xml:space="preserve">Whether to create a source or a sink</doc>
  11667. <type name="URIType" c:type="const GstURIType"/>
  11668. </parameter>
  11669. <parameter name="uri" transfer-ownership="none">
  11670. <doc xml:space="preserve">URI to create an element for</doc>
  11671. <type name="utf8" c:type="const gchar*"/>
  11672. </parameter>
  11673. <parameter name="elementname"
  11674. transfer-ownership="none"
  11675. nullable="1"
  11676. allow-none="1">
  11677. <doc xml:space="preserve">Name of created element, can be %NULL.</doc>
  11678. <type name="utf8" c:type="const gchar*"/>
  11679. </parameter>
  11680. </parameters>
  11681. </function>
  11682. <function name="register" c:identifier="gst_element_register">
  11683. <doc xml:space="preserve">Create a new elementfactory capable of instantiating objects of the
  11684. @type and add the factory to @plugin.</doc>
  11685. <return-value transfer-ownership="none">
  11686. <doc xml:space="preserve">%TRUE, if the registering succeeded, %FALSE on error</doc>
  11687. <type name="gboolean" c:type="gboolean"/>
  11688. </return-value>
  11689. <parameters>
  11690. <parameter name="plugin"
  11691. transfer-ownership="none"
  11692. nullable="1"
  11693. allow-none="1">
  11694. <doc xml:space="preserve">#GstPlugin to register the element with, or %NULL for
  11695. a static element.</doc>
  11696. <type name="Plugin" c:type="GstPlugin*"/>
  11697. </parameter>
  11698. <parameter name="name" transfer-ownership="none">
  11699. <doc xml:space="preserve">name of elements of this type</doc>
  11700. <type name="utf8" c:type="const gchar*"/>
  11701. </parameter>
  11702. <parameter name="rank" transfer-ownership="none">
  11703. <doc xml:space="preserve">rank of element (higher rank means more importance when autoplugging)</doc>
  11704. <type name="guint" c:type="guint"/>
  11705. </parameter>
  11706. <parameter name="type" transfer-ownership="none">
  11707. <doc xml:space="preserve">GType of element to register</doc>
  11708. <type name="GType" c:type="GType"/>
  11709. </parameter>
  11710. </parameters>
  11711. </function>
  11712. <function name="state_change_return_get_name"
  11713. c:identifier="gst_element_state_change_return_get_name">
  11714. <doc xml:space="preserve">Gets a string representing the given state change result.</doc>
  11715. <return-value transfer-ownership="none">
  11716. <doc xml:space="preserve">a string with the name of the state
  11717. result.</doc>
  11718. <type name="utf8" c:type="const gchar*"/>
  11719. </return-value>
  11720. <parameters>
  11721. <parameter name="state_ret" transfer-ownership="none">
  11722. <doc xml:space="preserve">a #GstStateChangeReturn to get the name of.</doc>
  11723. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  11724. </parameter>
  11725. </parameters>
  11726. </function>
  11727. <function name="state_get_name"
  11728. c:identifier="gst_element_state_get_name">
  11729. <doc xml:space="preserve">Gets a string representing the given state.</doc>
  11730. <return-value transfer-ownership="none">
  11731. <doc xml:space="preserve">a string with the name of the state.</doc>
  11732. <type name="utf8" c:type="const gchar*"/>
  11733. </return-value>
  11734. <parameters>
  11735. <parameter name="state" transfer-ownership="none">
  11736. <doc xml:space="preserve">a #GstState to get the name of.</doc>
  11737. <type name="State" c:type="GstState"/>
  11738. </parameter>
  11739. </parameters>
  11740. </function>
  11741. <virtual-method name="change_state" invoker="change_state">
  11742. <doc xml:space="preserve">Perform @transition on @element.
  11743. This function must be called with STATE_LOCK held and is mainly used
  11744. internally.</doc>
  11745. <return-value transfer-ownership="none">
  11746. <doc xml:space="preserve">the #GstStateChangeReturn of the state transition.</doc>
  11747. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  11748. </return-value>
  11749. <parameters>
  11750. <instance-parameter name="element" transfer-ownership="none">
  11751. <doc xml:space="preserve">a #GstElement</doc>
  11752. <type name="Element" c:type="GstElement*"/>
  11753. </instance-parameter>
  11754. <parameter name="transition" transfer-ownership="none">
  11755. <doc xml:space="preserve">the requested transition</doc>
  11756. <type name="StateChange" c:type="GstStateChange"/>
  11757. </parameter>
  11758. </parameters>
  11759. </virtual-method>
  11760. <virtual-method name="get_state" invoker="get_state">
  11761. <doc xml:space="preserve">Gets the state of the element.
  11762. For elements that performed an ASYNC state change, as reported by
  11763. gst_element_set_state(), this function will block up to the
  11764. specified timeout value for the state change to complete.
  11765. If the element completes the state change or goes into
  11766. an error, this function returns immediately with a return value of
  11767. %GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
  11768. For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
  11769. returns the current and pending state immediately.
  11770. This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
  11771. successfully changed its state but is not able to provide data yet.
  11772. This mostly happens for live sources that only produce data in
  11773. %GST_STATE_PLAYING. While the state change return is equivalent to
  11774. %GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
  11775. some sink elements might not be able to complete their state change because
  11776. an element is not producing data to complete the preroll. When setting the
  11777. element to playing, the preroll will complete and playback will start.</doc>
  11778. <return-value transfer-ownership="none">
  11779. <doc xml:space="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state
  11780. and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
  11781. element is still performing a state change or
  11782. %GST_STATE_CHANGE_FAILURE if the last state change failed.
  11783. MT safe.</doc>
  11784. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  11785. </return-value>
  11786. <parameters>
  11787. <instance-parameter name="element" transfer-ownership="none">
  11788. <doc xml:space="preserve">a #GstElement to get the state of.</doc>
  11789. <type name="Element" c:type="GstElement*"/>
  11790. </instance-parameter>
  11791. <parameter name="state"
  11792. direction="out"
  11793. caller-allocates="0"
  11794. transfer-ownership="full"
  11795. optional="1"
  11796. allow-none="1">
  11797. <doc xml:space="preserve">a pointer to #GstState to hold the state.
  11798. Can be %NULL.</doc>
  11799. <type name="State" c:type="GstState*"/>
  11800. </parameter>
  11801. <parameter name="pending"
  11802. direction="out"
  11803. caller-allocates="0"
  11804. transfer-ownership="full"
  11805. optional="1"
  11806. allow-none="1">
  11807. <doc xml:space="preserve">a pointer to #GstState to hold the pending
  11808. state. Can be %NULL.</doc>
  11809. <type name="State" c:type="GstState*"/>
  11810. </parameter>
  11811. <parameter name="timeout" transfer-ownership="none">
  11812. <doc xml:space="preserve">a #GstClockTime to specify the timeout for an async
  11813. state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
  11814. <type name="ClockTime" c:type="GstClockTime"/>
  11815. </parameter>
  11816. </parameters>
  11817. </virtual-method>
  11818. <virtual-method name="no_more_pads" invoker="no_more_pads">
  11819. <doc xml:space="preserve">Use this function to signal that the element does not expect any more pads
  11820. to show up in the current pipeline. This function should be called whenever
  11821. pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
  11822. pad templates use this in combination with autopluggers to figure out that
  11823. the element is done initializing its pads.
  11824. This function emits the #GstElement::no-more-pads signal.
  11825. MT safe.</doc>
  11826. <return-value transfer-ownership="none">
  11827. <type name="none" c:type="void"/>
  11828. </return-value>
  11829. <parameters>
  11830. <instance-parameter name="element" transfer-ownership="none">
  11831. <doc xml:space="preserve">a #GstElement</doc>
  11832. <type name="Element" c:type="GstElement*"/>
  11833. </instance-parameter>
  11834. </parameters>
  11835. </virtual-method>
  11836. <virtual-method name="pad_added">
  11837. <return-value transfer-ownership="none">
  11838. <type name="none" c:type="void"/>
  11839. </return-value>
  11840. <parameters>
  11841. <instance-parameter name="element" transfer-ownership="none">
  11842. <type name="Element" c:type="GstElement*"/>
  11843. </instance-parameter>
  11844. <parameter name="pad" transfer-ownership="none">
  11845. <type name="Pad" c:type="GstPad*"/>
  11846. </parameter>
  11847. </parameters>
  11848. </virtual-method>
  11849. <virtual-method name="pad_removed">
  11850. <return-value transfer-ownership="none">
  11851. <type name="none" c:type="void"/>
  11852. </return-value>
  11853. <parameters>
  11854. <instance-parameter name="element" transfer-ownership="none">
  11855. <type name="Element" c:type="GstElement*"/>
  11856. </instance-parameter>
  11857. <parameter name="pad" transfer-ownership="none">
  11858. <type name="Pad" c:type="GstPad*"/>
  11859. </parameter>
  11860. </parameters>
  11861. </virtual-method>
  11862. <virtual-method name="post_message" invoker="post_message">
  11863. <doc xml:space="preserve">Post a message on the element's #GstBus. This function takes ownership of the
  11864. message; if you want to access the message after this call, you should add an
  11865. additional reference before calling.</doc>
  11866. <return-value transfer-ownership="none">
  11867. <doc xml:space="preserve">%TRUE if the message was successfully posted. The function returns
  11868. %FALSE if the element did not have a bus.
  11869. MT safe.</doc>
  11870. <type name="gboolean" c:type="gboolean"/>
  11871. </return-value>
  11872. <parameters>
  11873. <instance-parameter name="element" transfer-ownership="none">
  11874. <doc xml:space="preserve">a #GstElement posting the message</doc>
  11875. <type name="Element" c:type="GstElement*"/>
  11876. </instance-parameter>
  11877. <parameter name="message" transfer-ownership="full">
  11878. <doc xml:space="preserve">a #GstMessage to post</doc>
  11879. <type name="Message" c:type="GstMessage*"/>
  11880. </parameter>
  11881. </parameters>
  11882. </virtual-method>
  11883. <virtual-method name="provide_clock" invoker="provide_clock">
  11884. <doc xml:space="preserve">Get the clock provided by the given element.
  11885. &lt;note&gt;An element is only required to provide a clock in the PAUSED
  11886. state. Some elements can provide a clock in other states.&lt;/note&gt;</doc>
  11887. <return-value transfer-ownership="full" nullable="1">
  11888. <doc xml:space="preserve">the GstClock provided by the
  11889. element or %NULL if no clock could be provided. Unref after usage.
  11890. MT safe.</doc>
  11891. <type name="Clock" c:type="GstClock*"/>
  11892. </return-value>
  11893. <parameters>
  11894. <instance-parameter name="element" transfer-ownership="none">
  11895. <doc xml:space="preserve">a #GstElement to query</doc>
  11896. <type name="Element" c:type="GstElement*"/>
  11897. </instance-parameter>
  11898. </parameters>
  11899. </virtual-method>
  11900. <virtual-method name="query" invoker="query">
  11901. <doc xml:space="preserve">Performs a query on the given element.
  11902. For elements that don't implement a query handler, this function
  11903. forwards the query to a random srcpad or to the peer of a
  11904. random linked sinkpad of this element.
  11905. Please note that some queries might need a running pipeline to work.</doc>
  11906. <return-value transfer-ownership="none">
  11907. <doc xml:space="preserve">%TRUE if the query could be performed.
  11908. MT safe.</doc>
  11909. <type name="gboolean" c:type="gboolean"/>
  11910. </return-value>
  11911. <parameters>
  11912. <instance-parameter name="element" transfer-ownership="none">
  11913. <doc xml:space="preserve">a #GstElement to perform the query on.</doc>
  11914. <type name="Element" c:type="GstElement*"/>
  11915. </instance-parameter>
  11916. <parameter name="query" transfer-ownership="none">
  11917. <doc xml:space="preserve">the #GstQuery.</doc>
  11918. <type name="Query" c:type="GstQuery*"/>
  11919. </parameter>
  11920. </parameters>
  11921. </virtual-method>
  11922. <virtual-method name="release_pad">
  11923. <return-value transfer-ownership="none">
  11924. <type name="none" c:type="void"/>
  11925. </return-value>
  11926. <parameters>
  11927. <instance-parameter name="element" transfer-ownership="none">
  11928. <type name="Element" c:type="GstElement*"/>
  11929. </instance-parameter>
  11930. <parameter name="pad" transfer-ownership="none">
  11931. <type name="Pad" c:type="GstPad*"/>
  11932. </parameter>
  11933. </parameters>
  11934. </virtual-method>
  11935. <virtual-method name="request_new_pad" invoker="request_pad">
  11936. <doc xml:space="preserve">Retrieves a request pad from the element according to the provided template.
  11937. Pad templates can be looked up using
  11938. gst_element_factory_get_static_pad_templates().
  11939. The pad should be released with gst_element_release_request_pad().</doc>
  11940. <return-value transfer-ownership="full" nullable="1">
  11941. <doc xml:space="preserve">requested #GstPad if found,
  11942. otherwise %NULL. Release after usage.</doc>
  11943. <type name="Pad" c:type="GstPad*"/>
  11944. </return-value>
  11945. <parameters>
  11946. <instance-parameter name="element" transfer-ownership="none">
  11947. <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
  11948. <type name="Element" c:type="GstElement*"/>
  11949. </instance-parameter>
  11950. <parameter name="templ" transfer-ownership="none">
  11951. <doc xml:space="preserve">a #GstPadTemplate of which we want a pad of.</doc>
  11952. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  11953. </parameter>
  11954. <parameter name="name"
  11955. transfer-ownership="none"
  11956. nullable="1"
  11957. allow-none="1">
  11958. <doc xml:space="preserve">the name of the request #GstPad
  11959. to retrieve. Can be %NULL.</doc>
  11960. <type name="utf8" c:type="const gchar*"/>
  11961. </parameter>
  11962. <parameter name="caps"
  11963. transfer-ownership="none"
  11964. nullable="1"
  11965. allow-none="1">
  11966. <doc xml:space="preserve">the caps of the pad we want to
  11967. request. Can be %NULL.</doc>
  11968. <type name="Caps" c:type="const GstCaps*"/>
  11969. </parameter>
  11970. </parameters>
  11971. </virtual-method>
  11972. <virtual-method name="send_event" invoker="send_event">
  11973. <doc xml:space="preserve">Sends an event to an element. If the element doesn't implement an
  11974. event handler, the event will be pushed on a random linked sink pad for
  11975. downstream events or a random linked source pad for upstream events.
  11976. This function takes ownership of the provided event so you should
  11977. gst_event_ref() it if you want to reuse the event after this call.
  11978. MT safe.</doc>
  11979. <return-value transfer-ownership="none">
  11980. <doc xml:space="preserve">%TRUE if the event was handled. Events that trigger a preroll (such
  11981. as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc>
  11982. <type name="gboolean" c:type="gboolean"/>
  11983. </return-value>
  11984. <parameters>
  11985. <instance-parameter name="element" transfer-ownership="none">
  11986. <doc xml:space="preserve">a #GstElement to send the event to.</doc>
  11987. <type name="Element" c:type="GstElement*"/>
  11988. </instance-parameter>
  11989. <parameter name="event" transfer-ownership="full">
  11990. <doc xml:space="preserve">the #GstEvent to send to the element.</doc>
  11991. <type name="Event" c:type="GstEvent*"/>
  11992. </parameter>
  11993. </parameters>
  11994. </virtual-method>
  11995. <virtual-method name="set_bus" invoker="set_bus">
  11996. <doc xml:space="preserve">Sets the bus of the element. Increases the refcount on the bus.
  11997. For internal use only, unless you're testing elements.
  11998. MT safe.</doc>
  11999. <return-value transfer-ownership="none">
  12000. <type name="none" c:type="void"/>
  12001. </return-value>
  12002. <parameters>
  12003. <instance-parameter name="element" transfer-ownership="none">
  12004. <doc xml:space="preserve">a #GstElement to set the bus of.</doc>
  12005. <type name="Element" c:type="GstElement*"/>
  12006. </instance-parameter>
  12007. <parameter name="bus" transfer-ownership="none">
  12008. <doc xml:space="preserve">the #GstBus to set.</doc>
  12009. <type name="Bus" c:type="GstBus*"/>
  12010. </parameter>
  12011. </parameters>
  12012. </virtual-method>
  12013. <virtual-method name="set_clock" invoker="set_clock">
  12014. <doc xml:space="preserve">Sets the clock for the element. This function increases the
  12015. refcount on the clock. Any previously set clock on the object
  12016. is unreffed.</doc>
  12017. <return-value transfer-ownership="none">
  12018. <doc xml:space="preserve">%TRUE if the element accepted the clock. An element can refuse a
  12019. clock when it, for example, is not able to slave its internal clock to the
  12020. @clock or when it requires a specific clock to operate.
  12021. MT safe.</doc>
  12022. <type name="gboolean" c:type="gboolean"/>
  12023. </return-value>
  12024. <parameters>
  12025. <instance-parameter name="element" transfer-ownership="none">
  12026. <doc xml:space="preserve">a #GstElement to set the clock for.</doc>
  12027. <type name="Element" c:type="GstElement*"/>
  12028. </instance-parameter>
  12029. <parameter name="clock" transfer-ownership="none">
  12030. <doc xml:space="preserve">the #GstClock to set for the element.</doc>
  12031. <type name="Clock" c:type="GstClock*"/>
  12032. </parameter>
  12033. </parameters>
  12034. </virtual-method>
  12035. <virtual-method name="set_context" invoker="set_context">
  12036. <doc xml:space="preserve">Sets the context of the element. Increases the refcount of the context.
  12037. MT safe.</doc>
  12038. <return-value transfer-ownership="none">
  12039. <type name="none" c:type="void"/>
  12040. </return-value>
  12041. <parameters>
  12042. <instance-parameter name="element" transfer-ownership="none">
  12043. <doc xml:space="preserve">a #GstElement to set the context of.</doc>
  12044. <type name="Element" c:type="GstElement*"/>
  12045. </instance-parameter>
  12046. <parameter name="context" transfer-ownership="none">
  12047. <doc xml:space="preserve">the #GstContext to set.</doc>
  12048. <type name="Context" c:type="GstContext*"/>
  12049. </parameter>
  12050. </parameters>
  12051. </virtual-method>
  12052. <virtual-method name="set_state" invoker="set_state">
  12053. <doc xml:space="preserve">Sets the state of the element. This function will try to set the
  12054. requested state by going through all the intermediary states and calling
  12055. the class's state change function for each.
  12056. This function can return #GST_STATE_CHANGE_ASYNC, in which case the
  12057. element will perform the remainder of the state change asynchronously in
  12058. another thread.
  12059. An application can use gst_element_get_state() to wait for the completion
  12060. of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or
  12061. %GST_MESSAGE_STATE_CHANGED on the bus.
  12062. State changes to %GST_STATE_READY or %GST_STATE_NULL never return
  12063. #GST_STATE_CHANGE_ASYNC.</doc>
  12064. <return-value transfer-ownership="none">
  12065. <doc xml:space="preserve">Result of the state change using #GstStateChangeReturn.
  12066. MT safe.</doc>
  12067. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  12068. </return-value>
  12069. <parameters>
  12070. <instance-parameter name="element" transfer-ownership="none">
  12071. <doc xml:space="preserve">a #GstElement to change state of.</doc>
  12072. <type name="Element" c:type="GstElement*"/>
  12073. </instance-parameter>
  12074. <parameter name="state" transfer-ownership="none">
  12075. <doc xml:space="preserve">the element's new #GstState.</doc>
  12076. <type name="State" c:type="GstState"/>
  12077. </parameter>
  12078. </parameters>
  12079. </virtual-method>
  12080. <virtual-method name="state_changed">
  12081. <return-value transfer-ownership="none">
  12082. <type name="none" c:type="void"/>
  12083. </return-value>
  12084. <parameters>
  12085. <instance-parameter name="element" transfer-ownership="none">
  12086. <type name="Element" c:type="GstElement*"/>
  12087. </instance-parameter>
  12088. <parameter name="oldstate" transfer-ownership="none">
  12089. <type name="State" c:type="GstState"/>
  12090. </parameter>
  12091. <parameter name="newstate" transfer-ownership="none">
  12092. <type name="State" c:type="GstState"/>
  12093. </parameter>
  12094. <parameter name="pending" transfer-ownership="none">
  12095. <type name="State" c:type="GstState"/>
  12096. </parameter>
  12097. </parameters>
  12098. </virtual-method>
  12099. <method name="abort_state" c:identifier="gst_element_abort_state">
  12100. <doc xml:space="preserve">Abort the state change of the element. This function is used
  12101. by elements that do asynchronous state changes and find out
  12102. something is wrong.
  12103. This function should be called with the STATE_LOCK held.
  12104. MT safe.</doc>
  12105. <return-value transfer-ownership="none">
  12106. <type name="none" c:type="void"/>
  12107. </return-value>
  12108. <parameters>
  12109. <instance-parameter name="element" transfer-ownership="none">
  12110. <doc xml:space="preserve">a #GstElement to abort the state of.</doc>
  12111. <type name="Element" c:type="GstElement*"/>
  12112. </instance-parameter>
  12113. </parameters>
  12114. </method>
  12115. <method name="add_pad" c:identifier="gst_element_add_pad">
  12116. <doc xml:space="preserve">Adds a pad (link point) to @element. @pad's parent will be set to @element;
  12117. see gst_object_set_parent() for refcounting information.
  12118. Pads are not automatically activated so elements should perform the needed
  12119. steps to activate the pad in case this pad is added in the PAUSED or PLAYING
  12120. state. See gst_pad_set_active() for more information about activating pads.
  12121. The pad and the element should be unlocked when calling this function.
  12122. This function will emit the #GstElement::pad-added signal on the element.</doc>
  12123. <return-value transfer-ownership="none">
  12124. <doc xml:space="preserve">%TRUE if the pad could be added. This function can fail when
  12125. a pad with the same name already existed or the pad already had another
  12126. parent.
  12127. MT safe.</doc>
  12128. <type name="gboolean" c:type="gboolean"/>
  12129. </return-value>
  12130. <parameters>
  12131. <instance-parameter name="element" transfer-ownership="none">
  12132. <doc xml:space="preserve">a #GstElement to add the pad to.</doc>
  12133. <type name="Element" c:type="GstElement*"/>
  12134. </instance-parameter>
  12135. <parameter name="pad" transfer-ownership="full">
  12136. <doc xml:space="preserve">the #GstPad to add to the element.</doc>
  12137. <type name="Pad" c:type="GstPad*"/>
  12138. </parameter>
  12139. </parameters>
  12140. </method>
  12141. <method name="change_state" c:identifier="gst_element_change_state">
  12142. <doc xml:space="preserve">Perform @transition on @element.
  12143. This function must be called with STATE_LOCK held and is mainly used
  12144. internally.</doc>
  12145. <return-value transfer-ownership="none">
  12146. <doc xml:space="preserve">the #GstStateChangeReturn of the state transition.</doc>
  12147. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  12148. </return-value>
  12149. <parameters>
  12150. <instance-parameter name="element" transfer-ownership="none">
  12151. <doc xml:space="preserve">a #GstElement</doc>
  12152. <type name="Element" c:type="GstElement*"/>
  12153. </instance-parameter>
  12154. <parameter name="transition" transfer-ownership="none">
  12155. <doc xml:space="preserve">the requested transition</doc>
  12156. <type name="StateChange" c:type="GstStateChange"/>
  12157. </parameter>
  12158. </parameters>
  12159. </method>
  12160. <method name="continue_state" c:identifier="gst_element_continue_state">
  12161. <doc xml:space="preserve">Commit the state change of the element and proceed to the next
  12162. pending state if any. This function is used
  12163. by elements that do asynchronous state changes.
  12164. The core will normally call this method automatically when an
  12165. element returned %GST_STATE_CHANGE_SUCCESS from the state change function.
  12166. If after calling this method the element still has not reached
  12167. the pending state, the next state change is performed.
  12168. This method is used internally and should normally not be called by plugins
  12169. or applications.</doc>
  12170. <return-value transfer-ownership="none">
  12171. <doc xml:space="preserve">The result of the commit state change.
  12172. MT safe.</doc>
  12173. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  12174. </return-value>
  12175. <parameters>
  12176. <instance-parameter name="element" transfer-ownership="none">
  12177. <doc xml:space="preserve">a #GstElement to continue the state change of.</doc>
  12178. <type name="Element" c:type="GstElement*"/>
  12179. </instance-parameter>
  12180. <parameter name="ret" transfer-ownership="none">
  12181. <doc xml:space="preserve">The previous state return value</doc>
  12182. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  12183. </parameter>
  12184. </parameters>
  12185. </method>
  12186. <method name="create_all_pads"
  12187. c:identifier="gst_element_create_all_pads">
  12188. <doc xml:space="preserve">Creates a pad for each pad template that is always available.
  12189. This function is only useful during object initialization of
  12190. subclasses of #GstElement.</doc>
  12191. <return-value transfer-ownership="none">
  12192. <type name="none" c:type="void"/>
  12193. </return-value>
  12194. <parameters>
  12195. <instance-parameter name="element" transfer-ownership="none">
  12196. <doc xml:space="preserve">a #GstElement to create pads for</doc>
  12197. <type name="Element" c:type="GstElement*"/>
  12198. </instance-parameter>
  12199. </parameters>
  12200. </method>
  12201. <method name="get_base_time" c:identifier="gst_element_get_base_time">
  12202. <doc xml:space="preserve">Returns the base time of the element. The base time is the
  12203. absolute time of the clock when this element was last put to
  12204. PLAYING. Subtracting the base time from the clock time gives
  12205. the running time of the element.</doc>
  12206. <return-value transfer-ownership="none">
  12207. <doc xml:space="preserve">the base time of the element.
  12208. MT safe.</doc>
  12209. <type name="ClockTime" c:type="GstClockTime"/>
  12210. </return-value>
  12211. <parameters>
  12212. <instance-parameter name="element" transfer-ownership="none">
  12213. <doc xml:space="preserve">a #GstElement.</doc>
  12214. <type name="Element" c:type="GstElement*"/>
  12215. </instance-parameter>
  12216. </parameters>
  12217. </method>
  12218. <method name="get_bus" c:identifier="gst_element_get_bus">
  12219. <doc xml:space="preserve">Returns the bus of the element. Note that only a #GstPipeline will provide a
  12220. bus for the application.</doc>
  12221. <return-value transfer-ownership="full">
  12222. <doc xml:space="preserve">the element's #GstBus. unref after usage.
  12223. MT safe.</doc>
  12224. <type name="Bus" c:type="GstBus*"/>
  12225. </return-value>
  12226. <parameters>
  12227. <instance-parameter name="element" transfer-ownership="none">
  12228. <doc xml:space="preserve">a #GstElement to get the bus of.</doc>
  12229. <type name="Element" c:type="GstElement*"/>
  12230. </instance-parameter>
  12231. </parameters>
  12232. </method>
  12233. <method name="get_clock" c:identifier="gst_element_get_clock">
  12234. <doc xml:space="preserve">Gets the currently configured clock of the element. This is the clock as was
  12235. last set with gst_element_set_clock().
  12236. Elements in a pipeline will only have their clock set when the
  12237. pipeline is in the PLAYING state.</doc>
  12238. <return-value transfer-ownership="full">
  12239. <doc xml:space="preserve">the #GstClock of the element. unref after usage.
  12240. MT safe.</doc>
  12241. <type name="Clock" c:type="GstClock*"/>
  12242. </return-value>
  12243. <parameters>
  12244. <instance-parameter name="element" transfer-ownership="none">
  12245. <doc xml:space="preserve">a #GstElement to get the clock of.</doc>
  12246. <type name="Element" c:type="GstElement*"/>
  12247. </instance-parameter>
  12248. </parameters>
  12249. </method>
  12250. <method name="get_compatible_pad"
  12251. c:identifier="gst_element_get_compatible_pad">
  12252. <doc xml:space="preserve">Looks for an unlinked pad to which the given pad can link. It is not
  12253. guaranteed that linking the pads will work, though it should work in most
  12254. cases.
  12255. This function will first attempt to find a compatible unlinked ALWAYS pad,
  12256. and if none can be found, it will request a compatible REQUEST pad by looking
  12257. at the templates of @element.</doc>
  12258. <return-value transfer-ownership="full" nullable="1">
  12259. <doc xml:space="preserve">the #GstPad to which a link
  12260. can be made, or %NULL if one cannot be found. gst_object_unref()
  12261. after usage.</doc>
  12262. <type name="Pad" c:type="GstPad*"/>
  12263. </return-value>
  12264. <parameters>
  12265. <instance-parameter name="element" transfer-ownership="none">
  12266. <doc xml:space="preserve">a #GstElement in which the pad should be found.</doc>
  12267. <type name="Element" c:type="GstElement*"/>
  12268. </instance-parameter>
  12269. <parameter name="pad" transfer-ownership="none">
  12270. <doc xml:space="preserve">the #GstPad to find a compatible one for.</doc>
  12271. <type name="Pad" c:type="GstPad*"/>
  12272. </parameter>
  12273. <parameter name="caps"
  12274. transfer-ownership="none"
  12275. nullable="1"
  12276. allow-none="1">
  12277. <doc xml:space="preserve">the #GstCaps to use as a filter.</doc>
  12278. <type name="Caps" c:type="GstCaps*"/>
  12279. </parameter>
  12280. </parameters>
  12281. </method>
  12282. <method name="get_compatible_pad_template"
  12283. c:identifier="gst_element_get_compatible_pad_template">
  12284. <doc xml:space="preserve">Retrieves a pad template from @element that is compatible with @compattempl.
  12285. Pads from compatible templates can be linked together.</doc>
  12286. <return-value transfer-ownership="none" nullable="1">
  12287. <doc xml:space="preserve">a compatible #GstPadTemplate,
  12288. or %NULL if none was found. No unreferencing is necessary.</doc>
  12289. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  12290. </return-value>
  12291. <parameters>
  12292. <instance-parameter name="element" transfer-ownership="none">
  12293. <doc xml:space="preserve">a #GstElement to get a compatible pad template for</doc>
  12294. <type name="Element" c:type="GstElement*"/>
  12295. </instance-parameter>
  12296. <parameter name="compattempl" transfer-ownership="none">
  12297. <doc xml:space="preserve">the #GstPadTemplate to find a compatible
  12298. template for</doc>
  12299. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  12300. </parameter>
  12301. </parameters>
  12302. </method>
  12303. <method name="get_context"
  12304. c:identifier="gst_element_get_context"
  12305. version="1.8">
  12306. <doc xml:space="preserve">Gets the context with @context_type set on the element or NULL.
  12307. MT safe.</doc>
  12308. <return-value transfer-ownership="full">
  12309. <doc xml:space="preserve">A #GstContext or NULL</doc>
  12310. <type name="Context" c:type="GstContext*"/>
  12311. </return-value>
  12312. <parameters>
  12313. <instance-parameter name="element" transfer-ownership="none">
  12314. <doc xml:space="preserve">a #GstElement to get the context of.</doc>
  12315. <type name="Element" c:type="GstElement*"/>
  12316. </instance-parameter>
  12317. <parameter name="context_type" transfer-ownership="none">
  12318. <doc xml:space="preserve">a name of a context to retrieve</doc>
  12319. <type name="utf8" c:type="const gchar*"/>
  12320. </parameter>
  12321. </parameters>
  12322. </method>
  12323. <method name="get_context_unlocked"
  12324. c:identifier="gst_element_get_context_unlocked"
  12325. version="1.8">
  12326. <doc xml:space="preserve">Gets the context with @context_type set on the element or NULL.</doc>
  12327. <return-value transfer-ownership="full">
  12328. <doc xml:space="preserve">A #GstContext or NULL</doc>
  12329. <type name="Context" c:type="GstContext*"/>
  12330. </return-value>
  12331. <parameters>
  12332. <instance-parameter name="element" transfer-ownership="none">
  12333. <doc xml:space="preserve">a #GstElement to get the context of.</doc>
  12334. <type name="Element" c:type="GstElement*"/>
  12335. </instance-parameter>
  12336. <parameter name="context_type" transfer-ownership="none">
  12337. <doc xml:space="preserve">a name of a context to retrieve</doc>
  12338. <type name="utf8" c:type="const gchar*"/>
  12339. </parameter>
  12340. </parameters>
  12341. </method>
  12342. <method name="get_contexts"
  12343. c:identifier="gst_element_get_contexts"
  12344. version="1.8">
  12345. <doc xml:space="preserve">Gets the contexts set on the element.
  12346. MT safe.</doc>
  12347. <return-value transfer-ownership="full">
  12348. <doc xml:space="preserve">List of #GstContext</doc>
  12349. <type name="GLib.List" c:type="GList*">
  12350. <type name="Context"/>
  12351. </type>
  12352. </return-value>
  12353. <parameters>
  12354. <instance-parameter name="element" transfer-ownership="none">
  12355. <doc xml:space="preserve">a #GstElement to set the context of.</doc>
  12356. <type name="Element" c:type="GstElement*"/>
  12357. </instance-parameter>
  12358. </parameters>
  12359. </method>
  12360. <method name="get_factory" c:identifier="gst_element_get_factory">
  12361. <doc xml:space="preserve">Retrieves the factory that was used to create this element.</doc>
  12362. <return-value transfer-ownership="none">
  12363. <doc xml:space="preserve">the #GstElementFactory used for creating this
  12364. element. no refcounting is needed.</doc>
  12365. <type name="ElementFactory" c:type="GstElementFactory*"/>
  12366. </return-value>
  12367. <parameters>
  12368. <instance-parameter name="element" transfer-ownership="none">
  12369. <doc xml:space="preserve">a #GstElement to request the element factory of.</doc>
  12370. <type name="Element" c:type="GstElement*"/>
  12371. </instance-parameter>
  12372. </parameters>
  12373. </method>
  12374. <method name="get_request_pad"
  12375. c:identifier="gst_element_get_request_pad">
  12376. <doc xml:space="preserve">Retrieves a pad from the element by name (e.g. "src_\%d"). This version only
  12377. retrieves request pads. The pad should be released with
  12378. gst_element_release_request_pad().
  12379. This method is slower than manually getting the pad template and calling
  12380. gst_element_request_pad() if the pads should have a specific name (e.g.
  12381. @name is "src_1" instead of "src_\%u").</doc>
  12382. <return-value transfer-ownership="full" nullable="1">
  12383. <doc xml:space="preserve">requested #GstPad if found,
  12384. otherwise %NULL. Release after usage.</doc>
  12385. <type name="Pad" c:type="GstPad*"/>
  12386. </return-value>
  12387. <parameters>
  12388. <instance-parameter name="element" transfer-ownership="none">
  12389. <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
  12390. <type name="Element" c:type="GstElement*"/>
  12391. </instance-parameter>
  12392. <parameter name="name" transfer-ownership="none">
  12393. <doc xml:space="preserve">the name of the request #GstPad to retrieve.</doc>
  12394. <type name="utf8" c:type="const gchar*"/>
  12395. </parameter>
  12396. </parameters>
  12397. </method>
  12398. <method name="get_start_time" c:identifier="gst_element_get_start_time">
  12399. <doc xml:space="preserve">Returns the start time of the element. The start time is the
  12400. running time of the clock when this element was last put to PAUSED.
  12401. Usually the start_time is managed by a toplevel element such as
  12402. #GstPipeline.
  12403. MT safe.</doc>
  12404. <return-value transfer-ownership="none">
  12405. <doc xml:space="preserve">the start time of the element.</doc>
  12406. <type name="ClockTime" c:type="GstClockTime"/>
  12407. </return-value>
  12408. <parameters>
  12409. <instance-parameter name="element" transfer-ownership="none">
  12410. <doc xml:space="preserve">a #GstElement.</doc>
  12411. <type name="Element" c:type="GstElement*"/>
  12412. </instance-parameter>
  12413. </parameters>
  12414. </method>
  12415. <method name="get_state" c:identifier="gst_element_get_state">
  12416. <doc xml:space="preserve">Gets the state of the element.
  12417. For elements that performed an ASYNC state change, as reported by
  12418. gst_element_set_state(), this function will block up to the
  12419. specified timeout value for the state change to complete.
  12420. If the element completes the state change or goes into
  12421. an error, this function returns immediately with a return value of
  12422. %GST_STATE_CHANGE_SUCCESS or %GST_STATE_CHANGE_FAILURE respectively.
  12423. For elements that did not return %GST_STATE_CHANGE_ASYNC, this function
  12424. returns the current and pending state immediately.
  12425. This function returns %GST_STATE_CHANGE_NO_PREROLL if the element
  12426. successfully changed its state but is not able to provide data yet.
  12427. This mostly happens for live sources that only produce data in
  12428. %GST_STATE_PLAYING. While the state change return is equivalent to
  12429. %GST_STATE_CHANGE_SUCCESS, it is returned to the application to signal that
  12430. some sink elements might not be able to complete their state change because
  12431. an element is not producing data to complete the preroll. When setting the
  12432. element to playing, the preroll will complete and playback will start.</doc>
  12433. <return-value transfer-ownership="none">
  12434. <doc xml:space="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state
  12435. and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
  12436. element is still performing a state change or
  12437. %GST_STATE_CHANGE_FAILURE if the last state change failed.
  12438. MT safe.</doc>
  12439. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  12440. </return-value>
  12441. <parameters>
  12442. <instance-parameter name="element" transfer-ownership="none">
  12443. <doc xml:space="preserve">a #GstElement to get the state of.</doc>
  12444. <type name="Element" c:type="GstElement*"/>
  12445. </instance-parameter>
  12446. <parameter name="state"
  12447. direction="out"
  12448. caller-allocates="0"
  12449. transfer-ownership="full"
  12450. optional="1"
  12451. allow-none="1">
  12452. <doc xml:space="preserve">a pointer to #GstState to hold the state.
  12453. Can be %NULL.</doc>
  12454. <type name="State" c:type="GstState*"/>
  12455. </parameter>
  12456. <parameter name="pending"
  12457. direction="out"
  12458. caller-allocates="0"
  12459. transfer-ownership="full"
  12460. optional="1"
  12461. allow-none="1">
  12462. <doc xml:space="preserve">a pointer to #GstState to hold the pending
  12463. state. Can be %NULL.</doc>
  12464. <type name="State" c:type="GstState*"/>
  12465. </parameter>
  12466. <parameter name="timeout" transfer-ownership="none">
  12467. <doc xml:space="preserve">a #GstClockTime to specify the timeout for an async
  12468. state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
  12469. <type name="ClockTime" c:type="GstClockTime"/>
  12470. </parameter>
  12471. </parameters>
  12472. </method>
  12473. <method name="get_static_pad" c:identifier="gst_element_get_static_pad">
  12474. <doc xml:space="preserve">Retrieves a pad from @element by name. This version only retrieves
  12475. already-existing (i.e. 'static') pads.</doc>
  12476. <return-value transfer-ownership="full" nullable="1">
  12477. <doc xml:space="preserve">the requested #GstPad if
  12478. found, otherwise %NULL. unref after usage.
  12479. MT safe.</doc>
  12480. <type name="Pad" c:type="GstPad*"/>
  12481. </return-value>
  12482. <parameters>
  12483. <instance-parameter name="element" transfer-ownership="none">
  12484. <doc xml:space="preserve">a #GstElement to find a static pad of.</doc>
  12485. <type name="Element" c:type="GstElement*"/>
  12486. </instance-parameter>
  12487. <parameter name="name" transfer-ownership="none">
  12488. <doc xml:space="preserve">the name of the static #GstPad to retrieve.</doc>
  12489. <type name="utf8" c:type="const gchar*"/>
  12490. </parameter>
  12491. </parameters>
  12492. </method>
  12493. <method name="is_locked_state"
  12494. c:identifier="gst_element_is_locked_state">
  12495. <doc xml:space="preserve">Checks if the state of an element is locked.
  12496. If the state of an element is locked, state changes of the parent don't
  12497. affect the element.
  12498. This way you can leave currently unused elements inside bins. Just lock their
  12499. state before changing the state from #GST_STATE_NULL.
  12500. MT safe.</doc>
  12501. <return-value transfer-ownership="none">
  12502. <doc xml:space="preserve">%TRUE, if the element's state is locked.</doc>
  12503. <type name="gboolean" c:type="gboolean"/>
  12504. </return-value>
  12505. <parameters>
  12506. <instance-parameter name="element" transfer-ownership="none">
  12507. <doc xml:space="preserve">a #GstElement.</doc>
  12508. <type name="Element" c:type="GstElement*"/>
  12509. </instance-parameter>
  12510. </parameters>
  12511. </method>
  12512. <method name="iterate_pads" c:identifier="gst_element_iterate_pads">
  12513. <doc xml:space="preserve">Retrieves an iterator of @element's pads. The iterator should
  12514. be freed after usage. Also more specialized iterators exists such as
  12515. gst_element_iterate_src_pads() or gst_element_iterate_sink_pads().
  12516. The order of pads returned by the iterator will be the order in which
  12517. the pads were added to the element.</doc>
  12518. <return-value transfer-ownership="full">
  12519. <doc xml:space="preserve">the #GstIterator of #GstPad.
  12520. MT safe.</doc>
  12521. <type name="Iterator" c:type="GstIterator*"/>
  12522. </return-value>
  12523. <parameters>
  12524. <instance-parameter name="element" transfer-ownership="none">
  12525. <doc xml:space="preserve">a #GstElement to iterate pads of.</doc>
  12526. <type name="Element" c:type="GstElement*"/>
  12527. </instance-parameter>
  12528. </parameters>
  12529. </method>
  12530. <method name="iterate_sink_pads"
  12531. c:identifier="gst_element_iterate_sink_pads">
  12532. <doc xml:space="preserve">Retrieves an iterator of @element's sink pads.
  12533. The order of pads returned by the iterator will be the order in which
  12534. the pads were added to the element.</doc>
  12535. <return-value transfer-ownership="full">
  12536. <doc xml:space="preserve">the #GstIterator of #GstPad.
  12537. MT safe.</doc>
  12538. <type name="Iterator" c:type="GstIterator*"/>
  12539. </return-value>
  12540. <parameters>
  12541. <instance-parameter name="element" transfer-ownership="none">
  12542. <doc xml:space="preserve">a #GstElement.</doc>
  12543. <type name="Element" c:type="GstElement*"/>
  12544. </instance-parameter>
  12545. </parameters>
  12546. </method>
  12547. <method name="iterate_src_pads"
  12548. c:identifier="gst_element_iterate_src_pads">
  12549. <doc xml:space="preserve">Retrieves an iterator of @element's source pads.
  12550. The order of pads returned by the iterator will be the order in which
  12551. the pads were added to the element.</doc>
  12552. <return-value transfer-ownership="full">
  12553. <doc xml:space="preserve">the #GstIterator of #GstPad.
  12554. MT safe.</doc>
  12555. <type name="Iterator" c:type="GstIterator*"/>
  12556. </return-value>
  12557. <parameters>
  12558. <instance-parameter name="element" transfer-ownership="none">
  12559. <doc xml:space="preserve">a #GstElement.</doc>
  12560. <type name="Element" c:type="GstElement*"/>
  12561. </instance-parameter>
  12562. </parameters>
  12563. </method>
  12564. <method name="link" c:identifier="gst_element_link">
  12565. <doc xml:space="preserve">Links @src to @dest. The link must be from source to
  12566. destination; the other direction will not be tried. The function looks for
  12567. existing pads that aren't linked yet. It will request new pads if necessary.
  12568. Such pads need to be released manually when unlinking.
  12569. If multiple links are possible, only one is established.
  12570. Make sure you have added your elements to a bin or pipeline with
  12571. gst_bin_add() before trying to link them.</doc>
  12572. <return-value transfer-ownership="none">
  12573. <doc xml:space="preserve">%TRUE if the elements could be linked, %FALSE otherwise.</doc>
  12574. <type name="gboolean" c:type="gboolean"/>
  12575. </return-value>
  12576. <parameters>
  12577. <instance-parameter name="src" transfer-ownership="none">
  12578. <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
  12579. <type name="Element" c:type="GstElement*"/>
  12580. </instance-parameter>
  12581. <parameter name="dest" transfer-ownership="none">
  12582. <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
  12583. <type name="Element" c:type="GstElement*"/>
  12584. </parameter>
  12585. </parameters>
  12586. </method>
  12587. <method name="link_filtered" c:identifier="gst_element_link_filtered">
  12588. <doc xml:space="preserve">Links @src to @dest using the given caps as filtercaps.
  12589. The link must be from source to
  12590. destination; the other direction will not be tried. The function looks for
  12591. existing pads that aren't linked yet. It will request new pads if necessary.
  12592. If multiple links are possible, only one is established.
  12593. Make sure you have added your elements to a bin or pipeline with
  12594. gst_bin_add() before trying to link them.</doc>
  12595. <return-value transfer-ownership="none">
  12596. <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
  12597. <type name="gboolean" c:type="gboolean"/>
  12598. </return-value>
  12599. <parameters>
  12600. <instance-parameter name="src" transfer-ownership="none">
  12601. <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
  12602. <type name="Element" c:type="GstElement*"/>
  12603. </instance-parameter>
  12604. <parameter name="dest" transfer-ownership="none">
  12605. <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
  12606. <type name="Element" c:type="GstElement*"/>
  12607. </parameter>
  12608. <parameter name="filter"
  12609. transfer-ownership="none"
  12610. nullable="1"
  12611. allow-none="1">
  12612. <doc xml:space="preserve">the #GstCaps to filter the link,
  12613. or %NULL for no filter.</doc>
  12614. <type name="Caps" c:type="GstCaps*"/>
  12615. </parameter>
  12616. </parameters>
  12617. </method>
  12618. <method name="link_many"
  12619. c:identifier="gst_element_link_many"
  12620. introspectable="0">
  12621. <doc xml:space="preserve">Chain together a series of elements. Uses gst_element_link().
  12622. Make sure you have added your elements to a bin or pipeline with
  12623. gst_bin_add() before trying to link them.</doc>
  12624. <return-value transfer-ownership="none">
  12625. <doc xml:space="preserve">%TRUE on success, %FALSE otherwise.</doc>
  12626. <type name="gboolean" c:type="gboolean"/>
  12627. </return-value>
  12628. <parameters>
  12629. <instance-parameter name="element_1" transfer-ownership="none">
  12630. <doc xml:space="preserve">the first #GstElement in the link chain.</doc>
  12631. <type name="Element" c:type="GstElement*"/>
  12632. </instance-parameter>
  12633. <parameter name="element_2" transfer-ownership="none">
  12634. <doc xml:space="preserve">the second #GstElement in the link chain.</doc>
  12635. <type name="Element" c:type="GstElement*"/>
  12636. </parameter>
  12637. <parameter name="..." transfer-ownership="none">
  12638. <doc xml:space="preserve">the %NULL-terminated list of elements to link in order.</doc>
  12639. <varargs/>
  12640. </parameter>
  12641. </parameters>
  12642. </method>
  12643. <method name="link_pads" c:identifier="gst_element_link_pads">
  12644. <doc xml:space="preserve">Links the two named pads of the source and destination elements.
  12645. Side effect is that if one of the pads has no parent, it becomes a
  12646. child of the parent of the other element. If they have different
  12647. parents, the link fails.</doc>
  12648. <return-value transfer-ownership="none">
  12649. <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
  12650. <type name="gboolean" c:type="gboolean"/>
  12651. </return-value>
  12652. <parameters>
  12653. <instance-parameter name="src" transfer-ownership="none">
  12654. <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
  12655. <type name="Element" c:type="GstElement*"/>
  12656. </instance-parameter>
  12657. <parameter name="srcpadname"
  12658. transfer-ownership="none"
  12659. nullable="1"
  12660. allow-none="1">
  12661. <doc xml:space="preserve">the name of the #GstPad in source element
  12662. or %NULL for any pad.</doc>
  12663. <type name="utf8" c:type="const gchar*"/>
  12664. </parameter>
  12665. <parameter name="dest" transfer-ownership="none">
  12666. <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
  12667. <type name="Element" c:type="GstElement*"/>
  12668. </parameter>
  12669. <parameter name="destpadname"
  12670. transfer-ownership="none"
  12671. nullable="1"
  12672. allow-none="1">
  12673. <doc xml:space="preserve">the name of the #GstPad in destination element,
  12674. or %NULL for any pad.</doc>
  12675. <type name="utf8" c:type="const gchar*"/>
  12676. </parameter>
  12677. </parameters>
  12678. </method>
  12679. <method name="link_pads_filtered"
  12680. c:identifier="gst_element_link_pads_filtered">
  12681. <doc xml:space="preserve">Links the two named pads of the source and destination elements. Side effect
  12682. is that if one of the pads has no parent, it becomes a child of the parent of
  12683. the other element. If they have different parents, the link fails. If @caps
  12684. is not %NULL, makes sure that the caps of the link is a subset of @caps.</doc>
  12685. <return-value transfer-ownership="none">
  12686. <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
  12687. <type name="gboolean" c:type="gboolean"/>
  12688. </return-value>
  12689. <parameters>
  12690. <instance-parameter name="src" transfer-ownership="none">
  12691. <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
  12692. <type name="Element" c:type="GstElement*"/>
  12693. </instance-parameter>
  12694. <parameter name="srcpadname"
  12695. transfer-ownership="none"
  12696. nullable="1"
  12697. allow-none="1">
  12698. <doc xml:space="preserve">the name of the #GstPad in source element
  12699. or %NULL for any pad.</doc>
  12700. <type name="utf8" c:type="const gchar*"/>
  12701. </parameter>
  12702. <parameter name="dest" transfer-ownership="none">
  12703. <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
  12704. <type name="Element" c:type="GstElement*"/>
  12705. </parameter>
  12706. <parameter name="destpadname"
  12707. transfer-ownership="none"
  12708. nullable="1"
  12709. allow-none="1">
  12710. <doc xml:space="preserve">the name of the #GstPad in destination element
  12711. or %NULL for any pad.</doc>
  12712. <type name="utf8" c:type="const gchar*"/>
  12713. </parameter>
  12714. <parameter name="filter"
  12715. transfer-ownership="none"
  12716. nullable="1"
  12717. allow-none="1">
  12718. <doc xml:space="preserve">the #GstCaps to filter the link,
  12719. or %NULL for no filter.</doc>
  12720. <type name="Caps" c:type="GstCaps*"/>
  12721. </parameter>
  12722. </parameters>
  12723. </method>
  12724. <method name="link_pads_full" c:identifier="gst_element_link_pads_full">
  12725. <doc xml:space="preserve">Links the two named pads of the source and destination elements.
  12726. Side effect is that if one of the pads has no parent, it becomes a
  12727. child of the parent of the other element. If they have different
  12728. parents, the link fails.
  12729. Calling gst_element_link_pads_full() with @flags == %GST_PAD_LINK_CHECK_DEFAULT
  12730. is the same as calling gst_element_link_pads() and the recommended way of
  12731. linking pads with safety checks applied.
  12732. This is a convenience function for gst_pad_link_full().</doc>
  12733. <return-value transfer-ownership="none">
  12734. <doc xml:space="preserve">%TRUE if the pads could be linked, %FALSE otherwise.</doc>
  12735. <type name="gboolean" c:type="gboolean"/>
  12736. </return-value>
  12737. <parameters>
  12738. <instance-parameter name="src" transfer-ownership="none">
  12739. <doc xml:space="preserve">a #GstElement containing the source pad.</doc>
  12740. <type name="Element" c:type="GstElement*"/>
  12741. </instance-parameter>
  12742. <parameter name="srcpadname"
  12743. transfer-ownership="none"
  12744. nullable="1"
  12745. allow-none="1">
  12746. <doc xml:space="preserve">the name of the #GstPad in source element
  12747. or %NULL for any pad.</doc>
  12748. <type name="utf8" c:type="const gchar*"/>
  12749. </parameter>
  12750. <parameter name="dest" transfer-ownership="none">
  12751. <doc xml:space="preserve">the #GstElement containing the destination pad.</doc>
  12752. <type name="Element" c:type="GstElement*"/>
  12753. </parameter>
  12754. <parameter name="destpadname"
  12755. transfer-ownership="none"
  12756. nullable="1"
  12757. allow-none="1">
  12758. <doc xml:space="preserve">the name of the #GstPad in destination element,
  12759. or %NULL for any pad.</doc>
  12760. <type name="utf8" c:type="const gchar*"/>
  12761. </parameter>
  12762. <parameter name="flags" transfer-ownership="none">
  12763. <doc xml:space="preserve">the #GstPadLinkCheck to be performed when linking pads.</doc>
  12764. <type name="PadLinkCheck" c:type="GstPadLinkCheck"/>
  12765. </parameter>
  12766. </parameters>
  12767. </method>
  12768. <method name="lost_state" c:identifier="gst_element_lost_state">
  12769. <doc xml:space="preserve">Brings the element to the lost state. The current state of the
  12770. element is copied to the pending state so that any call to
  12771. gst_element_get_state() will return %GST_STATE_CHANGE_ASYNC.
  12772. An ASYNC_START message is posted. If the element was PLAYING, it will
  12773. go to PAUSED. The element will be restored to its PLAYING state by
  12774. the parent pipeline when it prerolls again.
  12775. This is mostly used for elements that lost their preroll buffer
  12776. in the %GST_STATE_PAUSED or %GST_STATE_PLAYING state after a flush,
  12777. they will go to their pending state again when a new preroll buffer is
  12778. queued. This function can only be called when the element is currently
  12779. not in error or an async state change.
  12780. This function is used internally and should normally not be called from
  12781. plugins or applications.</doc>
  12782. <return-value transfer-ownership="none">
  12783. <type name="none" c:type="void"/>
  12784. </return-value>
  12785. <parameters>
  12786. <instance-parameter name="element" transfer-ownership="none">
  12787. <doc xml:space="preserve">a #GstElement the state is lost of</doc>
  12788. <type name="Element" c:type="GstElement*"/>
  12789. </instance-parameter>
  12790. </parameters>
  12791. </method>
  12792. <method name="message_full" c:identifier="gst_element_message_full">
  12793. <doc xml:space="preserve">Post an error, warning or info message on the bus from inside an element.
  12794. @type must be of #GST_MESSAGE_ERROR, #GST_MESSAGE_WARNING or
  12795. #GST_MESSAGE_INFO.
  12796. MT safe.</doc>
  12797. <return-value transfer-ownership="none">
  12798. <type name="none" c:type="void"/>
  12799. </return-value>
  12800. <parameters>
  12801. <instance-parameter name="element" transfer-ownership="none">
  12802. <doc xml:space="preserve">a #GstElement to send message from</doc>
  12803. <type name="Element" c:type="GstElement*"/>
  12804. </instance-parameter>
  12805. <parameter name="type" transfer-ownership="none">
  12806. <doc xml:space="preserve">the #GstMessageType</doc>
  12807. <type name="MessageType" c:type="GstMessageType"/>
  12808. </parameter>
  12809. <parameter name="domain" transfer-ownership="none">
  12810. <doc xml:space="preserve">the GStreamer GError domain this message belongs to</doc>
  12811. <type name="GLib.Quark" c:type="GQuark"/>
  12812. </parameter>
  12813. <parameter name="code" transfer-ownership="none">
  12814. <doc xml:space="preserve">the GError code belonging to the domain</doc>
  12815. <type name="gint" c:type="gint"/>
  12816. </parameter>
  12817. <parameter name="text"
  12818. transfer-ownership="full"
  12819. nullable="1"
  12820. allow-none="1">
  12821. <doc xml:space="preserve">an allocated text string to be used
  12822. as a replacement for the default message connected to code,
  12823. or %NULL</doc>
  12824. <type name="utf8" c:type="gchar*"/>
  12825. </parameter>
  12826. <parameter name="debug"
  12827. transfer-ownership="full"
  12828. nullable="1"
  12829. allow-none="1">
  12830. <doc xml:space="preserve">an allocated debug message to be
  12831. used as a replacement for the default debugging information,
  12832. or %NULL</doc>
  12833. <type name="utf8" c:type="gchar*"/>
  12834. </parameter>
  12835. <parameter name="file" transfer-ownership="none">
  12836. <doc xml:space="preserve">the source code file where the error was generated</doc>
  12837. <type name="utf8" c:type="const gchar*"/>
  12838. </parameter>
  12839. <parameter name="function" transfer-ownership="none">
  12840. <doc xml:space="preserve">the source code function where the error was generated</doc>
  12841. <type name="utf8" c:type="const gchar*"/>
  12842. </parameter>
  12843. <parameter name="line" transfer-ownership="none">
  12844. <doc xml:space="preserve">the source code line where the error was generated</doc>
  12845. <type name="gint" c:type="gint"/>
  12846. </parameter>
  12847. </parameters>
  12848. </method>
  12849. <method name="no_more_pads" c:identifier="gst_element_no_more_pads">
  12850. <doc xml:space="preserve">Use this function to signal that the element does not expect any more pads
  12851. to show up in the current pipeline. This function should be called whenever
  12852. pads have been added by the element itself. Elements with #GST_PAD_SOMETIMES
  12853. pad templates use this in combination with autopluggers to figure out that
  12854. the element is done initializing its pads.
  12855. This function emits the #GstElement::no-more-pads signal.
  12856. MT safe.</doc>
  12857. <return-value transfer-ownership="none">
  12858. <type name="none" c:type="void"/>
  12859. </return-value>
  12860. <parameters>
  12861. <instance-parameter name="element" transfer-ownership="none">
  12862. <doc xml:space="preserve">a #GstElement</doc>
  12863. <type name="Element" c:type="GstElement*"/>
  12864. </instance-parameter>
  12865. </parameters>
  12866. </method>
  12867. <method name="post_message" c:identifier="gst_element_post_message">
  12868. <doc xml:space="preserve">Post a message on the element's #GstBus. This function takes ownership of the
  12869. message; if you want to access the message after this call, you should add an
  12870. additional reference before calling.</doc>
  12871. <return-value transfer-ownership="none">
  12872. <doc xml:space="preserve">%TRUE if the message was successfully posted. The function returns
  12873. %FALSE if the element did not have a bus.
  12874. MT safe.</doc>
  12875. <type name="gboolean" c:type="gboolean"/>
  12876. </return-value>
  12877. <parameters>
  12878. <instance-parameter name="element" transfer-ownership="none">
  12879. <doc xml:space="preserve">a #GstElement posting the message</doc>
  12880. <type name="Element" c:type="GstElement*"/>
  12881. </instance-parameter>
  12882. <parameter name="message" transfer-ownership="full">
  12883. <doc xml:space="preserve">a #GstMessage to post</doc>
  12884. <type name="Message" c:type="GstMessage*"/>
  12885. </parameter>
  12886. </parameters>
  12887. </method>
  12888. <method name="provide_clock" c:identifier="gst_element_provide_clock">
  12889. <doc xml:space="preserve">Get the clock provided by the given element.
  12890. &lt;note&gt;An element is only required to provide a clock in the PAUSED
  12891. state. Some elements can provide a clock in other states.&lt;/note&gt;</doc>
  12892. <return-value transfer-ownership="full" nullable="1">
  12893. <doc xml:space="preserve">the GstClock provided by the
  12894. element or %NULL if no clock could be provided. Unref after usage.
  12895. MT safe.</doc>
  12896. <type name="Clock" c:type="GstClock*"/>
  12897. </return-value>
  12898. <parameters>
  12899. <instance-parameter name="element" transfer-ownership="none">
  12900. <doc xml:space="preserve">a #GstElement to query</doc>
  12901. <type name="Element" c:type="GstElement*"/>
  12902. </instance-parameter>
  12903. </parameters>
  12904. </method>
  12905. <method name="query" c:identifier="gst_element_query">
  12906. <doc xml:space="preserve">Performs a query on the given element.
  12907. For elements that don't implement a query handler, this function
  12908. forwards the query to a random srcpad or to the peer of a
  12909. random linked sinkpad of this element.
  12910. Please note that some queries might need a running pipeline to work.</doc>
  12911. <return-value transfer-ownership="none">
  12912. <doc xml:space="preserve">%TRUE if the query could be performed.
  12913. MT safe.</doc>
  12914. <type name="gboolean" c:type="gboolean"/>
  12915. </return-value>
  12916. <parameters>
  12917. <instance-parameter name="element" transfer-ownership="none">
  12918. <doc xml:space="preserve">a #GstElement to perform the query on.</doc>
  12919. <type name="Element" c:type="GstElement*"/>
  12920. </instance-parameter>
  12921. <parameter name="query" transfer-ownership="none">
  12922. <doc xml:space="preserve">the #GstQuery.</doc>
  12923. <type name="Query" c:type="GstQuery*"/>
  12924. </parameter>
  12925. </parameters>
  12926. </method>
  12927. <method name="query_convert" c:identifier="gst_element_query_convert">
  12928. <doc xml:space="preserve">Queries an element to convert @src_val in @src_format to @dest_format.</doc>
  12929. <return-value transfer-ownership="none">
  12930. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  12931. <type name="gboolean" c:type="gboolean"/>
  12932. </return-value>
  12933. <parameters>
  12934. <instance-parameter name="element" transfer-ownership="none">
  12935. <doc xml:space="preserve">a #GstElement to invoke the convert query on.</doc>
  12936. <type name="Element" c:type="GstElement*"/>
  12937. </instance-parameter>
  12938. <parameter name="src_format" transfer-ownership="none">
  12939. <doc xml:space="preserve">a #GstFormat to convert from.</doc>
  12940. <type name="Format" c:type="GstFormat"/>
  12941. </parameter>
  12942. <parameter name="src_val" transfer-ownership="none">
  12943. <doc xml:space="preserve">a value to convert.</doc>
  12944. <type name="gint64" c:type="gint64"/>
  12945. </parameter>
  12946. <parameter name="dest_format" transfer-ownership="none">
  12947. <doc xml:space="preserve">the #GstFormat to convert to.</doc>
  12948. <type name="Format" c:type="GstFormat"/>
  12949. </parameter>
  12950. <parameter name="dest_val"
  12951. direction="out"
  12952. caller-allocates="0"
  12953. transfer-ownership="full">
  12954. <doc xml:space="preserve">a pointer to the result.</doc>
  12955. <type name="gint64" c:type="gint64*"/>
  12956. </parameter>
  12957. </parameters>
  12958. </method>
  12959. <method name="query_duration" c:identifier="gst_element_query_duration">
  12960. <doc xml:space="preserve">Queries an element (usually top-level pipeline or playbin element) for the
  12961. total stream duration in nanoseconds. This query will only work once the
  12962. pipeline is prerolled (i.e. reached PAUSED or PLAYING state). The application
  12963. will receive an ASYNC_DONE message on the pipeline bus when that is the case.
  12964. If the duration changes for some reason, you will get a DURATION_CHANGED
  12965. message on the pipeline bus, in which case you should re-query the duration
  12966. using this function.</doc>
  12967. <return-value transfer-ownership="none">
  12968. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  12969. <type name="gboolean" c:type="gboolean"/>
  12970. </return-value>
  12971. <parameters>
  12972. <instance-parameter name="element" transfer-ownership="none">
  12973. <doc xml:space="preserve">a #GstElement to invoke the duration query on.</doc>
  12974. <type name="Element" c:type="GstElement*"/>
  12975. </instance-parameter>
  12976. <parameter name="format" transfer-ownership="none">
  12977. <doc xml:space="preserve">the #GstFormat requested</doc>
  12978. <type name="Format" c:type="GstFormat"/>
  12979. </parameter>
  12980. <parameter name="duration"
  12981. direction="out"
  12982. caller-allocates="0"
  12983. transfer-ownership="full"
  12984. optional="1"
  12985. allow-none="1">
  12986. <doc xml:space="preserve">A location in which to store the total duration, or %NULL.</doc>
  12987. <type name="gint64" c:type="gint64*"/>
  12988. </parameter>
  12989. </parameters>
  12990. </method>
  12991. <method name="query_position" c:identifier="gst_element_query_position">
  12992. <doc xml:space="preserve">Queries an element (usually top-level pipeline or playbin element) for the
  12993. stream position in nanoseconds. This will be a value between 0 and the
  12994. stream duration (if the stream duration is known). This query will usually
  12995. only work once the pipeline is prerolled (i.e. reached PAUSED or PLAYING
  12996. state). The application will receive an ASYNC_DONE message on the pipeline
  12997. bus when that is the case.
  12998. If one repeatedly calls this function one can also create a query and reuse
  12999. it in gst_element_query().</doc>
  13000. <return-value transfer-ownership="none">
  13001. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  13002. <type name="gboolean" c:type="gboolean"/>
  13003. </return-value>
  13004. <parameters>
  13005. <instance-parameter name="element" transfer-ownership="none">
  13006. <doc xml:space="preserve">a #GstElement to invoke the position query on.</doc>
  13007. <type name="Element" c:type="GstElement*"/>
  13008. </instance-parameter>
  13009. <parameter name="format" transfer-ownership="none">
  13010. <doc xml:space="preserve">the #GstFormat requested</doc>
  13011. <type name="Format" c:type="GstFormat"/>
  13012. </parameter>
  13013. <parameter name="cur"
  13014. direction="out"
  13015. caller-allocates="0"
  13016. transfer-ownership="full"
  13017. optional="1"
  13018. allow-none="1">
  13019. <doc xml:space="preserve">a location in which to store the current
  13020. position, or %NULL.</doc>
  13021. <type name="gint64" c:type="gint64*"/>
  13022. </parameter>
  13023. </parameters>
  13024. </method>
  13025. <method name="release_request_pad"
  13026. c:identifier="gst_element_release_request_pad">
  13027. <doc xml:space="preserve">Makes the element free the previously requested pad as obtained
  13028. with gst_element_request_pad().
  13029. This does not unref the pad. If the pad was created by using
  13030. gst_element_request_pad(), gst_element_release_request_pad() needs to be
  13031. followed by gst_object_unref() to free the @pad.
  13032. MT safe.</doc>
  13033. <return-value transfer-ownership="none">
  13034. <type name="none" c:type="void"/>
  13035. </return-value>
  13036. <parameters>
  13037. <instance-parameter name="element" transfer-ownership="none">
  13038. <doc xml:space="preserve">a #GstElement to release the request pad of.</doc>
  13039. <type name="Element" c:type="GstElement*"/>
  13040. </instance-parameter>
  13041. <parameter name="pad" transfer-ownership="none">
  13042. <doc xml:space="preserve">the #GstPad to release.</doc>
  13043. <type name="Pad" c:type="GstPad*"/>
  13044. </parameter>
  13045. </parameters>
  13046. </method>
  13047. <method name="remove_pad" c:identifier="gst_element_remove_pad">
  13048. <doc xml:space="preserve">Removes @pad from @element. @pad will be destroyed if it has not been
  13049. referenced elsewhere using gst_object_unparent().
  13050. This function is used by plugin developers and should not be used
  13051. by applications. Pads that were dynamically requested from elements
  13052. with gst_element_request_pad() should be released with the
  13053. gst_element_release_request_pad() function instead.
  13054. Pads are not automatically deactivated so elements should perform the needed
  13055. steps to deactivate the pad in case this pad is removed in the PAUSED or
  13056. PLAYING state. See gst_pad_set_active() for more information about
  13057. deactivating pads.
  13058. The pad and the element should be unlocked when calling this function.
  13059. This function will emit the #GstElement::pad-removed signal on the element.</doc>
  13060. <return-value transfer-ownership="none">
  13061. <doc xml:space="preserve">%TRUE if the pad could be removed. Can return %FALSE if the
  13062. pad does not belong to the provided element.
  13063. MT safe.</doc>
  13064. <type name="gboolean" c:type="gboolean"/>
  13065. </return-value>
  13066. <parameters>
  13067. <instance-parameter name="element" transfer-ownership="none">
  13068. <doc xml:space="preserve">a #GstElement to remove pad from.</doc>
  13069. <type name="Element" c:type="GstElement*"/>
  13070. </instance-parameter>
  13071. <parameter name="pad" transfer-ownership="full">
  13072. <doc xml:space="preserve">the #GstPad to remove from the element.</doc>
  13073. <type name="Pad" c:type="GstPad*"/>
  13074. </parameter>
  13075. </parameters>
  13076. </method>
  13077. <method name="request_pad" c:identifier="gst_element_request_pad">
  13078. <doc xml:space="preserve">Retrieves a request pad from the element according to the provided template.
  13079. Pad templates can be looked up using
  13080. gst_element_factory_get_static_pad_templates().
  13081. The pad should be released with gst_element_release_request_pad().</doc>
  13082. <return-value transfer-ownership="full" nullable="1">
  13083. <doc xml:space="preserve">requested #GstPad if found,
  13084. otherwise %NULL. Release after usage.</doc>
  13085. <type name="Pad" c:type="GstPad*"/>
  13086. </return-value>
  13087. <parameters>
  13088. <instance-parameter name="element" transfer-ownership="none">
  13089. <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
  13090. <type name="Element" c:type="GstElement*"/>
  13091. </instance-parameter>
  13092. <parameter name="templ" transfer-ownership="none">
  13093. <doc xml:space="preserve">a #GstPadTemplate of which we want a pad of.</doc>
  13094. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  13095. </parameter>
  13096. <parameter name="name"
  13097. transfer-ownership="none"
  13098. nullable="1"
  13099. allow-none="1">
  13100. <doc xml:space="preserve">the name of the request #GstPad
  13101. to retrieve. Can be %NULL.</doc>
  13102. <type name="utf8" c:type="const gchar*"/>
  13103. </parameter>
  13104. <parameter name="caps"
  13105. transfer-ownership="none"
  13106. nullable="1"
  13107. allow-none="1">
  13108. <doc xml:space="preserve">the caps of the pad we want to
  13109. request. Can be %NULL.</doc>
  13110. <type name="Caps" c:type="const GstCaps*"/>
  13111. </parameter>
  13112. </parameters>
  13113. </method>
  13114. <method name="seek" c:identifier="gst_element_seek">
  13115. <doc xml:space="preserve">Sends a seek event to an element. See gst_event_new_seek() for the details of
  13116. the parameters. The seek event is sent to the element using
  13117. gst_element_send_event().
  13118. MT safe.</doc>
  13119. <return-value transfer-ownership="none">
  13120. <doc xml:space="preserve">%TRUE if the event was handled. Flushing seeks will trigger a
  13121. preroll, which will emit %GST_MESSAGE_ASYNC_DONE.</doc>
  13122. <type name="gboolean" c:type="gboolean"/>
  13123. </return-value>
  13124. <parameters>
  13125. <instance-parameter name="element" transfer-ownership="none">
  13126. <doc xml:space="preserve">a #GstElement to send the event to.</doc>
  13127. <type name="Element" c:type="GstElement*"/>
  13128. </instance-parameter>
  13129. <parameter name="rate" transfer-ownership="none">
  13130. <doc xml:space="preserve">The new playback rate</doc>
  13131. <type name="gdouble" c:type="gdouble"/>
  13132. </parameter>
  13133. <parameter name="format" transfer-ownership="none">
  13134. <doc xml:space="preserve">The format of the seek values</doc>
  13135. <type name="Format" c:type="GstFormat"/>
  13136. </parameter>
  13137. <parameter name="flags" transfer-ownership="none">
  13138. <doc xml:space="preserve">The optional seek flags.</doc>
  13139. <type name="SeekFlags" c:type="GstSeekFlags"/>
  13140. </parameter>
  13141. <parameter name="start_type" transfer-ownership="none">
  13142. <doc xml:space="preserve">The type and flags for the new start position</doc>
  13143. <type name="SeekType" c:type="GstSeekType"/>
  13144. </parameter>
  13145. <parameter name="start" transfer-ownership="none">
  13146. <doc xml:space="preserve">The value of the new start position</doc>
  13147. <type name="gint64" c:type="gint64"/>
  13148. </parameter>
  13149. <parameter name="stop_type" transfer-ownership="none">
  13150. <doc xml:space="preserve">The type and flags for the new stop position</doc>
  13151. <type name="SeekType" c:type="GstSeekType"/>
  13152. </parameter>
  13153. <parameter name="stop" transfer-ownership="none">
  13154. <doc xml:space="preserve">The value of the new stop position</doc>
  13155. <type name="gint64" c:type="gint64"/>
  13156. </parameter>
  13157. </parameters>
  13158. </method>
  13159. <method name="seek_simple" c:identifier="gst_element_seek_simple">
  13160. <doc xml:space="preserve">Simple API to perform a seek on the given element, meaning it just seeks
  13161. to the given position relative to the start of the stream. For more complex
  13162. operations like segment seeks (e.g. for looping) or changing the playback
  13163. rate or seeking relative to the last configured playback segment you should
  13164. use gst_element_seek().
  13165. In a completely prerolled PAUSED or PLAYING pipeline, seeking is always
  13166. guaranteed to return %TRUE on a seekable media type or %FALSE when the media
  13167. type is certainly not seekable (such as a live stream).
  13168. Some elements allow for seeking in the READY state, in this
  13169. case they will store the seek event and execute it when they are put to
  13170. PAUSED. If the element supports seek in READY, it will always return %TRUE when
  13171. it receives the event in the READY state.</doc>
  13172. <return-value transfer-ownership="none">
  13173. <doc xml:space="preserve">%TRUE if the seek operation succeeded. Flushing seeks will trigger a
  13174. preroll, which will emit %GST_MESSAGE_ASYNC_DONE.</doc>
  13175. <type name="gboolean" c:type="gboolean"/>
  13176. </return-value>
  13177. <parameters>
  13178. <instance-parameter name="element" transfer-ownership="none">
  13179. <doc xml:space="preserve">a #GstElement to seek on</doc>
  13180. <type name="Element" c:type="GstElement*"/>
  13181. </instance-parameter>
  13182. <parameter name="format" transfer-ownership="none">
  13183. <doc xml:space="preserve">a #GstFormat to execute the seek in, such as #GST_FORMAT_TIME</doc>
  13184. <type name="Format" c:type="GstFormat"/>
  13185. </parameter>
  13186. <parameter name="seek_flags" transfer-ownership="none">
  13187. <doc xml:space="preserve">seek options; playback applications will usually want to use
  13188. GST_SEEK_FLAG_FLUSH | GST_SEEK_FLAG_KEY_UNIT here</doc>
  13189. <type name="SeekFlags" c:type="GstSeekFlags"/>
  13190. </parameter>
  13191. <parameter name="seek_pos" transfer-ownership="none">
  13192. <doc xml:space="preserve">position to seek to (relative to the start); if you are doing
  13193. a seek in #GST_FORMAT_TIME this value is in nanoseconds -
  13194. multiply with #GST_SECOND to convert seconds to nanoseconds or
  13195. with #GST_MSECOND to convert milliseconds to nanoseconds.</doc>
  13196. <type name="gint64" c:type="gint64"/>
  13197. </parameter>
  13198. </parameters>
  13199. </method>
  13200. <method name="send_event" c:identifier="gst_element_send_event">
  13201. <doc xml:space="preserve">Sends an event to an element. If the element doesn't implement an
  13202. event handler, the event will be pushed on a random linked sink pad for
  13203. downstream events or a random linked source pad for upstream events.
  13204. This function takes ownership of the provided event so you should
  13205. gst_event_ref() it if you want to reuse the event after this call.
  13206. MT safe.</doc>
  13207. <return-value transfer-ownership="none">
  13208. <doc xml:space="preserve">%TRUE if the event was handled. Events that trigger a preroll (such
  13209. as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc>
  13210. <type name="gboolean" c:type="gboolean"/>
  13211. </return-value>
  13212. <parameters>
  13213. <instance-parameter name="element" transfer-ownership="none">
  13214. <doc xml:space="preserve">a #GstElement to send the event to.</doc>
  13215. <type name="Element" c:type="GstElement*"/>
  13216. </instance-parameter>
  13217. <parameter name="event" transfer-ownership="full">
  13218. <doc xml:space="preserve">the #GstEvent to send to the element.</doc>
  13219. <type name="Event" c:type="GstEvent*"/>
  13220. </parameter>
  13221. </parameters>
  13222. </method>
  13223. <method name="set_base_time" c:identifier="gst_element_set_base_time">
  13224. <doc xml:space="preserve">Set the base time of an element. See gst_element_get_base_time().
  13225. MT safe.</doc>
  13226. <return-value transfer-ownership="none">
  13227. <type name="none" c:type="void"/>
  13228. </return-value>
  13229. <parameters>
  13230. <instance-parameter name="element" transfer-ownership="none">
  13231. <doc xml:space="preserve">a #GstElement.</doc>
  13232. <type name="Element" c:type="GstElement*"/>
  13233. </instance-parameter>
  13234. <parameter name="time" transfer-ownership="none">
  13235. <doc xml:space="preserve">the base time to set.</doc>
  13236. <type name="ClockTime" c:type="GstClockTime"/>
  13237. </parameter>
  13238. </parameters>
  13239. </method>
  13240. <method name="set_bus" c:identifier="gst_element_set_bus">
  13241. <doc xml:space="preserve">Sets the bus of the element. Increases the refcount on the bus.
  13242. For internal use only, unless you're testing elements.
  13243. MT safe.</doc>
  13244. <return-value transfer-ownership="none">
  13245. <type name="none" c:type="void"/>
  13246. </return-value>
  13247. <parameters>
  13248. <instance-parameter name="element" transfer-ownership="none">
  13249. <doc xml:space="preserve">a #GstElement to set the bus of.</doc>
  13250. <type name="Element" c:type="GstElement*"/>
  13251. </instance-parameter>
  13252. <parameter name="bus" transfer-ownership="none">
  13253. <doc xml:space="preserve">the #GstBus to set.</doc>
  13254. <type name="Bus" c:type="GstBus*"/>
  13255. </parameter>
  13256. </parameters>
  13257. </method>
  13258. <method name="set_clock" c:identifier="gst_element_set_clock">
  13259. <doc xml:space="preserve">Sets the clock for the element. This function increases the
  13260. refcount on the clock. Any previously set clock on the object
  13261. is unreffed.</doc>
  13262. <return-value transfer-ownership="none">
  13263. <doc xml:space="preserve">%TRUE if the element accepted the clock. An element can refuse a
  13264. clock when it, for example, is not able to slave its internal clock to the
  13265. @clock or when it requires a specific clock to operate.
  13266. MT safe.</doc>
  13267. <type name="gboolean" c:type="gboolean"/>
  13268. </return-value>
  13269. <parameters>
  13270. <instance-parameter name="element" transfer-ownership="none">
  13271. <doc xml:space="preserve">a #GstElement to set the clock for.</doc>
  13272. <type name="Element" c:type="GstElement*"/>
  13273. </instance-parameter>
  13274. <parameter name="clock" transfer-ownership="none">
  13275. <doc xml:space="preserve">the #GstClock to set for the element.</doc>
  13276. <type name="Clock" c:type="GstClock*"/>
  13277. </parameter>
  13278. </parameters>
  13279. </method>
  13280. <method name="set_context" c:identifier="gst_element_set_context">
  13281. <doc xml:space="preserve">Sets the context of the element. Increases the refcount of the context.
  13282. MT safe.</doc>
  13283. <return-value transfer-ownership="none">
  13284. <type name="none" c:type="void"/>
  13285. </return-value>
  13286. <parameters>
  13287. <instance-parameter name="element" transfer-ownership="none">
  13288. <doc xml:space="preserve">a #GstElement to set the context of.</doc>
  13289. <type name="Element" c:type="GstElement*"/>
  13290. </instance-parameter>
  13291. <parameter name="context" transfer-ownership="none">
  13292. <doc xml:space="preserve">the #GstContext to set.</doc>
  13293. <type name="Context" c:type="GstContext*"/>
  13294. </parameter>
  13295. </parameters>
  13296. </method>
  13297. <method name="set_locked_state"
  13298. c:identifier="gst_element_set_locked_state">
  13299. <doc xml:space="preserve">Locks the state of an element, so state changes of the parent don't affect
  13300. this element anymore.
  13301. MT safe.</doc>
  13302. <return-value transfer-ownership="none">
  13303. <doc xml:space="preserve">%TRUE if the state was changed, %FALSE if bad parameters were given
  13304. or the elements state-locking needed no change.</doc>
  13305. <type name="gboolean" c:type="gboolean"/>
  13306. </return-value>
  13307. <parameters>
  13308. <instance-parameter name="element" transfer-ownership="none">
  13309. <doc xml:space="preserve">a #GstElement</doc>
  13310. <type name="Element" c:type="GstElement*"/>
  13311. </instance-parameter>
  13312. <parameter name="locked_state" transfer-ownership="none">
  13313. <doc xml:space="preserve">%TRUE to lock the element's state</doc>
  13314. <type name="gboolean" c:type="gboolean"/>
  13315. </parameter>
  13316. </parameters>
  13317. </method>
  13318. <method name="set_start_time" c:identifier="gst_element_set_start_time">
  13319. <doc xml:space="preserve">Set the start time of an element. The start time of the element is the
  13320. running time of the element when it last went to the PAUSED state. In READY
  13321. or after a flushing seek, it is set to 0.
  13322. Toplevel elements like #GstPipeline will manage the start_time and
  13323. base_time on its children. Setting the start_time to #GST_CLOCK_TIME_NONE
  13324. on such a toplevel element will disable the distribution of the base_time to
  13325. the children and can be useful if the application manages the base_time
  13326. itself, for example if you want to synchronize capture from multiple
  13327. pipelines, and you can also ensure that the pipelines have the same clock.
  13328. MT safe.</doc>
  13329. <return-value transfer-ownership="none">
  13330. <type name="none" c:type="void"/>
  13331. </return-value>
  13332. <parameters>
  13333. <instance-parameter name="element" transfer-ownership="none">
  13334. <doc xml:space="preserve">a #GstElement.</doc>
  13335. <type name="Element" c:type="GstElement*"/>
  13336. </instance-parameter>
  13337. <parameter name="time" transfer-ownership="none">
  13338. <doc xml:space="preserve">the base time to set.</doc>
  13339. <type name="ClockTime" c:type="GstClockTime"/>
  13340. </parameter>
  13341. </parameters>
  13342. </method>
  13343. <method name="set_state" c:identifier="gst_element_set_state">
  13344. <doc xml:space="preserve">Sets the state of the element. This function will try to set the
  13345. requested state by going through all the intermediary states and calling
  13346. the class's state change function for each.
  13347. This function can return #GST_STATE_CHANGE_ASYNC, in which case the
  13348. element will perform the remainder of the state change asynchronously in
  13349. another thread.
  13350. An application can use gst_element_get_state() to wait for the completion
  13351. of the state change or it can wait for a %GST_MESSAGE_ASYNC_DONE or
  13352. %GST_MESSAGE_STATE_CHANGED on the bus.
  13353. State changes to %GST_STATE_READY or %GST_STATE_NULL never return
  13354. #GST_STATE_CHANGE_ASYNC.</doc>
  13355. <return-value transfer-ownership="none">
  13356. <doc xml:space="preserve">Result of the state change using #GstStateChangeReturn.
  13357. MT safe.</doc>
  13358. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  13359. </return-value>
  13360. <parameters>
  13361. <instance-parameter name="element" transfer-ownership="none">
  13362. <doc xml:space="preserve">a #GstElement to change state of.</doc>
  13363. <type name="Element" c:type="GstElement*"/>
  13364. </instance-parameter>
  13365. <parameter name="state" transfer-ownership="none">
  13366. <doc xml:space="preserve">the element's new #GstState.</doc>
  13367. <type name="State" c:type="GstState"/>
  13368. </parameter>
  13369. </parameters>
  13370. </method>
  13371. <method name="sync_state_with_parent"
  13372. c:identifier="gst_element_sync_state_with_parent">
  13373. <doc xml:space="preserve">Tries to change the state of the element to the same as its parent.
  13374. If this function returns %FALSE, the state of element is undefined.</doc>
  13375. <return-value transfer-ownership="none">
  13376. <doc xml:space="preserve">%TRUE, if the element's state could be synced to the parent's state.
  13377. MT safe.</doc>
  13378. <type name="gboolean" c:type="gboolean"/>
  13379. </return-value>
  13380. <parameters>
  13381. <instance-parameter name="element" transfer-ownership="none">
  13382. <doc xml:space="preserve">a #GstElement.</doc>
  13383. <type name="Element" c:type="GstElement*"/>
  13384. </instance-parameter>
  13385. </parameters>
  13386. </method>
  13387. <method name="unlink" c:identifier="gst_element_unlink">
  13388. <doc xml:space="preserve">Unlinks all source pads of the source element with all sink pads
  13389. of the sink element to which they are linked.
  13390. If the link has been made using gst_element_link(), it could have created an
  13391. requestpad, which has to be released using gst_element_release_request_pad().</doc>
  13392. <return-value transfer-ownership="none">
  13393. <type name="none" c:type="void"/>
  13394. </return-value>
  13395. <parameters>
  13396. <instance-parameter name="src" transfer-ownership="none">
  13397. <doc xml:space="preserve">the source #GstElement to unlink.</doc>
  13398. <type name="Element" c:type="GstElement*"/>
  13399. </instance-parameter>
  13400. <parameter name="dest" transfer-ownership="none">
  13401. <doc xml:space="preserve">the sink #GstElement to unlink.</doc>
  13402. <type name="Element" c:type="GstElement*"/>
  13403. </parameter>
  13404. </parameters>
  13405. </method>
  13406. <method name="unlink_many"
  13407. c:identifier="gst_element_unlink_many"
  13408. introspectable="0">
  13409. <doc xml:space="preserve">Unlinks a series of elements. Uses gst_element_unlink().</doc>
  13410. <return-value transfer-ownership="none">
  13411. <type name="none" c:type="void"/>
  13412. </return-value>
  13413. <parameters>
  13414. <instance-parameter name="element_1" transfer-ownership="none">
  13415. <doc xml:space="preserve">the first #GstElement in the link chain.</doc>
  13416. <type name="Element" c:type="GstElement*"/>
  13417. </instance-parameter>
  13418. <parameter name="element_2" transfer-ownership="none">
  13419. <doc xml:space="preserve">the second #GstElement in the link chain.</doc>
  13420. <type name="Element" c:type="GstElement*"/>
  13421. </parameter>
  13422. <parameter name="..." transfer-ownership="none">
  13423. <doc xml:space="preserve">the %NULL-terminated list of elements to unlink in order.</doc>
  13424. <varargs/>
  13425. </parameter>
  13426. </parameters>
  13427. </method>
  13428. <method name="unlink_pads" c:identifier="gst_element_unlink_pads">
  13429. <doc xml:space="preserve">Unlinks the two named pads of the source and destination elements.
  13430. This is a convenience function for gst_pad_unlink().</doc>
  13431. <return-value transfer-ownership="none">
  13432. <type name="none" c:type="void"/>
  13433. </return-value>
  13434. <parameters>
  13435. <instance-parameter name="src" transfer-ownership="none">
  13436. <doc xml:space="preserve">a (transfer none): #GstElement containing the source pad.</doc>
  13437. <type name="Element" c:type="GstElement*"/>
  13438. </instance-parameter>
  13439. <parameter name="srcpadname" transfer-ownership="none">
  13440. <doc xml:space="preserve">the name of the #GstPad in source element.</doc>
  13441. <type name="utf8" c:type="const gchar*"/>
  13442. </parameter>
  13443. <parameter name="dest" transfer-ownership="none">
  13444. <doc xml:space="preserve">a #GstElement containing the destination pad.</doc>
  13445. <type name="Element" c:type="GstElement*"/>
  13446. </parameter>
  13447. <parameter name="destpadname" transfer-ownership="none">
  13448. <doc xml:space="preserve">the name of the #GstPad in destination element.</doc>
  13449. <type name="utf8" c:type="const gchar*"/>
  13450. </parameter>
  13451. </parameters>
  13452. </method>
  13453. <field name="object">
  13454. <type name="Object" c:type="GstObject"/>
  13455. </field>
  13456. <field name="state_lock">
  13457. <doc xml:space="preserve">Used to serialize execution of gst_element_set_state()</doc>
  13458. <type name="GLib.RecMutex" c:type="GRecMutex"/>
  13459. </field>
  13460. <field name="state_cond">
  13461. <doc xml:space="preserve">Used to signal completion of a state change</doc>
  13462. <type name="GLib.Cond" c:type="GCond"/>
  13463. </field>
  13464. <field name="state_cookie">
  13465. <doc xml:space="preserve">Used to detect concurrent execution of
  13466. gst_element_set_state() and gst_element_get_state()</doc>
  13467. <type name="guint32" c:type="guint32"/>
  13468. </field>
  13469. <field name="target_state">
  13470. <doc xml:space="preserve">the target state of an element as set by the application</doc>
  13471. <type name="State" c:type="GstState"/>
  13472. </field>
  13473. <field name="current_state">
  13474. <doc xml:space="preserve">the current state of an element</doc>
  13475. <type name="State" c:type="GstState"/>
  13476. </field>
  13477. <field name="next_state">
  13478. <doc xml:space="preserve">the next state of an element, can be #GST_STATE_VOID_PENDING if
  13479. the element is in the correct state.</doc>
  13480. <type name="State" c:type="GstState"/>
  13481. </field>
  13482. <field name="pending_state">
  13483. <doc xml:space="preserve">the final state the element should go to, can be
  13484. #GST_STATE_VOID_PENDING if the element is in the correct state</doc>
  13485. <type name="State" c:type="GstState"/>
  13486. </field>
  13487. <field name="last_return">
  13488. <doc xml:space="preserve">the last return value of an element state change</doc>
  13489. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  13490. </field>
  13491. <field name="bus">
  13492. <doc xml:space="preserve">the bus of the element. This bus is provided to the element by the
  13493. parent element or the application. A #GstPipeline has a bus of its own.</doc>
  13494. <type name="Bus" c:type="GstBus*"/>
  13495. </field>
  13496. <field name="clock">
  13497. <doc xml:space="preserve">the clock of the element. This clock is usually provided to the
  13498. element by the toplevel #GstPipeline.</doc>
  13499. <type name="Clock" c:type="GstClock*"/>
  13500. </field>
  13501. <field name="base_time">
  13502. <doc xml:space="preserve">the time of the clock right before the element is set to
  13503. PLAYING. Subtracting @base_time from the current clock time in the PLAYING
  13504. state will yield the running_time against the clock.</doc>
  13505. <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
  13506. </field>
  13507. <field name="start_time">
  13508. <doc xml:space="preserve">the running_time of the last PAUSED state</doc>
  13509. <type name="ClockTime" c:type="GstClockTime"/>
  13510. </field>
  13511. <field name="numpads">
  13512. <doc xml:space="preserve">number of pads of the element, includes both source and sink pads.</doc>
  13513. <type name="guint16" c:type="guint16"/>
  13514. </field>
  13515. <field name="pads">
  13516. <doc xml:space="preserve">list of pads</doc>
  13517. <type name="GLib.List" c:type="GList*">
  13518. <type name="Pad"/>
  13519. </type>
  13520. </field>
  13521. <field name="numsrcpads">
  13522. <doc xml:space="preserve">number of source pads of the element.</doc>
  13523. <type name="guint16" c:type="guint16"/>
  13524. </field>
  13525. <field name="srcpads">
  13526. <doc xml:space="preserve">list of source pads</doc>
  13527. <type name="GLib.List" c:type="GList*">
  13528. <type name="Pad"/>
  13529. </type>
  13530. </field>
  13531. <field name="numsinkpads">
  13532. <doc xml:space="preserve">number of sink pads of the element.</doc>
  13533. <type name="guint16" c:type="guint16"/>
  13534. </field>
  13535. <field name="sinkpads">
  13536. <doc xml:space="preserve">list of sink pads</doc>
  13537. <type name="GLib.List" c:type="GList*">
  13538. <type name="Pad"/>
  13539. </type>
  13540. </field>
  13541. <field name="pads_cookie">
  13542. <doc xml:space="preserve">updated whenever the a pad is added or removed</doc>
  13543. <type name="guint32" c:type="guint32"/>
  13544. </field>
  13545. <field name="contexts">
  13546. <type name="GLib.List" c:type="GList*">
  13547. <type name="gpointer" c:type="gpointer"/>
  13548. </type>
  13549. </field>
  13550. <field name="_gst_reserved" readable="0" private="1">
  13551. <array zero-terminated="0" c:type="gpointer" fixed-size="3">
  13552. <type name="gpointer" c:type="gpointer"/>
  13553. </array>
  13554. </field>
  13555. <glib:signal name="no-more-pads" when="last">
  13556. <doc xml:space="preserve">This signals that the element will not generate more dynamic pads.
  13557. Note that this signal will usually be emitted from the context of
  13558. the streaming thread.</doc>
  13559. <return-value transfer-ownership="none">
  13560. <type name="none" c:type="void"/>
  13561. </return-value>
  13562. </glib:signal>
  13563. <glib:signal name="pad-added" when="last">
  13564. <doc xml:space="preserve">a new #GstPad has been added to the element. Note that this signal will
  13565. usually be emitted from the context of the streaming thread. Also keep in
  13566. mind that if you add new elements to the pipeline in the signal handler
  13567. you will need to set them to the desired target state with
  13568. gst_element_set_state() or gst_element_sync_state_with_parent().</doc>
  13569. <return-value transfer-ownership="none">
  13570. <type name="none" c:type="void"/>
  13571. </return-value>
  13572. <parameters>
  13573. <parameter name="new_pad" transfer-ownership="none">
  13574. <doc xml:space="preserve">the pad that has been added</doc>
  13575. <type name="Pad"/>
  13576. </parameter>
  13577. </parameters>
  13578. </glib:signal>
  13579. <glib:signal name="pad-removed" when="last">
  13580. <doc xml:space="preserve">a #GstPad has been removed from the element</doc>
  13581. <return-value transfer-ownership="none">
  13582. <type name="none" c:type="void"/>
  13583. </return-value>
  13584. <parameters>
  13585. <parameter name="old_pad" transfer-ownership="none">
  13586. <doc xml:space="preserve">the pad that has been removed</doc>
  13587. <type name="Pad"/>
  13588. </parameter>
  13589. </parameters>
  13590. </glib:signal>
  13591. </class>
  13592. <record name="ElementClass"
  13593. c:type="GstElementClass"
  13594. glib:is-gtype-struct-for="Element">
  13595. <doc xml:space="preserve">GStreamer element class. Override the vmethods to implement the element
  13596. functionality.</doc>
  13597. <field name="parent_class">
  13598. <doc xml:space="preserve">the parent class structure</doc>
  13599. <type name="ObjectClass" c:type="GstObjectClass"/>
  13600. </field>
  13601. <field name="metadata">
  13602. <doc xml:space="preserve">metadata for elements of this class</doc>
  13603. <type name="gpointer" c:type="gpointer"/>
  13604. </field>
  13605. <field name="elementfactory">
  13606. <doc xml:space="preserve">the #GstElementFactory that creates these elements</doc>
  13607. <type name="ElementFactory" c:type="GstElementFactory*"/>
  13608. </field>
  13609. <field name="padtemplates">
  13610. <doc xml:space="preserve">a #GList of #GstPadTemplate</doc>
  13611. <type name="GLib.List" c:type="GList*">
  13612. <type name="gpointer" c:type="gpointer"/>
  13613. </type>
  13614. </field>
  13615. <field name="numpadtemplates">
  13616. <doc xml:space="preserve">the number of padtemplates</doc>
  13617. <type name="gint" c:type="gint"/>
  13618. </field>
  13619. <field name="pad_templ_cookie">
  13620. <doc xml:space="preserve">changed whenever the padtemplates change</doc>
  13621. <type name="guint32" c:type="guint32"/>
  13622. </field>
  13623. <field name="pad_added">
  13624. <callback name="pad_added">
  13625. <return-value transfer-ownership="none">
  13626. <type name="none" c:type="void"/>
  13627. </return-value>
  13628. <parameters>
  13629. <parameter name="element" transfer-ownership="none">
  13630. <type name="Element" c:type="GstElement*"/>
  13631. </parameter>
  13632. <parameter name="pad" transfer-ownership="none">
  13633. <type name="Pad" c:type="GstPad*"/>
  13634. </parameter>
  13635. </parameters>
  13636. </callback>
  13637. </field>
  13638. <field name="pad_removed">
  13639. <callback name="pad_removed">
  13640. <return-value transfer-ownership="none">
  13641. <type name="none" c:type="void"/>
  13642. </return-value>
  13643. <parameters>
  13644. <parameter name="element" transfer-ownership="none">
  13645. <type name="Element" c:type="GstElement*"/>
  13646. </parameter>
  13647. <parameter name="pad" transfer-ownership="none">
  13648. <type name="Pad" c:type="GstPad*"/>
  13649. </parameter>
  13650. </parameters>
  13651. </callback>
  13652. </field>
  13653. <field name="no_more_pads">
  13654. <callback name="no_more_pads">
  13655. <return-value transfer-ownership="none">
  13656. <type name="none" c:type="void"/>
  13657. </return-value>
  13658. <parameters>
  13659. <parameter name="element" transfer-ownership="none">
  13660. <doc xml:space="preserve">a #GstElement</doc>
  13661. <type name="Element" c:type="GstElement*"/>
  13662. </parameter>
  13663. </parameters>
  13664. </callback>
  13665. </field>
  13666. <field name="request_new_pad">
  13667. <callback name="request_new_pad">
  13668. <return-value transfer-ownership="full" nullable="1">
  13669. <doc xml:space="preserve">requested #GstPad if found,
  13670. otherwise %NULL. Release after usage.</doc>
  13671. <type name="Pad" c:type="GstPad*"/>
  13672. </return-value>
  13673. <parameters>
  13674. <parameter name="element" transfer-ownership="none">
  13675. <doc xml:space="preserve">a #GstElement to find a request pad of.</doc>
  13676. <type name="Element" c:type="GstElement*"/>
  13677. </parameter>
  13678. <parameter name="templ" transfer-ownership="none">
  13679. <doc xml:space="preserve">a #GstPadTemplate of which we want a pad of.</doc>
  13680. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  13681. </parameter>
  13682. <parameter name="name"
  13683. transfer-ownership="none"
  13684. nullable="1"
  13685. allow-none="1">
  13686. <doc xml:space="preserve">the name of the request #GstPad
  13687. to retrieve. Can be %NULL.</doc>
  13688. <type name="utf8" c:type="const gchar*"/>
  13689. </parameter>
  13690. <parameter name="caps"
  13691. transfer-ownership="none"
  13692. nullable="1"
  13693. allow-none="1">
  13694. <doc xml:space="preserve">the caps of the pad we want to
  13695. request. Can be %NULL.</doc>
  13696. <type name="Caps" c:type="const GstCaps*"/>
  13697. </parameter>
  13698. </parameters>
  13699. </callback>
  13700. </field>
  13701. <field name="release_pad">
  13702. <callback name="release_pad">
  13703. <return-value transfer-ownership="none">
  13704. <type name="none" c:type="void"/>
  13705. </return-value>
  13706. <parameters>
  13707. <parameter name="element" transfer-ownership="none">
  13708. <type name="Element" c:type="GstElement*"/>
  13709. </parameter>
  13710. <parameter name="pad" transfer-ownership="none">
  13711. <type name="Pad" c:type="GstPad*"/>
  13712. </parameter>
  13713. </parameters>
  13714. </callback>
  13715. </field>
  13716. <field name="get_state">
  13717. <callback name="get_state">
  13718. <return-value transfer-ownership="none">
  13719. <doc xml:space="preserve">%GST_STATE_CHANGE_SUCCESS if the element has no more pending state
  13720. and the last state change succeeded, %GST_STATE_CHANGE_ASYNC if the
  13721. element is still performing a state change or
  13722. %GST_STATE_CHANGE_FAILURE if the last state change failed.
  13723. MT safe.</doc>
  13724. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  13725. </return-value>
  13726. <parameters>
  13727. <parameter name="element" transfer-ownership="none">
  13728. <doc xml:space="preserve">a #GstElement to get the state of.</doc>
  13729. <type name="Element" c:type="GstElement*"/>
  13730. </parameter>
  13731. <parameter name="state"
  13732. direction="out"
  13733. caller-allocates="0"
  13734. transfer-ownership="full"
  13735. optional="1"
  13736. allow-none="1">
  13737. <doc xml:space="preserve">a pointer to #GstState to hold the state.
  13738. Can be %NULL.</doc>
  13739. <type name="State" c:type="GstState*"/>
  13740. </parameter>
  13741. <parameter name="pending"
  13742. direction="out"
  13743. caller-allocates="0"
  13744. transfer-ownership="full"
  13745. optional="1"
  13746. allow-none="1">
  13747. <doc xml:space="preserve">a pointer to #GstState to hold the pending
  13748. state. Can be %NULL.</doc>
  13749. <type name="State" c:type="GstState*"/>
  13750. </parameter>
  13751. <parameter name="timeout" transfer-ownership="none">
  13752. <doc xml:space="preserve">a #GstClockTime to specify the timeout for an async
  13753. state change or %GST_CLOCK_TIME_NONE for infinite timeout.</doc>
  13754. <type name="ClockTime" c:type="GstClockTime"/>
  13755. </parameter>
  13756. </parameters>
  13757. </callback>
  13758. </field>
  13759. <field name="set_state">
  13760. <callback name="set_state">
  13761. <return-value transfer-ownership="none">
  13762. <doc xml:space="preserve">Result of the state change using #GstStateChangeReturn.
  13763. MT safe.</doc>
  13764. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  13765. </return-value>
  13766. <parameters>
  13767. <parameter name="element" transfer-ownership="none">
  13768. <doc xml:space="preserve">a #GstElement to change state of.</doc>
  13769. <type name="Element" c:type="GstElement*"/>
  13770. </parameter>
  13771. <parameter name="state" transfer-ownership="none">
  13772. <doc xml:space="preserve">the element's new #GstState.</doc>
  13773. <type name="State" c:type="GstState"/>
  13774. </parameter>
  13775. </parameters>
  13776. </callback>
  13777. </field>
  13778. <field name="change_state">
  13779. <callback name="change_state">
  13780. <return-value transfer-ownership="none">
  13781. <doc xml:space="preserve">the #GstStateChangeReturn of the state transition.</doc>
  13782. <type name="StateChangeReturn" c:type="GstStateChangeReturn"/>
  13783. </return-value>
  13784. <parameters>
  13785. <parameter name="element" transfer-ownership="none">
  13786. <doc xml:space="preserve">a #GstElement</doc>
  13787. <type name="Element" c:type="GstElement*"/>
  13788. </parameter>
  13789. <parameter name="transition" transfer-ownership="none">
  13790. <doc xml:space="preserve">the requested transition</doc>
  13791. <type name="StateChange" c:type="GstStateChange"/>
  13792. </parameter>
  13793. </parameters>
  13794. </callback>
  13795. </field>
  13796. <field name="state_changed">
  13797. <callback name="state_changed">
  13798. <return-value transfer-ownership="none">
  13799. <type name="none" c:type="void"/>
  13800. </return-value>
  13801. <parameters>
  13802. <parameter name="element" transfer-ownership="none">
  13803. <type name="Element" c:type="GstElement*"/>
  13804. </parameter>
  13805. <parameter name="oldstate" transfer-ownership="none">
  13806. <type name="State" c:type="GstState"/>
  13807. </parameter>
  13808. <parameter name="newstate" transfer-ownership="none">
  13809. <type name="State" c:type="GstState"/>
  13810. </parameter>
  13811. <parameter name="pending" transfer-ownership="none">
  13812. <type name="State" c:type="GstState"/>
  13813. </parameter>
  13814. </parameters>
  13815. </callback>
  13816. </field>
  13817. <field name="set_bus">
  13818. <callback name="set_bus">
  13819. <return-value transfer-ownership="none">
  13820. <type name="none" c:type="void"/>
  13821. </return-value>
  13822. <parameters>
  13823. <parameter name="element" transfer-ownership="none">
  13824. <doc xml:space="preserve">a #GstElement to set the bus of.</doc>
  13825. <type name="Element" c:type="GstElement*"/>
  13826. </parameter>
  13827. <parameter name="bus" transfer-ownership="none">
  13828. <doc xml:space="preserve">the #GstBus to set.</doc>
  13829. <type name="Bus" c:type="GstBus*"/>
  13830. </parameter>
  13831. </parameters>
  13832. </callback>
  13833. </field>
  13834. <field name="provide_clock">
  13835. <callback name="provide_clock">
  13836. <return-value transfer-ownership="full" nullable="1">
  13837. <doc xml:space="preserve">the GstClock provided by the
  13838. element or %NULL if no clock could be provided. Unref after usage.
  13839. MT safe.</doc>
  13840. <type name="Clock" c:type="GstClock*"/>
  13841. </return-value>
  13842. <parameters>
  13843. <parameter name="element" transfer-ownership="none">
  13844. <doc xml:space="preserve">a #GstElement to query</doc>
  13845. <type name="Element" c:type="GstElement*"/>
  13846. </parameter>
  13847. </parameters>
  13848. </callback>
  13849. </field>
  13850. <field name="set_clock">
  13851. <callback name="set_clock">
  13852. <return-value transfer-ownership="none">
  13853. <doc xml:space="preserve">%TRUE if the element accepted the clock. An element can refuse a
  13854. clock when it, for example, is not able to slave its internal clock to the
  13855. @clock or when it requires a specific clock to operate.
  13856. MT safe.</doc>
  13857. <type name="gboolean" c:type="gboolean"/>
  13858. </return-value>
  13859. <parameters>
  13860. <parameter name="element" transfer-ownership="none">
  13861. <doc xml:space="preserve">a #GstElement to set the clock for.</doc>
  13862. <type name="Element" c:type="GstElement*"/>
  13863. </parameter>
  13864. <parameter name="clock" transfer-ownership="none">
  13865. <doc xml:space="preserve">the #GstClock to set for the element.</doc>
  13866. <type name="Clock" c:type="GstClock*"/>
  13867. </parameter>
  13868. </parameters>
  13869. </callback>
  13870. </field>
  13871. <field name="send_event">
  13872. <callback name="send_event">
  13873. <return-value transfer-ownership="none">
  13874. <doc xml:space="preserve">%TRUE if the event was handled. Events that trigger a preroll (such
  13875. as flushing seeks and steps) will emit %GST_MESSAGE_ASYNC_DONE.</doc>
  13876. <type name="gboolean" c:type="gboolean"/>
  13877. </return-value>
  13878. <parameters>
  13879. <parameter name="element" transfer-ownership="none">
  13880. <doc xml:space="preserve">a #GstElement to send the event to.</doc>
  13881. <type name="Element" c:type="GstElement*"/>
  13882. </parameter>
  13883. <parameter name="event" transfer-ownership="full">
  13884. <doc xml:space="preserve">the #GstEvent to send to the element.</doc>
  13885. <type name="Event" c:type="GstEvent*"/>
  13886. </parameter>
  13887. </parameters>
  13888. </callback>
  13889. </field>
  13890. <field name="query">
  13891. <callback name="query">
  13892. <return-value transfer-ownership="none">
  13893. <doc xml:space="preserve">%TRUE if the query could be performed.
  13894. MT safe.</doc>
  13895. <type name="gboolean" c:type="gboolean"/>
  13896. </return-value>
  13897. <parameters>
  13898. <parameter name="element" transfer-ownership="none">
  13899. <doc xml:space="preserve">a #GstElement to perform the query on.</doc>
  13900. <type name="Element" c:type="GstElement*"/>
  13901. </parameter>
  13902. <parameter name="query" transfer-ownership="none">
  13903. <doc xml:space="preserve">the #GstQuery.</doc>
  13904. <type name="Query" c:type="GstQuery*"/>
  13905. </parameter>
  13906. </parameters>
  13907. </callback>
  13908. </field>
  13909. <field name="post_message">
  13910. <callback name="post_message">
  13911. <return-value transfer-ownership="none">
  13912. <doc xml:space="preserve">%TRUE if the message was successfully posted. The function returns
  13913. %FALSE if the element did not have a bus.
  13914. MT safe.</doc>
  13915. <type name="gboolean" c:type="gboolean"/>
  13916. </return-value>
  13917. <parameters>
  13918. <parameter name="element" transfer-ownership="none">
  13919. <doc xml:space="preserve">a #GstElement posting the message</doc>
  13920. <type name="Element" c:type="GstElement*"/>
  13921. </parameter>
  13922. <parameter name="message" transfer-ownership="full">
  13923. <doc xml:space="preserve">a #GstMessage to post</doc>
  13924. <type name="Message" c:type="GstMessage*"/>
  13925. </parameter>
  13926. </parameters>
  13927. </callback>
  13928. </field>
  13929. <field name="set_context">
  13930. <callback name="set_context">
  13931. <return-value transfer-ownership="none">
  13932. <type name="none" c:type="void"/>
  13933. </return-value>
  13934. <parameters>
  13935. <parameter name="element" transfer-ownership="none">
  13936. <doc xml:space="preserve">a #GstElement to set the context of.</doc>
  13937. <type name="Element" c:type="GstElement*"/>
  13938. </parameter>
  13939. <parameter name="context" transfer-ownership="none">
  13940. <doc xml:space="preserve">the #GstContext to set.</doc>
  13941. <type name="Context" c:type="GstContext*"/>
  13942. </parameter>
  13943. </parameters>
  13944. </callback>
  13945. </field>
  13946. <field name="_gst_reserved" readable="0" private="1">
  13947. <array zero-terminated="0" c:type="gpointer" fixed-size="18">
  13948. <type name="gpointer" c:type="gpointer"/>
  13949. </array>
  13950. </field>
  13951. <method name="add_metadata"
  13952. c:identifier="gst_element_class_add_metadata">
  13953. <doc xml:space="preserve">Set @key with @value as metadata in @klass.</doc>
  13954. <return-value transfer-ownership="none">
  13955. <type name="none" c:type="void"/>
  13956. </return-value>
  13957. <parameters>
  13958. <instance-parameter name="klass" transfer-ownership="none">
  13959. <doc xml:space="preserve">class to set metadata for</doc>
  13960. <type name="ElementClass" c:type="GstElementClass*"/>
  13961. </instance-parameter>
  13962. <parameter name="key" transfer-ownership="none">
  13963. <doc xml:space="preserve">the key to set</doc>
  13964. <type name="utf8" c:type="const gchar*"/>
  13965. </parameter>
  13966. <parameter name="value" transfer-ownership="none">
  13967. <doc xml:space="preserve">the value to set</doc>
  13968. <type name="utf8" c:type="const gchar*"/>
  13969. </parameter>
  13970. </parameters>
  13971. </method>
  13972. <method name="add_pad_template"
  13973. c:identifier="gst_element_class_add_pad_template">
  13974. <doc xml:space="preserve">Adds a padtemplate to an element class. This is mainly used in the _class_init
  13975. functions of classes. If a pad template with the same name as an already
  13976. existing one is added the old one is replaced by the new one.</doc>
  13977. <return-value transfer-ownership="none">
  13978. <type name="none" c:type="void"/>
  13979. </return-value>
  13980. <parameters>
  13981. <instance-parameter name="klass" transfer-ownership="none">
  13982. <doc xml:space="preserve">the #GstElementClass to add the pad template to.</doc>
  13983. <type name="ElementClass" c:type="GstElementClass*"/>
  13984. </instance-parameter>
  13985. <parameter name="templ" transfer-ownership="full">
  13986. <doc xml:space="preserve">a #GstPadTemplate to add to the element class.</doc>
  13987. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  13988. </parameter>
  13989. </parameters>
  13990. </method>
  13991. <method name="add_static_metadata"
  13992. c:identifier="gst_element_class_add_static_metadata">
  13993. <doc xml:space="preserve">Set @key with @value as metadata in @klass.
  13994. Same as gst_element_class_add_metadata(), but @value must be a static string
  13995. or an inlined string, as it will not be copied. (GStreamer plugins will
  13996. be made resident once loaded, so this function can be used even from
  13997. dynamically loaded plugins.)</doc>
  13998. <return-value transfer-ownership="none">
  13999. <type name="none" c:type="void"/>
  14000. </return-value>
  14001. <parameters>
  14002. <instance-parameter name="klass" transfer-ownership="none">
  14003. <doc xml:space="preserve">class to set metadata for</doc>
  14004. <type name="ElementClass" c:type="GstElementClass*"/>
  14005. </instance-parameter>
  14006. <parameter name="key" transfer-ownership="none">
  14007. <doc xml:space="preserve">the key to set</doc>
  14008. <type name="utf8" c:type="const gchar*"/>
  14009. </parameter>
  14010. <parameter name="value" transfer-ownership="none">
  14011. <doc xml:space="preserve">the value to set</doc>
  14012. <type name="utf8" c:type="const gchar*"/>
  14013. </parameter>
  14014. </parameters>
  14015. </method>
  14016. <method name="add_static_pad_template"
  14017. c:identifier="gst_element_class_add_static_pad_template"
  14018. version="1.8">
  14019. <doc xml:space="preserve">Adds a pad template to an element class based on the static pad template
  14020. @templ. This is mainly used in the _class_init functions of element
  14021. implementations. If a pad template with the same name already exists,
  14022. the old one is replaced by the new one.</doc>
  14023. <return-value transfer-ownership="none">
  14024. <type name="none" c:type="void"/>
  14025. </return-value>
  14026. <parameters>
  14027. <instance-parameter name="klass" transfer-ownership="none">
  14028. <doc xml:space="preserve">the #GstElementClass to add the pad template to.</doc>
  14029. <type name="ElementClass" c:type="GstElementClass*"/>
  14030. </instance-parameter>
  14031. <parameter name="static_templ" transfer-ownership="none">
  14032. <doc xml:space="preserve">#GstStaticPadTemplate to add as pad template to the element class.</doc>
  14033. <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
  14034. </parameter>
  14035. </parameters>
  14036. </method>
  14037. <method name="get_metadata"
  14038. c:identifier="gst_element_class_get_metadata">
  14039. <doc xml:space="preserve">Get metadata with @key in @klass.</doc>
  14040. <return-value transfer-ownership="none">
  14041. <doc xml:space="preserve">the metadata for @key.</doc>
  14042. <type name="utf8" c:type="const gchar*"/>
  14043. </return-value>
  14044. <parameters>
  14045. <instance-parameter name="klass" transfer-ownership="none">
  14046. <doc xml:space="preserve">class to get metadata for</doc>
  14047. <type name="ElementClass" c:type="GstElementClass*"/>
  14048. </instance-parameter>
  14049. <parameter name="key" transfer-ownership="none">
  14050. <doc xml:space="preserve">the key to get</doc>
  14051. <type name="utf8" c:type="const gchar*"/>
  14052. </parameter>
  14053. </parameters>
  14054. </method>
  14055. <method name="get_pad_template"
  14056. c:identifier="gst_element_class_get_pad_template">
  14057. <doc xml:space="preserve">Retrieves a padtemplate from @element_class with the given name.
  14058. &lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
  14059. that has subclasses, make sure to pass the g_class parameter of the
  14060. #GInstanceInitFunc here.&lt;/note&gt;</doc>
  14061. <return-value transfer-ownership="none" nullable="1">
  14062. <doc xml:space="preserve">the #GstPadTemplate with the
  14063. given name, or %NULL if none was found. No unreferencing is
  14064. necessary.</doc>
  14065. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  14066. </return-value>
  14067. <parameters>
  14068. <instance-parameter name="element_class" transfer-ownership="none">
  14069. <doc xml:space="preserve">a #GstElementClass to get the pad template of.</doc>
  14070. <type name="ElementClass" c:type="GstElementClass*"/>
  14071. </instance-parameter>
  14072. <parameter name="name" transfer-ownership="none">
  14073. <doc xml:space="preserve">the name of the #GstPadTemplate to get.</doc>
  14074. <type name="utf8" c:type="const gchar*"/>
  14075. </parameter>
  14076. </parameters>
  14077. </method>
  14078. <method name="get_pad_template_list"
  14079. c:identifier="gst_element_class_get_pad_template_list">
  14080. <doc xml:space="preserve">Retrieves a list of the pad templates associated with @element_class. The
  14081. list must not be modified by the calling code.
  14082. &lt;note&gt;If you use this function in the #GInstanceInitFunc of an object class
  14083. that has subclasses, make sure to pass the g_class parameter of the
  14084. #GInstanceInitFunc here.&lt;/note&gt;</doc>
  14085. <return-value transfer-ownership="none">
  14086. <doc xml:space="preserve">the #GList of
  14087. pad templates.</doc>
  14088. <type name="GLib.List" c:type="GList*">
  14089. <type name="PadTemplate"/>
  14090. </type>
  14091. </return-value>
  14092. <parameters>
  14093. <instance-parameter name="element_class" transfer-ownership="none">
  14094. <doc xml:space="preserve">a #GstElementClass to get pad templates of.</doc>
  14095. <type name="ElementClass" c:type="GstElementClass*"/>
  14096. </instance-parameter>
  14097. </parameters>
  14098. </method>
  14099. <method name="set_metadata"
  14100. c:identifier="gst_element_class_set_metadata">
  14101. <doc xml:space="preserve">Sets the detailed information for a #GstElementClass.
  14102. &lt;note&gt;This function is for use in _class_init functions only.&lt;/note&gt;</doc>
  14103. <return-value transfer-ownership="none">
  14104. <type name="none" c:type="void"/>
  14105. </return-value>
  14106. <parameters>
  14107. <instance-parameter name="klass" transfer-ownership="none">
  14108. <doc xml:space="preserve">class to set metadata for</doc>
  14109. <type name="ElementClass" c:type="GstElementClass*"/>
  14110. </instance-parameter>
  14111. <parameter name="longname" transfer-ownership="none">
  14112. <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
  14113. <type name="utf8" c:type="const gchar*"/>
  14114. </parameter>
  14115. <parameter name="classification" transfer-ownership="none">
  14116. <doc xml:space="preserve">String describing the type of element, as an unordered list
  14117. separated with slashes ('/'). See draft-klass.txt of the design docs
  14118. for more details and common types. E.g: "Sink/File"</doc>
  14119. <type name="utf8" c:type="const gchar*"/>
  14120. </parameter>
  14121. <parameter name="description" transfer-ownership="none">
  14122. <doc xml:space="preserve">Sentence describing the purpose of the element.
  14123. E.g: "Write stream to a file"</doc>
  14124. <type name="utf8" c:type="const gchar*"/>
  14125. </parameter>
  14126. <parameter name="author" transfer-ownership="none">
  14127. <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
  14128. multiple author metadata. E.g: "Joe Bloggs &amp;lt;joe.blogs at foo.com&amp;gt;"</doc>
  14129. <type name="utf8" c:type="const gchar*"/>
  14130. </parameter>
  14131. </parameters>
  14132. </method>
  14133. <method name="set_static_metadata"
  14134. c:identifier="gst_element_class_set_static_metadata">
  14135. <doc xml:space="preserve">Sets the detailed information for a #GstElementClass.
  14136. &lt;note&gt;This function is for use in _class_init functions only.&lt;/note&gt;
  14137. Same as gst_element_class_set_metadata(), but @longname, @classification,
  14138. @description, and @author must be static strings or inlined strings, as
  14139. they will not be copied. (GStreamer plugins will be made resident once
  14140. loaded, so this function can be used even from dynamically loaded plugins.)</doc>
  14141. <return-value transfer-ownership="none">
  14142. <type name="none" c:type="void"/>
  14143. </return-value>
  14144. <parameters>
  14145. <instance-parameter name="klass" transfer-ownership="none">
  14146. <doc xml:space="preserve">class to set metadata for</doc>
  14147. <type name="ElementClass" c:type="GstElementClass*"/>
  14148. </instance-parameter>
  14149. <parameter name="longname" transfer-ownership="none">
  14150. <doc xml:space="preserve">The long English name of the element. E.g. "File Sink"</doc>
  14151. <type name="utf8" c:type="const gchar*"/>
  14152. </parameter>
  14153. <parameter name="classification" transfer-ownership="none">
  14154. <doc xml:space="preserve">String describing the type of element, as an unordered list
  14155. separated with slashes ('/'). See draft-klass.txt of the design docs
  14156. for more details and common types. E.g: "Sink/File"</doc>
  14157. <type name="utf8" c:type="const gchar*"/>
  14158. </parameter>
  14159. <parameter name="description" transfer-ownership="none">
  14160. <doc xml:space="preserve">Sentence describing the purpose of the element.
  14161. E.g: "Write stream to a file"</doc>
  14162. <type name="utf8" c:type="const gchar*"/>
  14163. </parameter>
  14164. <parameter name="author" transfer-ownership="none">
  14165. <doc xml:space="preserve">Name and contact details of the author(s). Use \n to separate
  14166. multiple author metadata. E.g: "Joe Bloggs &amp;lt;joe.blogs at foo.com&amp;gt;"</doc>
  14167. <type name="utf8" c:type="const gchar*"/>
  14168. </parameter>
  14169. </parameters>
  14170. </method>
  14171. </record>
  14172. <class name="ElementFactory"
  14173. c:symbol-prefix="element_factory"
  14174. c:type="GstElementFactory"
  14175. parent="PluginFeature"
  14176. glib:type-name="GstElementFactory"
  14177. glib:get-type="gst_element_factory_get_type"
  14178. glib:type-struct="ElementFactoryClass">
  14179. <doc xml:space="preserve">#GstElementFactory is used to create instances of elements. A
  14180. GstElementFactory can be added to a #GstPlugin as it is also a
  14181. #GstPluginFeature.
  14182. Use the gst_element_factory_find() and gst_element_factory_create()
  14183. functions to create element instances or use gst_element_factory_make() as a
  14184. convenient shortcut.
  14185. The following code example shows you how to create a GstFileSrc element.
  14186. &lt;example&gt;
  14187. &lt;title&gt;Using an element factory&lt;/title&gt;
  14188. &lt;programlisting language="c"&gt;
  14189. #include &amp;lt;gst/gst.h&amp;gt;
  14190. GstElement *src;
  14191. GstElementFactory *srcfactory;
  14192. gst_init (&amp;amp;argc, &amp;amp;argv);
  14193. srcfactory = gst_element_factory_find ("filesrc");
  14194. g_return_if_fail (srcfactory != NULL);
  14195. src = gst_element_factory_create (srcfactory, "src");
  14196. g_return_if_fail (src != NULL);
  14197. ...
  14198. &lt;/programlisting&gt;
  14199. &lt;/example&gt;</doc>
  14200. <function name="find" c:identifier="gst_element_factory_find">
  14201. <doc xml:space="preserve">Search for an element factory of the given name. Refs the returned
  14202. element factory; caller is responsible for unreffing.</doc>
  14203. <return-value transfer-ownership="full" nullable="1">
  14204. <doc xml:space="preserve">#GstElementFactory if found,
  14205. %NULL otherwise</doc>
  14206. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14207. </return-value>
  14208. <parameters>
  14209. <parameter name="name" transfer-ownership="none">
  14210. <doc xml:space="preserve">name of factory to find</doc>
  14211. <type name="utf8" c:type="const gchar*"/>
  14212. </parameter>
  14213. </parameters>
  14214. </function>
  14215. <function name="list_filter"
  14216. c:identifier="gst_element_factory_list_filter">
  14217. <doc xml:space="preserve">Filter out all the elementfactories in @list that can handle @caps in
  14218. the given direction.
  14219. If @subsetonly is %TRUE, then only the elements whose pads templates
  14220. are a complete superset of @caps will be returned. Else any element
  14221. whose pad templates caps can intersect with @caps will be returned.</doc>
  14222. <return-value transfer-ownership="full">
  14223. <doc xml:space="preserve">a #GList of
  14224. #GstElementFactory elements that match the given requisites.
  14225. Use #gst_plugin_feature_list_free after usage.</doc>
  14226. <type name="GLib.List" c:type="GList*">
  14227. <type name="ElementFactory"/>
  14228. </type>
  14229. </return-value>
  14230. <parameters>
  14231. <parameter name="list" transfer-ownership="none">
  14232. <doc xml:space="preserve">a #GList of
  14233. #GstElementFactory to filter</doc>
  14234. <type name="GLib.List" c:type="GList*">
  14235. <type name="ElementFactory"/>
  14236. </type>
  14237. </parameter>
  14238. <parameter name="caps" transfer-ownership="none">
  14239. <doc xml:space="preserve">a #GstCaps</doc>
  14240. <type name="Caps" c:type="const GstCaps*"/>
  14241. </parameter>
  14242. <parameter name="direction" transfer-ownership="none">
  14243. <doc xml:space="preserve">a #GstPadDirection to filter on</doc>
  14244. <type name="PadDirection" c:type="GstPadDirection"/>
  14245. </parameter>
  14246. <parameter name="subsetonly" transfer-ownership="none">
  14247. <doc xml:space="preserve">whether to filter on caps subsets or not.</doc>
  14248. <type name="gboolean" c:type="gboolean"/>
  14249. </parameter>
  14250. </parameters>
  14251. </function>
  14252. <function name="list_get_elements"
  14253. c:identifier="gst_element_factory_list_get_elements">
  14254. <doc xml:space="preserve">Get a list of factories that match the given @type. Only elements
  14255. with a rank greater or equal to @minrank will be returned.
  14256. The list of factories is returned by decreasing rank.</doc>
  14257. <return-value transfer-ownership="full">
  14258. <doc xml:space="preserve">a #GList of
  14259. #GstElementFactory elements. Use gst_plugin_feature_list_free() after
  14260. usage.</doc>
  14261. <type name="GLib.List" c:type="GList*">
  14262. <type name="ElementFactory"/>
  14263. </type>
  14264. </return-value>
  14265. <parameters>
  14266. <parameter name="type" transfer-ownership="none">
  14267. <doc xml:space="preserve">a #GstElementFactoryListType</doc>
  14268. <type name="ElementFactoryListType"
  14269. c:type="GstElementFactoryListType"/>
  14270. </parameter>
  14271. <parameter name="minrank" transfer-ownership="none">
  14272. <doc xml:space="preserve">Minimum rank</doc>
  14273. <type name="Rank" c:type="GstRank"/>
  14274. </parameter>
  14275. </parameters>
  14276. </function>
  14277. <function name="make" c:identifier="gst_element_factory_make">
  14278. <doc xml:space="preserve">Create a new element of the type defined by the given element factory.
  14279. If name is %NULL, then the element will receive a guaranteed unique name,
  14280. consisting of the element factory name and a number.
  14281. If name is given, it will be given the name supplied.</doc>
  14282. <return-value transfer-ownership="none" nullable="1">
  14283. <doc xml:space="preserve">new #GstElement or %NULL
  14284. if unable to create element</doc>
  14285. <type name="Element" c:type="GstElement*"/>
  14286. </return-value>
  14287. <parameters>
  14288. <parameter name="factoryname" transfer-ownership="none">
  14289. <doc xml:space="preserve">a named factory to instantiate</doc>
  14290. <type name="utf8" c:type="const gchar*"/>
  14291. </parameter>
  14292. <parameter name="name"
  14293. transfer-ownership="none"
  14294. nullable="1"
  14295. allow-none="1">
  14296. <doc xml:space="preserve">name of new element, or %NULL to automatically create
  14297. a unique name</doc>
  14298. <type name="utf8" c:type="const gchar*"/>
  14299. </parameter>
  14300. </parameters>
  14301. </function>
  14302. <method name="can_sink_all_caps"
  14303. c:identifier="gst_element_factory_can_sink_all_caps">
  14304. <doc xml:space="preserve">Checks if the factory can sink all possible capabilities.</doc>
  14305. <return-value transfer-ownership="none">
  14306. <doc xml:space="preserve">%TRUE if the caps are fully compatible.</doc>
  14307. <type name="gboolean" c:type="gboolean"/>
  14308. </return-value>
  14309. <parameters>
  14310. <instance-parameter name="factory" transfer-ownership="none">
  14311. <doc xml:space="preserve">factory to query</doc>
  14312. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14313. </instance-parameter>
  14314. <parameter name="caps" transfer-ownership="none">
  14315. <doc xml:space="preserve">the caps to check</doc>
  14316. <type name="Caps" c:type="const GstCaps*"/>
  14317. </parameter>
  14318. </parameters>
  14319. </method>
  14320. <method name="can_sink_any_caps"
  14321. c:identifier="gst_element_factory_can_sink_any_caps">
  14322. <doc xml:space="preserve">Checks if the factory can sink any possible capability.</doc>
  14323. <return-value transfer-ownership="none">
  14324. <doc xml:space="preserve">%TRUE if the caps have a common subset.</doc>
  14325. <type name="gboolean" c:type="gboolean"/>
  14326. </return-value>
  14327. <parameters>
  14328. <instance-parameter name="factory" transfer-ownership="none">
  14329. <doc xml:space="preserve">factory to query</doc>
  14330. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14331. </instance-parameter>
  14332. <parameter name="caps" transfer-ownership="none">
  14333. <doc xml:space="preserve">the caps to check</doc>
  14334. <type name="Caps" c:type="const GstCaps*"/>
  14335. </parameter>
  14336. </parameters>
  14337. </method>
  14338. <method name="can_src_all_caps"
  14339. c:identifier="gst_element_factory_can_src_all_caps">
  14340. <doc xml:space="preserve">Checks if the factory can src all possible capabilities.</doc>
  14341. <return-value transfer-ownership="none">
  14342. <doc xml:space="preserve">%TRUE if the caps are fully compatible.</doc>
  14343. <type name="gboolean" c:type="gboolean"/>
  14344. </return-value>
  14345. <parameters>
  14346. <instance-parameter name="factory" transfer-ownership="none">
  14347. <doc xml:space="preserve">factory to query</doc>
  14348. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14349. </instance-parameter>
  14350. <parameter name="caps" transfer-ownership="none">
  14351. <doc xml:space="preserve">the caps to check</doc>
  14352. <type name="Caps" c:type="const GstCaps*"/>
  14353. </parameter>
  14354. </parameters>
  14355. </method>
  14356. <method name="can_src_any_caps"
  14357. c:identifier="gst_element_factory_can_src_any_caps">
  14358. <doc xml:space="preserve">Checks if the factory can src any possible capability.</doc>
  14359. <return-value transfer-ownership="none">
  14360. <doc xml:space="preserve">%TRUE if the caps have a common subset.</doc>
  14361. <type name="gboolean" c:type="gboolean"/>
  14362. </return-value>
  14363. <parameters>
  14364. <instance-parameter name="factory" transfer-ownership="none">
  14365. <doc xml:space="preserve">factory to query</doc>
  14366. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14367. </instance-parameter>
  14368. <parameter name="caps" transfer-ownership="none">
  14369. <doc xml:space="preserve">the caps to check</doc>
  14370. <type name="Caps" c:type="const GstCaps*"/>
  14371. </parameter>
  14372. </parameters>
  14373. </method>
  14374. <method name="create" c:identifier="gst_element_factory_create">
  14375. <doc xml:space="preserve">Create a new element of the type defined by the given elementfactory.
  14376. It will be given the name supplied, since all elements require a name as
  14377. their first argument.</doc>
  14378. <return-value transfer-ownership="none" nullable="1">
  14379. <doc xml:space="preserve">new #GstElement or %NULL
  14380. if the element couldn't be created</doc>
  14381. <type name="Element" c:type="GstElement*"/>
  14382. </return-value>
  14383. <parameters>
  14384. <instance-parameter name="factory" transfer-ownership="none">
  14385. <doc xml:space="preserve">factory to instantiate</doc>
  14386. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14387. </instance-parameter>
  14388. <parameter name="name"
  14389. transfer-ownership="none"
  14390. nullable="1"
  14391. allow-none="1">
  14392. <doc xml:space="preserve">name of new element, or %NULL to automatically create
  14393. a unique name</doc>
  14394. <type name="utf8" c:type="const gchar*"/>
  14395. </parameter>
  14396. </parameters>
  14397. </method>
  14398. <method name="get_element_type"
  14399. c:identifier="gst_element_factory_get_element_type">
  14400. <doc xml:space="preserve">Get the #GType for elements managed by this factory. The type can
  14401. only be retrieved if the element factory is loaded, which can be
  14402. assured with gst_plugin_feature_load().</doc>
  14403. <return-value transfer-ownership="none">
  14404. <doc xml:space="preserve">the #GType for elements managed by this factory or 0 if
  14405. the factory is not loaded.</doc>
  14406. <type name="GType" c:type="GType"/>
  14407. </return-value>
  14408. <parameters>
  14409. <instance-parameter name="factory" transfer-ownership="none">
  14410. <doc xml:space="preserve">factory to get managed #GType from</doc>
  14411. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14412. </instance-parameter>
  14413. </parameters>
  14414. </method>
  14415. <method name="get_metadata"
  14416. c:identifier="gst_element_factory_get_metadata">
  14417. <doc xml:space="preserve">Get the metadata on @factory with @key.</doc>
  14418. <return-value transfer-ownership="none" nullable="1">
  14419. <doc xml:space="preserve">the metadata with @key on @factory or %NULL
  14420. when there was no metadata with the given @key.</doc>
  14421. <type name="utf8" c:type="const gchar*"/>
  14422. </return-value>
  14423. <parameters>
  14424. <instance-parameter name="factory" transfer-ownership="none">
  14425. <doc xml:space="preserve">a #GstElementFactory</doc>
  14426. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14427. </instance-parameter>
  14428. <parameter name="key" transfer-ownership="none">
  14429. <doc xml:space="preserve">a key</doc>
  14430. <type name="utf8" c:type="const gchar*"/>
  14431. </parameter>
  14432. </parameters>
  14433. </method>
  14434. <method name="get_metadata_keys"
  14435. c:identifier="gst_element_factory_get_metadata_keys">
  14436. <doc xml:space="preserve">Get the available keys for the metadata on @factory.</doc>
  14437. <return-value transfer-ownership="full" nullable="1">
  14438. <doc xml:space="preserve">
  14439. a %NULL-terminated array of key strings, or %NULL when there is no
  14440. metadata. Free with g_strfreev() when no longer needed.</doc>
  14441. <array c:type="gchar**">
  14442. <type name="utf8"/>
  14443. </array>
  14444. </return-value>
  14445. <parameters>
  14446. <instance-parameter name="factory" transfer-ownership="none">
  14447. <doc xml:space="preserve">a #GstElementFactory</doc>
  14448. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14449. </instance-parameter>
  14450. </parameters>
  14451. </method>
  14452. <method name="get_num_pad_templates"
  14453. c:identifier="gst_element_factory_get_num_pad_templates">
  14454. <doc xml:space="preserve">Gets the number of pad_templates in this factory.</doc>
  14455. <return-value transfer-ownership="none">
  14456. <doc xml:space="preserve">the number of pad_templates</doc>
  14457. <type name="guint" c:type="guint"/>
  14458. </return-value>
  14459. <parameters>
  14460. <instance-parameter name="factory" transfer-ownership="none">
  14461. <doc xml:space="preserve">a #GstElementFactory</doc>
  14462. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14463. </instance-parameter>
  14464. </parameters>
  14465. </method>
  14466. <method name="get_static_pad_templates"
  14467. c:identifier="gst_element_factory_get_static_pad_templates">
  14468. <doc xml:space="preserve">Gets the #GList of #GstStaticPadTemplate for this factory.</doc>
  14469. <return-value transfer-ownership="none">
  14470. <doc xml:space="preserve">the
  14471. static pad templates</doc>
  14472. <type name="GLib.List" c:type="const GList*">
  14473. <type name="StaticPadTemplate"/>
  14474. </type>
  14475. </return-value>
  14476. <parameters>
  14477. <instance-parameter name="factory" transfer-ownership="none">
  14478. <doc xml:space="preserve">a #GstElementFactory</doc>
  14479. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14480. </instance-parameter>
  14481. </parameters>
  14482. </method>
  14483. <method name="get_uri_protocols"
  14484. c:identifier="gst_element_factory_get_uri_protocols">
  14485. <doc xml:space="preserve">Gets a %NULL-terminated array of protocols this element supports or %NULL if
  14486. no protocols are supported. You may not change the contents of the returned
  14487. array, as it is still owned by the element factory. Use g_strdupv() to
  14488. make a copy of the protocol string array if you need to.</doc>
  14489. <return-value transfer-ownership="none">
  14490. <doc xml:space="preserve">the supported protocols
  14491. or %NULL</doc>
  14492. <array c:type="gchar**">
  14493. <type name="utf8"/>
  14494. </array>
  14495. </return-value>
  14496. <parameters>
  14497. <instance-parameter name="factory" transfer-ownership="none">
  14498. <doc xml:space="preserve">a #GstElementFactory</doc>
  14499. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14500. </instance-parameter>
  14501. </parameters>
  14502. </method>
  14503. <method name="get_uri_type"
  14504. c:identifier="gst_element_factory_get_uri_type">
  14505. <doc xml:space="preserve">Gets the type of URIs the element supports or #GST_URI_UNKNOWN if none.</doc>
  14506. <return-value transfer-ownership="none">
  14507. <doc xml:space="preserve">type of URIs this element supports</doc>
  14508. <type name="URIType" c:type="GstURIType"/>
  14509. </return-value>
  14510. <parameters>
  14511. <instance-parameter name="factory" transfer-ownership="none">
  14512. <doc xml:space="preserve">a #GstElementFactory</doc>
  14513. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14514. </instance-parameter>
  14515. </parameters>
  14516. </method>
  14517. <method name="has_interface"
  14518. c:identifier="gst_element_factory_has_interface">
  14519. <doc xml:space="preserve">Check if @factory implements the interface with name @interfacename.</doc>
  14520. <return-value transfer-ownership="none">
  14521. <doc xml:space="preserve">%TRUE when @factory implement the interface.</doc>
  14522. <type name="gboolean" c:type="gboolean"/>
  14523. </return-value>
  14524. <parameters>
  14525. <instance-parameter name="factory" transfer-ownership="none">
  14526. <doc xml:space="preserve">a #GstElementFactory</doc>
  14527. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14528. </instance-parameter>
  14529. <parameter name="interfacename" transfer-ownership="none">
  14530. <doc xml:space="preserve">an interface name</doc>
  14531. <type name="utf8" c:type="const gchar*"/>
  14532. </parameter>
  14533. </parameters>
  14534. </method>
  14535. <method name="list_is_type"
  14536. c:identifier="gst_element_factory_list_is_type">
  14537. <doc xml:space="preserve">Check if @factory is of the given types.</doc>
  14538. <return-value transfer-ownership="none">
  14539. <doc xml:space="preserve">%TRUE if @factory is of @type.</doc>
  14540. <type name="gboolean" c:type="gboolean"/>
  14541. </return-value>
  14542. <parameters>
  14543. <instance-parameter name="factory" transfer-ownership="none">
  14544. <doc xml:space="preserve">a #GstElementFactory</doc>
  14545. <type name="ElementFactory" c:type="GstElementFactory*"/>
  14546. </instance-parameter>
  14547. <parameter name="type" transfer-ownership="none">
  14548. <doc xml:space="preserve">a #GstElementFactoryListType</doc>
  14549. <type name="ElementFactoryListType"
  14550. c:type="GstElementFactoryListType"/>
  14551. </parameter>
  14552. </parameters>
  14553. </method>
  14554. </class>
  14555. <record name="ElementFactoryClass"
  14556. c:type="GstElementFactoryClass"
  14557. disguised="1"
  14558. glib:is-gtype-struct-for="ElementFactory">
  14559. </record>
  14560. <bitfield name="ElementFlags"
  14561. glib:type-name="GstElementFlags"
  14562. glib:get-type="gst_element_flags_get_type"
  14563. c:type="GstElementFlags">
  14564. <doc xml:space="preserve">The standard flags that an element may have.</doc>
  14565. <member name="locked_state"
  14566. value="16"
  14567. c:identifier="GST_ELEMENT_FLAG_LOCKED_STATE"
  14568. glib:nick="locked-state">
  14569. <doc xml:space="preserve">ignore state changes from parent</doc>
  14570. </member>
  14571. <member name="sink"
  14572. value="32"
  14573. c:identifier="GST_ELEMENT_FLAG_SINK"
  14574. glib:nick="sink">
  14575. <doc xml:space="preserve">the element is a sink</doc>
  14576. </member>
  14577. <member name="source"
  14578. value="64"
  14579. c:identifier="GST_ELEMENT_FLAG_SOURCE"
  14580. glib:nick="source">
  14581. <doc xml:space="preserve">the element is a source.</doc>
  14582. </member>
  14583. <member name="provide_clock"
  14584. value="128"
  14585. c:identifier="GST_ELEMENT_FLAG_PROVIDE_CLOCK"
  14586. glib:nick="provide-clock">
  14587. <doc xml:space="preserve">the element can provide a clock</doc>
  14588. </member>
  14589. <member name="require_clock"
  14590. value="256"
  14591. c:identifier="GST_ELEMENT_FLAG_REQUIRE_CLOCK"
  14592. glib:nick="require-clock">
  14593. <doc xml:space="preserve">the element requires a clock</doc>
  14594. </member>
  14595. <member name="indexable"
  14596. value="512"
  14597. c:identifier="GST_ELEMENT_FLAG_INDEXABLE"
  14598. glib:nick="indexable">
  14599. <doc xml:space="preserve">the element can use an index</doc>
  14600. </member>
  14601. <member name="last"
  14602. value="16384"
  14603. c:identifier="GST_ELEMENT_FLAG_LAST"
  14604. glib:nick="last">
  14605. <doc xml:space="preserve">offset to define more flags</doc>
  14606. </member>
  14607. </bitfield>
  14608. <record name="Event"
  14609. c:type="GstEvent"
  14610. glib:type-name="GstEvent"
  14611. glib:get-type="gst_event_get_type"
  14612. c:symbol-prefix="event">
  14613. <doc xml:space="preserve">The event class provides factory methods to construct events for sending
  14614. and functions to query (parse) received events.
  14615. Events are usually created with gst_event_new_*() which takes event-type
  14616. specific parameters as arguments.
  14617. To send an event application will usually use gst_element_send_event() and
  14618. elements will use gst_pad_send_event() or gst_pad_push_event().
  14619. The event should be unreffed with gst_event_unref() if it has not been sent.
  14620. Events that have been received can be parsed with their respective
  14621. gst_event_parse_*() functions. It is valid to pass %NULL for unwanted details.
  14622. Events are passed between elements in parallel to the data stream. Some events
  14623. are serialized with buffers, others are not. Some events only travel downstream,
  14624. others only upstream. Some events can travel both upstream and downstream.
  14625. The events are used to signal special conditions in the datastream such as
  14626. EOS (end of stream) or the start of a new stream-segment.
  14627. Events are also used to flush the pipeline of any pending data.
  14628. Most of the event API is used inside plugins. Applications usually only
  14629. construct and use seek events.
  14630. To do that gst_event_new_seek() is used to create a seek event. It takes
  14631. the needed parameters to specify seeking time and mode.
  14632. |[&lt;!-- language="C" --&gt;
  14633. GstEvent *event;
  14634. gboolean result;
  14635. ...
  14636. // construct a seek event to play the media from second 2 to 5, flush
  14637. // the pipeline to decrease latency.
  14638. event = gst_event_new_seek (1.0,
  14639. GST_FORMAT_TIME,
  14640. GST_SEEK_FLAG_FLUSH,
  14641. GST_SEEK_TYPE_SET, 2 * GST_SECOND,
  14642. GST_SEEK_TYPE_SET, 5 * GST_SECOND);
  14643. ...
  14644. result = gst_element_send_event (pipeline, event);
  14645. if (!result)
  14646. g_warning ("seek failed");
  14647. ...
  14648. ]|</doc>
  14649. <field name="mini_object" writable="1">
  14650. <doc xml:space="preserve">the parent structure</doc>
  14651. <type name="MiniObject" c:type="GstMiniObject"/>
  14652. </field>
  14653. <field name="type" writable="1">
  14654. <doc xml:space="preserve">the #GstEventType of the event</doc>
  14655. <type name="EventType" c:type="GstEventType"/>
  14656. </field>
  14657. <field name="timestamp" writable="1">
  14658. <doc xml:space="preserve">the timestamp of the event</doc>
  14659. <type name="guint64" c:type="guint64"/>
  14660. </field>
  14661. <field name="seqnum" writable="1">
  14662. <doc xml:space="preserve">the sequence number of the event</doc>
  14663. <type name="guint32" c:type="guint32"/>
  14664. </field>
  14665. <constructor name="new_buffer_size"
  14666. c:identifier="gst_event_new_buffer_size">
  14667. <doc xml:space="preserve">Create a new buffersize event. The event is sent downstream and notifies
  14668. elements that they should provide a buffer of the specified dimensions.
  14669. When the @async flag is set, a thread boundary is preferred.</doc>
  14670. <return-value transfer-ownership="full">
  14671. <doc xml:space="preserve">a new #GstEvent</doc>
  14672. <type name="Event" c:type="GstEvent*"/>
  14673. </return-value>
  14674. <parameters>
  14675. <parameter name="format" transfer-ownership="none">
  14676. <doc xml:space="preserve">buffer format</doc>
  14677. <type name="Format" c:type="GstFormat"/>
  14678. </parameter>
  14679. <parameter name="minsize" transfer-ownership="none">
  14680. <doc xml:space="preserve">minimum buffer size</doc>
  14681. <type name="gint64" c:type="gint64"/>
  14682. </parameter>
  14683. <parameter name="maxsize" transfer-ownership="none">
  14684. <doc xml:space="preserve">maximum buffer size</doc>
  14685. <type name="gint64" c:type="gint64"/>
  14686. </parameter>
  14687. <parameter name="async" transfer-ownership="none">
  14688. <doc xml:space="preserve">thread behavior</doc>
  14689. <type name="gboolean" c:type="gboolean"/>
  14690. </parameter>
  14691. </parameters>
  14692. </constructor>
  14693. <constructor name="new_caps" c:identifier="gst_event_new_caps">
  14694. <doc xml:space="preserve">Create a new CAPS event for @caps. The caps event can only travel downstream
  14695. synchronized with the buffer flow and contains the format of the buffers
  14696. that will follow after the event.</doc>
  14697. <return-value transfer-ownership="full">
  14698. <doc xml:space="preserve">the new CAPS event.</doc>
  14699. <type name="Event" c:type="GstEvent*"/>
  14700. </return-value>
  14701. <parameters>
  14702. <parameter name="caps" transfer-ownership="none">
  14703. <doc xml:space="preserve">a #GstCaps</doc>
  14704. <type name="Caps" c:type="GstCaps*"/>
  14705. </parameter>
  14706. </parameters>
  14707. </constructor>
  14708. <constructor name="new_custom" c:identifier="gst_event_new_custom">
  14709. <doc xml:space="preserve">Create a new custom-typed event. This can be used for anything not
  14710. handled by other event-specific functions to pass an event to another
  14711. element.
  14712. Make sure to allocate an event type with the #GST_EVENT_MAKE_TYPE macro,
  14713. assigning a free number and filling in the correct direction and
  14714. serialization flags.
  14715. New custom events can also be created by subclassing the event type if
  14716. needed.</doc>
  14717. <return-value transfer-ownership="full">
  14718. <doc xml:space="preserve">the new custom event.</doc>
  14719. <type name="Event" c:type="GstEvent*"/>
  14720. </return-value>
  14721. <parameters>
  14722. <parameter name="type" transfer-ownership="none">
  14723. <doc xml:space="preserve">The type of the new event</doc>
  14724. <type name="EventType" c:type="GstEventType"/>
  14725. </parameter>
  14726. <parameter name="structure" transfer-ownership="full">
  14727. <doc xml:space="preserve">the structure for the event. The event will
  14728. take ownership of the structure.</doc>
  14729. <type name="Structure" c:type="GstStructure*"/>
  14730. </parameter>
  14731. </parameters>
  14732. </constructor>
  14733. <constructor name="new_eos" c:identifier="gst_event_new_eos">
  14734. <doc xml:space="preserve">Create a new EOS event. The eos event can only travel downstream
  14735. synchronized with the buffer flow. Elements that receive the EOS
  14736. event on a pad can return #GST_FLOW_EOS as a #GstFlowReturn
  14737. when data after the EOS event arrives.
  14738. The EOS event will travel down to the sink elements in the pipeline
  14739. which will then post the #GST_MESSAGE_EOS on the bus after they have
  14740. finished playing any buffered data.
  14741. When all sinks have posted an EOS message, an EOS message is
  14742. forwarded to the application.
  14743. The EOS event itself will not cause any state transitions of the pipeline.</doc>
  14744. <return-value transfer-ownership="full">
  14745. <doc xml:space="preserve">the new EOS event.</doc>
  14746. <type name="Event" c:type="GstEvent*"/>
  14747. </return-value>
  14748. </constructor>
  14749. <constructor name="new_flush_start"
  14750. c:identifier="gst_event_new_flush_start">
  14751. <doc xml:space="preserve">Allocate a new flush start event. The flush start event can be sent
  14752. upstream and downstream and travels out-of-bounds with the dataflow.
  14753. It marks pads as being flushing and will make them return
  14754. #GST_FLOW_FLUSHING when used for data flow with gst_pad_push(),
  14755. gst_pad_chain(), gst_pad_get_range() and gst_pad_pull_range().
  14756. Any event (except a #GST_EVENT_FLUSH_STOP) received
  14757. on a flushing pad will return %FALSE immediately.
  14758. Elements should unlock any blocking functions and exit their streaming
  14759. functions as fast as possible when this event is received.
  14760. This event is typically generated after a seek to flush out all queued data
  14761. in the pipeline so that the new media is played as soon as possible.</doc>
  14762. <return-value transfer-ownership="full">
  14763. <doc xml:space="preserve">a new flush start event.</doc>
  14764. <type name="Event" c:type="GstEvent*"/>
  14765. </return-value>
  14766. </constructor>
  14767. <constructor name="new_flush_stop"
  14768. c:identifier="gst_event_new_flush_stop">
  14769. <doc xml:space="preserve">Allocate a new flush stop event. The flush stop event can be sent
  14770. upstream and downstream and travels serialized with the dataflow.
  14771. It is typically sent after sending a FLUSH_START event to make the
  14772. pads accept data again.
  14773. Elements can process this event synchronized with the dataflow since
  14774. the preceding FLUSH_START event stopped the dataflow.
  14775. This event is typically generated to complete a seek and to resume
  14776. dataflow.</doc>
  14777. <return-value transfer-ownership="full">
  14778. <doc xml:space="preserve">a new flush stop event.</doc>
  14779. <type name="Event" c:type="GstEvent*"/>
  14780. </return-value>
  14781. <parameters>
  14782. <parameter name="reset_time" transfer-ownership="none">
  14783. <doc xml:space="preserve">if time should be reset</doc>
  14784. <type name="gboolean" c:type="gboolean"/>
  14785. </parameter>
  14786. </parameters>
  14787. </constructor>
  14788. <constructor name="new_gap" c:identifier="gst_event_new_gap">
  14789. <doc xml:space="preserve">Create a new GAP event. A gap event can be thought of as conceptually
  14790. equivalent to a buffer to signal that there is no data for a certain
  14791. amount of time. This is useful to signal a gap to downstream elements
  14792. which may wait for data, such as muxers or mixers or overlays, especially
  14793. for sparse streams such as subtitle streams.</doc>
  14794. <return-value transfer-ownership="full">
  14795. <doc xml:space="preserve">the new GAP event.</doc>
  14796. <type name="Event" c:type="GstEvent*"/>
  14797. </return-value>
  14798. <parameters>
  14799. <parameter name="timestamp" transfer-ownership="none">
  14800. <doc xml:space="preserve">the start time (pts) of the gap</doc>
  14801. <type name="ClockTime" c:type="GstClockTime"/>
  14802. </parameter>
  14803. <parameter name="duration" transfer-ownership="none">
  14804. <doc xml:space="preserve">the duration of the gap</doc>
  14805. <type name="ClockTime" c:type="GstClockTime"/>
  14806. </parameter>
  14807. </parameters>
  14808. </constructor>
  14809. <constructor name="new_latency" c:identifier="gst_event_new_latency">
  14810. <doc xml:space="preserve">Create a new latency event. The event is sent upstream from the sinks and
  14811. notifies elements that they should add an additional @latency to the
  14812. running time before synchronising against the clock.
  14813. The latency is mostly used in live sinks and is always expressed in
  14814. the time format.</doc>
  14815. <return-value transfer-ownership="full">
  14816. <doc xml:space="preserve">a new #GstEvent</doc>
  14817. <type name="Event" c:type="GstEvent*"/>
  14818. </return-value>
  14819. <parameters>
  14820. <parameter name="latency" transfer-ownership="none">
  14821. <doc xml:space="preserve">the new latency value</doc>
  14822. <type name="ClockTime" c:type="GstClockTime"/>
  14823. </parameter>
  14824. </parameters>
  14825. </constructor>
  14826. <constructor name="new_navigation"
  14827. c:identifier="gst_event_new_navigation">
  14828. <doc xml:space="preserve">Create a new navigation event from the given description.</doc>
  14829. <return-value transfer-ownership="full">
  14830. <doc xml:space="preserve">a new #GstEvent</doc>
  14831. <type name="Event" c:type="GstEvent*"/>
  14832. </return-value>
  14833. <parameters>
  14834. <parameter name="structure" transfer-ownership="full">
  14835. <doc xml:space="preserve">description of the event. The event will take
  14836. ownership of the structure.</doc>
  14837. <type name="Structure" c:type="GstStructure*"/>
  14838. </parameter>
  14839. </parameters>
  14840. </constructor>
  14841. <constructor name="new_protection"
  14842. c:identifier="gst_event_new_protection"
  14843. version="1.6">
  14844. <doc xml:space="preserve">Creates a new event containing information specific to a particular
  14845. protection system (uniquely identified by @system_id), by which that
  14846. protection system can acquire key(s) to decrypt a protected stream.
  14847. In order for a decryption element to decrypt media
  14848. protected using a specific system, it first needs all the
  14849. protection system specific information necessary to acquire the decryption
  14850. key(s) for that stream. The functions defined here enable this information
  14851. to be passed in events from elements that extract it
  14852. (e.g., ISOBMFF demuxers, MPEG DASH demuxers) to protection decrypter
  14853. elements that use it.
  14854. Events containing protection system specific information are created using
  14855. #gst_event_new_protection, and they can be parsed by downstream elements
  14856. using #gst_event_parse_protection.
  14857. In Common Encryption, protection system specific information may be located
  14858. within ISOBMFF files, both in movie (moov) boxes and movie fragment (moof)
  14859. boxes; it may also be contained in ContentProtection elements within MPEG
  14860. DASH MPDs. The events created by #gst_event_new_protection contain data
  14861. identifying from which of these locations the encapsulated protection system
  14862. specific information originated. This origin information is required as
  14863. some protection systems use different encodings depending upon where the
  14864. information originates.
  14865. The events returned by gst_event_new_protection() are implemented
  14866. in such a way as to ensure that the most recently-pushed protection info
  14867. event of a particular @origin and @system_id will
  14868. be stuck to the output pad of the sending element.</doc>
  14869. <return-value transfer-ownership="full">
  14870. <doc xml:space="preserve">a #GST_EVENT_PROTECTION event, if successful; %NULL
  14871. if unsuccessful.</doc>
  14872. <type name="Event" c:type="GstEvent*"/>
  14873. </return-value>
  14874. <parameters>
  14875. <parameter name="system_id" transfer-ownership="none">
  14876. <doc xml:space="preserve">a string holding a UUID that uniquely
  14877. identifies a protection system.</doc>
  14878. <type name="utf8" c:type="const gchar*"/>
  14879. </parameter>
  14880. <parameter name="data" transfer-ownership="none">
  14881. <doc xml:space="preserve">a #GstBuffer holding protection system specific
  14882. information. The reference count of the buffer will be incremented by one.</doc>
  14883. <type name="Buffer" c:type="GstBuffer*"/>
  14884. </parameter>
  14885. <parameter name="origin" transfer-ownership="none">
  14886. <doc xml:space="preserve">a string indicating where the protection
  14887. information carried in the event was extracted from. The allowed values
  14888. of this string will depend upon the protection scheme.</doc>
  14889. <type name="utf8" c:type="const gchar*"/>
  14890. </parameter>
  14891. </parameters>
  14892. </constructor>
  14893. <constructor name="new_qos" c:identifier="gst_event_new_qos">
  14894. <doc xml:space="preserve">Allocate a new qos event with the given values.
  14895. The QOS event is generated in an element that wants an upstream
  14896. element to either reduce or increase its rate because of
  14897. high/low CPU load or other resource usage such as network performance or
  14898. throttling. Typically sinks generate these events for each buffer
  14899. they receive.
  14900. @type indicates the reason for the QoS event. #GST_QOS_TYPE_OVERFLOW is
  14901. used when a buffer arrived in time or when the sink cannot keep up with
  14902. the upstream datarate. #GST_QOS_TYPE_UNDERFLOW is when the sink is not
  14903. receiving buffers fast enough and thus has to drop late buffers.
  14904. #GST_QOS_TYPE_THROTTLE is used when the datarate is artificially limited
  14905. by the application, for example to reduce power consumption.
  14906. @proportion indicates the real-time performance of the streaming in the
  14907. element that generated the QoS event (usually the sink). The value is
  14908. generally computed based on more long term statistics about the streams
  14909. timestamps compared to the clock.
  14910. A value &lt; 1.0 indicates that the upstream element is producing data faster
  14911. than real-time. A value &gt; 1.0 indicates that the upstream element is not
  14912. producing data fast enough. 1.0 is the ideal @proportion value. The
  14913. proportion value can safely be used to lower or increase the quality of
  14914. the element.
  14915. @diff is the difference against the clock in running time of the last
  14916. buffer that caused the element to generate the QOS event. A negative value
  14917. means that the buffer with @timestamp arrived in time. A positive value
  14918. indicates how late the buffer with @timestamp was. When throttling is
  14919. enabled, @diff will be set to the requested throttling interval.
  14920. @timestamp is the timestamp of the last buffer that cause the element
  14921. to generate the QOS event. It is expressed in running time and thus an ever
  14922. increasing value.
  14923. The upstream element can use the @diff and @timestamp values to decide
  14924. whether to process more buffers. For positive @diff, all buffers with
  14925. timestamp &lt;= @timestamp + @diff will certainly arrive late in the sink
  14926. as well. A (negative) @diff value so that @timestamp + @diff would yield a
  14927. result smaller than 0 is not allowed.
  14928. The application can use general event probes to intercept the QoS
  14929. event and implement custom application specific QoS handling.</doc>
  14930. <return-value transfer-ownership="full">
  14931. <doc xml:space="preserve">a new QOS event.</doc>
  14932. <type name="Event" c:type="GstEvent*"/>
  14933. </return-value>
  14934. <parameters>
  14935. <parameter name="type" transfer-ownership="none">
  14936. <doc xml:space="preserve">the QoS type</doc>
  14937. <type name="QOSType" c:type="GstQOSType"/>
  14938. </parameter>
  14939. <parameter name="proportion" transfer-ownership="none">
  14940. <doc xml:space="preserve">the proportion of the qos message</doc>
  14941. <type name="gdouble" c:type="gdouble"/>
  14942. </parameter>
  14943. <parameter name="diff" transfer-ownership="none">
  14944. <doc xml:space="preserve">The time difference of the last Clock sync</doc>
  14945. <type name="ClockTimeDiff" c:type="GstClockTimeDiff"/>
  14946. </parameter>
  14947. <parameter name="timestamp" transfer-ownership="none">
  14948. <doc xml:space="preserve">The timestamp of the buffer</doc>
  14949. <type name="ClockTime" c:type="GstClockTime"/>
  14950. </parameter>
  14951. </parameters>
  14952. </constructor>
  14953. <constructor name="new_reconfigure"
  14954. c:identifier="gst_event_new_reconfigure">
  14955. <doc xml:space="preserve">Create a new reconfigure event. The purpose of the reconfigure event is
  14956. to travel upstream and make elements renegotiate their caps or reconfigure
  14957. their buffer pools. This is useful when changing properties on elements
  14958. or changing the topology of the pipeline.</doc>
  14959. <return-value transfer-ownership="full">
  14960. <doc xml:space="preserve">a new #GstEvent</doc>
  14961. <type name="Event" c:type="GstEvent*"/>
  14962. </return-value>
  14963. </constructor>
  14964. <constructor name="new_seek" c:identifier="gst_event_new_seek">
  14965. <doc xml:space="preserve">Allocate a new seek event with the given parameters.
  14966. The seek event configures playback of the pipeline between @start to @stop
  14967. at the speed given in @rate, also called a playback segment.
  14968. The @start and @stop values are expressed in @format.
  14969. A @rate of 1.0 means normal playback rate, 2.0 means double speed.
  14970. Negatives values means backwards playback. A value of 0.0 for the
  14971. rate is not allowed and should be accomplished instead by PAUSING the
  14972. pipeline.
  14973. A pipeline has a default playback segment configured with a start
  14974. position of 0, a stop position of -1 and a rate of 1.0. The currently
  14975. configured playback segment can be queried with #GST_QUERY_SEGMENT.
  14976. @start_type and @stop_type specify how to adjust the currently configured
  14977. start and stop fields in playback segment. Adjustments can be made relative
  14978. or absolute to the last configured values. A type of #GST_SEEK_TYPE_NONE
  14979. means that the position should not be updated.
  14980. When the rate is positive and @start has been updated, playback will start
  14981. from the newly configured start position.
  14982. For negative rates, playback will start from the newly configured stop
  14983. position (if any). If the stop position is updated, it must be different from
  14984. -1 (#GST_CLOCK_TIME_NONE) for negative rates.
  14985. It is not possible to seek relative to the current playback position, to do
  14986. this, PAUSE the pipeline, query the current playback position with
  14987. #GST_QUERY_POSITION and update the playback segment current position with a
  14988. #GST_SEEK_TYPE_SET to the desired position.</doc>
  14989. <return-value transfer-ownership="full">
  14990. <doc xml:space="preserve">a new seek event.</doc>
  14991. <type name="Event" c:type="GstEvent*"/>
  14992. </return-value>
  14993. <parameters>
  14994. <parameter name="rate" transfer-ownership="none">
  14995. <doc xml:space="preserve">The new playback rate</doc>
  14996. <type name="gdouble" c:type="gdouble"/>
  14997. </parameter>
  14998. <parameter name="format" transfer-ownership="none">
  14999. <doc xml:space="preserve">The format of the seek values</doc>
  15000. <type name="Format" c:type="GstFormat"/>
  15001. </parameter>
  15002. <parameter name="flags" transfer-ownership="none">
  15003. <doc xml:space="preserve">The optional seek flags</doc>
  15004. <type name="SeekFlags" c:type="GstSeekFlags"/>
  15005. </parameter>
  15006. <parameter name="start_type" transfer-ownership="none">
  15007. <doc xml:space="preserve">The type and flags for the new start position</doc>
  15008. <type name="SeekType" c:type="GstSeekType"/>
  15009. </parameter>
  15010. <parameter name="start" transfer-ownership="none">
  15011. <doc xml:space="preserve">The value of the new start position</doc>
  15012. <type name="gint64" c:type="gint64"/>
  15013. </parameter>
  15014. <parameter name="stop_type" transfer-ownership="none">
  15015. <doc xml:space="preserve">The type and flags for the new stop position</doc>
  15016. <type name="SeekType" c:type="GstSeekType"/>
  15017. </parameter>
  15018. <parameter name="stop" transfer-ownership="none">
  15019. <doc xml:space="preserve">The value of the new stop position</doc>
  15020. <type name="gint64" c:type="gint64"/>
  15021. </parameter>
  15022. </parameters>
  15023. </constructor>
  15024. <constructor name="new_segment" c:identifier="gst_event_new_segment">
  15025. <doc xml:space="preserve">Create a new SEGMENT event for @segment. The segment event can only travel
  15026. downstream synchronized with the buffer flow and contains timing information
  15027. and playback properties for the buffers that will follow.
  15028. The segment event marks the range of buffers to be processed. All
  15029. data not within the segment range is not to be processed. This can be
  15030. used intelligently by plugins to apply more efficient methods of skipping
  15031. unneeded data. The valid range is expressed with the @start and @stop
  15032. values.
  15033. The time value of the segment is used in conjunction with the start
  15034. value to convert the buffer timestamps into the stream time. This is
  15035. usually done in sinks to report the current stream_time.
  15036. @time represents the stream_time of a buffer carrying a timestamp of
  15037. @start. @time cannot be -1.
  15038. @start cannot be -1, @stop can be -1. If there
  15039. is a valid @stop given, it must be greater or equal the @start, including
  15040. when the indicated playback @rate is &lt; 0.
  15041. The @applied_rate value provides information about any rate adjustment that
  15042. has already been made to the timestamps and content on the buffers of the
  15043. stream. (@rate * @applied_rate) should always equal the rate that has been
  15044. requested for playback. For example, if an element has an input segment
  15045. with intended playback @rate of 2.0 and applied_rate of 1.0, it can adjust
  15046. incoming timestamps and buffer content by half and output a segment event
  15047. with @rate of 1.0 and @applied_rate of 2.0
  15048. After a segment event, the buffer stream time is calculated with:
  15049. time + (TIMESTAMP(buf) - start) * ABS (rate * applied_rate)</doc>
  15050. <return-value transfer-ownership="full">
  15051. <doc xml:space="preserve">the new SEGMENT event.</doc>
  15052. <type name="Event" c:type="GstEvent*"/>
  15053. </return-value>
  15054. <parameters>
  15055. <parameter name="segment" transfer-ownership="none">
  15056. <doc xml:space="preserve">a #GstSegment</doc>
  15057. <type name="Segment" c:type="const GstSegment*"/>
  15058. </parameter>
  15059. </parameters>
  15060. </constructor>
  15061. <constructor name="new_segment_done"
  15062. c:identifier="gst_event_new_segment_done">
  15063. <doc xml:space="preserve">Create a new segment-done event. This event is sent by elements that
  15064. finish playback of a segment as a result of a segment seek.</doc>
  15065. <return-value transfer-ownership="full">
  15066. <doc xml:space="preserve">a new #GstEvent</doc>
  15067. <type name="Event" c:type="GstEvent*"/>
  15068. </return-value>
  15069. <parameters>
  15070. <parameter name="format" transfer-ownership="none">
  15071. <doc xml:space="preserve">The format of the position being done</doc>
  15072. <type name="Format" c:type="GstFormat"/>
  15073. </parameter>
  15074. <parameter name="position" transfer-ownership="none">
  15075. <doc xml:space="preserve">The position of the segment being done</doc>
  15076. <type name="gint64" c:type="gint64"/>
  15077. </parameter>
  15078. </parameters>
  15079. </constructor>
  15080. <constructor name="new_sink_message"
  15081. c:identifier="gst_event_new_sink_message">
  15082. <doc xml:space="preserve">Create a new sink-message event. The purpose of the sink-message event is
  15083. to instruct a sink to post the message contained in the event synchronized
  15084. with the stream.
  15085. @name is used to store multiple sticky events on one pad.</doc>
  15086. <return-value transfer-ownership="full">
  15087. <doc xml:space="preserve">a new #GstEvent</doc>
  15088. <type name="Event" c:type="GstEvent*"/>
  15089. </return-value>
  15090. <parameters>
  15091. <parameter name="name" transfer-ownership="none">
  15092. <doc xml:space="preserve">a name for the event</doc>
  15093. <type name="utf8" c:type="const gchar*"/>
  15094. </parameter>
  15095. <parameter name="msg" transfer-ownership="none">
  15096. <doc xml:space="preserve">the #GstMessage to be posted</doc>
  15097. <type name="Message" c:type="GstMessage*"/>
  15098. </parameter>
  15099. </parameters>
  15100. </constructor>
  15101. <constructor name="new_step" c:identifier="gst_event_new_step">
  15102. <doc xml:space="preserve">Create a new step event. The purpose of the step event is to instruct a sink
  15103. to skip @amount (expressed in @format) of media. It can be used to implement
  15104. stepping through the video frame by frame or for doing fast trick modes.
  15105. A rate of &lt;= 0.0 is not allowed. Pause the pipeline, for the effect of rate
  15106. = 0.0 or first reverse the direction of playback using a seek event to get
  15107. the same effect as rate &lt; 0.0.
  15108. The @flush flag will clear any pending data in the pipeline before starting
  15109. the step operation.
  15110. The @intermediate flag instructs the pipeline that this step operation is
  15111. part of a larger step operation.</doc>
  15112. <return-value transfer-ownership="full">
  15113. <doc xml:space="preserve">a new #GstEvent</doc>
  15114. <type name="Event" c:type="GstEvent*"/>
  15115. </return-value>
  15116. <parameters>
  15117. <parameter name="format" transfer-ownership="none">
  15118. <doc xml:space="preserve">the format of @amount</doc>
  15119. <type name="Format" c:type="GstFormat"/>
  15120. </parameter>
  15121. <parameter name="amount" transfer-ownership="none">
  15122. <doc xml:space="preserve">the amount of data to step</doc>
  15123. <type name="guint64" c:type="guint64"/>
  15124. </parameter>
  15125. <parameter name="rate" transfer-ownership="none">
  15126. <doc xml:space="preserve">the step rate</doc>
  15127. <type name="gdouble" c:type="gdouble"/>
  15128. </parameter>
  15129. <parameter name="flush" transfer-ownership="none">
  15130. <doc xml:space="preserve">flushing steps</doc>
  15131. <type name="gboolean" c:type="gboolean"/>
  15132. </parameter>
  15133. <parameter name="intermediate" transfer-ownership="none">
  15134. <doc xml:space="preserve">intermediate steps</doc>
  15135. <type name="gboolean" c:type="gboolean"/>
  15136. </parameter>
  15137. </parameters>
  15138. </constructor>
  15139. <constructor name="new_stream_start"
  15140. c:identifier="gst_event_new_stream_start">
  15141. <doc xml:space="preserve">Create a new STREAM_START event. The stream start event can only
  15142. travel downstream synchronized with the buffer flow. It is expected
  15143. to be the first event that is sent for a new stream.
  15144. Source elements, demuxers and other elements that create new streams
  15145. are supposed to send this event as the first event of a new stream. It
  15146. should not be sent after a flushing seek or in similar situations
  15147. and is used to mark the beginning of a new logical stream. Elements
  15148. combining multiple streams must ensure that this event is only forwarded
  15149. downstream once and not for every single input stream.
  15150. The @stream_id should be a unique string that consists of the upstream
  15151. stream-id, / as separator and a unique stream-id for this specific
  15152. stream. A new stream-id should only be created for a stream if the upstream
  15153. stream is split into (potentially) multiple new streams, e.g. in a demuxer,
  15154. but not for every single element in the pipeline.
  15155. gst_pad_create_stream_id() or gst_pad_create_stream_id_printf() can be
  15156. used to create a stream-id. There are no particular semantics for the
  15157. stream-id, though it should be deterministic (to support stream matching)
  15158. and it might be used to order streams (besides any information conveyed by
  15159. stream flags).</doc>
  15160. <return-value transfer-ownership="full">
  15161. <doc xml:space="preserve">the new STREAM_START event.</doc>
  15162. <type name="Event" c:type="GstEvent*"/>
  15163. </return-value>
  15164. <parameters>
  15165. <parameter name="stream_id" transfer-ownership="none">
  15166. <doc xml:space="preserve">Identifier for this stream</doc>
  15167. <type name="utf8" c:type="const gchar*"/>
  15168. </parameter>
  15169. </parameters>
  15170. </constructor>
  15171. <constructor name="new_tag" c:identifier="gst_event_new_tag">
  15172. <doc xml:space="preserve">Generates a metadata tag event from the given @taglist.
  15173. The scope of the taglist specifies if the taglist applies to the
  15174. complete medium or only to this specific stream. As the tag event
  15175. is a sticky event, elements should merge tags received from
  15176. upstream with a given scope with their own tags with the same
  15177. scope and create a new tag event from it.</doc>
  15178. <return-value transfer-ownership="full">
  15179. <doc xml:space="preserve">a new #GstEvent</doc>
  15180. <type name="Event" c:type="GstEvent*"/>
  15181. </return-value>
  15182. <parameters>
  15183. <parameter name="taglist" transfer-ownership="full">
  15184. <doc xml:space="preserve">metadata list. The event will take ownership
  15185. of the taglist.</doc>
  15186. <type name="TagList" c:type="GstTagList*"/>
  15187. </parameter>
  15188. </parameters>
  15189. </constructor>
  15190. <constructor name="new_toc" c:identifier="gst_event_new_toc">
  15191. <doc xml:space="preserve">Generate a TOC event from the given @toc. The purpose of the TOC event is to
  15192. inform elements that some kind of the TOC was found.</doc>
  15193. <return-value transfer-ownership="full">
  15194. <doc xml:space="preserve">a new #GstEvent.</doc>
  15195. <type name="Event" c:type="GstEvent*"/>
  15196. </return-value>
  15197. <parameters>
  15198. <parameter name="toc" transfer-ownership="none">
  15199. <doc xml:space="preserve">#GstToc structure.</doc>
  15200. <type name="Toc" c:type="GstToc*"/>
  15201. </parameter>
  15202. <parameter name="updated" transfer-ownership="none">
  15203. <doc xml:space="preserve">whether @toc was updated or not.</doc>
  15204. <type name="gboolean" c:type="gboolean"/>
  15205. </parameter>
  15206. </parameters>
  15207. </constructor>
  15208. <constructor name="new_toc_select"
  15209. c:identifier="gst_event_new_toc_select">
  15210. <doc xml:space="preserve">Generate a TOC select event with the given @uid. The purpose of the
  15211. TOC select event is to start playback based on the TOC's entry with the
  15212. given @uid.</doc>
  15213. <return-value transfer-ownership="full">
  15214. <doc xml:space="preserve">a new #GstEvent.</doc>
  15215. <type name="Event" c:type="GstEvent*"/>
  15216. </return-value>
  15217. <parameters>
  15218. <parameter name="uid" transfer-ownership="none">
  15219. <doc xml:space="preserve">UID in the TOC to start playback from.</doc>
  15220. <type name="utf8" c:type="const gchar*"/>
  15221. </parameter>
  15222. </parameters>
  15223. </constructor>
  15224. <method name="copy_segment" c:identifier="gst_event_copy_segment">
  15225. <doc xml:space="preserve">Parses a segment @event and copies the #GstSegment into the location
  15226. given by @segment.</doc>
  15227. <return-value transfer-ownership="none">
  15228. <type name="none" c:type="void"/>
  15229. </return-value>
  15230. <parameters>
  15231. <instance-parameter name="event" transfer-ownership="none">
  15232. <doc xml:space="preserve">The event to parse</doc>
  15233. <type name="Event" c:type="GstEvent*"/>
  15234. </instance-parameter>
  15235. <parameter name="segment" transfer-ownership="none">
  15236. <doc xml:space="preserve">a pointer to a #GstSegment</doc>
  15237. <type name="Segment" c:type="GstSegment*"/>
  15238. </parameter>
  15239. </parameters>
  15240. </method>
  15241. <method name="get_running_time_offset"
  15242. c:identifier="gst_event_get_running_time_offset"
  15243. version="1.4">
  15244. <doc xml:space="preserve">Retrieve the accumulated running time offset of the event.
  15245. Events passing through #GstPads that have a running time
  15246. offset set via gst_pad_set_offset() will get their offset
  15247. adjusted according to the pad's offset.
  15248. If the event contains any information that related to the
  15249. running time, this information will need to be updated
  15250. before usage with this offset.</doc>
  15251. <return-value transfer-ownership="none">
  15252. <doc xml:space="preserve">The event's running time offset
  15253. MT safe.</doc>
  15254. <type name="gint64" c:type="gint64"/>
  15255. </return-value>
  15256. <parameters>
  15257. <instance-parameter name="event" transfer-ownership="none">
  15258. <doc xml:space="preserve">A #GstEvent.</doc>
  15259. <type name="Event" c:type="GstEvent*"/>
  15260. </instance-parameter>
  15261. </parameters>
  15262. </method>
  15263. <method name="get_seqnum" c:identifier="gst_event_get_seqnum">
  15264. <doc xml:space="preserve">Retrieve the sequence number of a event.
  15265. Events have ever-incrementing sequence numbers, which may also be set
  15266. explicitly via gst_event_set_seqnum(). Sequence numbers are typically used to
  15267. indicate that a event corresponds to some other set of events or messages,
  15268. for example an EOS event corresponding to a SEEK event. It is considered good
  15269. practice to make this correspondence when possible, though it is not
  15270. required.
  15271. Note that events and messages share the same sequence number incrementor;
  15272. two events or messages will never have the same sequence number unless
  15273. that correspondence was made explicitly.</doc>
  15274. <return-value transfer-ownership="none">
  15275. <doc xml:space="preserve">The event's sequence number.
  15276. MT safe.</doc>
  15277. <type name="guint32" c:type="guint32"/>
  15278. </return-value>
  15279. <parameters>
  15280. <instance-parameter name="event" transfer-ownership="none">
  15281. <doc xml:space="preserve">A #GstEvent.</doc>
  15282. <type name="Event" c:type="GstEvent*"/>
  15283. </instance-parameter>
  15284. </parameters>
  15285. </method>
  15286. <method name="get_structure" c:identifier="gst_event_get_structure">
  15287. <doc xml:space="preserve">Access the structure of the event.</doc>
  15288. <return-value transfer-ownership="none">
  15289. <doc xml:space="preserve">The structure of the event. The structure is still
  15290. owned by the event, which means that you should not free it and
  15291. that the pointer becomes invalid when you free the event.
  15292. MT safe.</doc>
  15293. <type name="Structure" c:type="const GstStructure*"/>
  15294. </return-value>
  15295. <parameters>
  15296. <instance-parameter name="event" transfer-ownership="none">
  15297. <doc xml:space="preserve">The #GstEvent.</doc>
  15298. <type name="Event" c:type="GstEvent*"/>
  15299. </instance-parameter>
  15300. </parameters>
  15301. </method>
  15302. <method name="has_name" c:identifier="gst_event_has_name">
  15303. <doc xml:space="preserve">Checks if @event has the given @name. This function is usually used to
  15304. check the name of a custom event.</doc>
  15305. <return-value transfer-ownership="none">
  15306. <doc xml:space="preserve">%TRUE if @name matches the name of the event structure.</doc>
  15307. <type name="gboolean" c:type="gboolean"/>
  15308. </return-value>
  15309. <parameters>
  15310. <instance-parameter name="event" transfer-ownership="none">
  15311. <doc xml:space="preserve">The #GstEvent.</doc>
  15312. <type name="Event" c:type="GstEvent*"/>
  15313. </instance-parameter>
  15314. <parameter name="name" transfer-ownership="none">
  15315. <doc xml:space="preserve">name to check</doc>
  15316. <type name="utf8" c:type="const gchar*"/>
  15317. </parameter>
  15318. </parameters>
  15319. </method>
  15320. <method name="parse_buffer_size"
  15321. c:identifier="gst_event_parse_buffer_size">
  15322. <doc xml:space="preserve">Get the format, minsize, maxsize and async-flag in the buffersize event.</doc>
  15323. <return-value transfer-ownership="none">
  15324. <type name="none" c:type="void"/>
  15325. </return-value>
  15326. <parameters>
  15327. <instance-parameter name="event" transfer-ownership="none">
  15328. <doc xml:space="preserve">The event to query</doc>
  15329. <type name="Event" c:type="GstEvent*"/>
  15330. </instance-parameter>
  15331. <parameter name="format"
  15332. direction="out"
  15333. caller-allocates="0"
  15334. transfer-ownership="full">
  15335. <doc xml:space="preserve">A pointer to store the format in</doc>
  15336. <type name="Format" c:type="GstFormat*"/>
  15337. </parameter>
  15338. <parameter name="minsize"
  15339. direction="out"
  15340. caller-allocates="0"
  15341. transfer-ownership="full">
  15342. <doc xml:space="preserve">A pointer to store the minsize in</doc>
  15343. <type name="gint64" c:type="gint64*"/>
  15344. </parameter>
  15345. <parameter name="maxsize"
  15346. direction="out"
  15347. caller-allocates="0"
  15348. transfer-ownership="full">
  15349. <doc xml:space="preserve">A pointer to store the maxsize in</doc>
  15350. <type name="gint64" c:type="gint64*"/>
  15351. </parameter>
  15352. <parameter name="async"
  15353. direction="out"
  15354. caller-allocates="0"
  15355. transfer-ownership="full">
  15356. <doc xml:space="preserve">A pointer to store the async-flag in</doc>
  15357. <type name="gboolean" c:type="gboolean*"/>
  15358. </parameter>
  15359. </parameters>
  15360. </method>
  15361. <method name="parse_caps" c:identifier="gst_event_parse_caps">
  15362. <doc xml:space="preserve">Get the caps from @event. The caps remains valid as long as @event remains
  15363. valid.</doc>
  15364. <return-value transfer-ownership="none">
  15365. <type name="none" c:type="void"/>
  15366. </return-value>
  15367. <parameters>
  15368. <instance-parameter name="event" transfer-ownership="none">
  15369. <doc xml:space="preserve">The event to parse</doc>
  15370. <type name="Event" c:type="GstEvent*"/>
  15371. </instance-parameter>
  15372. <parameter name="caps"
  15373. direction="out"
  15374. caller-allocates="0"
  15375. transfer-ownership="none">
  15376. <doc xml:space="preserve">A pointer to the caps</doc>
  15377. <type name="Caps" c:type="GstCaps**"/>
  15378. </parameter>
  15379. </parameters>
  15380. </method>
  15381. <method name="parse_flush_stop"
  15382. c:identifier="gst_event_parse_flush_stop">
  15383. <doc xml:space="preserve">Parse the FLUSH_STOP event and retrieve the @reset_time member.</doc>
  15384. <return-value transfer-ownership="none">
  15385. <type name="none" c:type="void"/>
  15386. </return-value>
  15387. <parameters>
  15388. <instance-parameter name="event" transfer-ownership="none">
  15389. <doc xml:space="preserve">The event to parse</doc>
  15390. <type name="Event" c:type="GstEvent*"/>
  15391. </instance-parameter>
  15392. <parameter name="reset_time"
  15393. direction="out"
  15394. caller-allocates="0"
  15395. transfer-ownership="full">
  15396. <doc xml:space="preserve">if time should be reset</doc>
  15397. <type name="gboolean" c:type="gboolean*"/>
  15398. </parameter>
  15399. </parameters>
  15400. </method>
  15401. <method name="parse_gap" c:identifier="gst_event_parse_gap">
  15402. <doc xml:space="preserve">Extract timestamp and duration from a new GAP event.</doc>
  15403. <return-value transfer-ownership="none">
  15404. <type name="none" c:type="void"/>
  15405. </return-value>
  15406. <parameters>
  15407. <instance-parameter name="event" transfer-ownership="none">
  15408. <doc xml:space="preserve">a #GstEvent of type #GST_EVENT_GAP</doc>
  15409. <type name="Event" c:type="GstEvent*"/>
  15410. </instance-parameter>
  15411. <parameter name="timestamp"
  15412. direction="out"
  15413. caller-allocates="0"
  15414. transfer-ownership="full"
  15415. optional="1"
  15416. allow-none="1">
  15417. <doc xml:space="preserve">location where to store the
  15418. start time (pts) of the gap, or %NULL</doc>
  15419. <type name="ClockTime" c:type="GstClockTime*"/>
  15420. </parameter>
  15421. <parameter name="duration"
  15422. direction="out"
  15423. caller-allocates="0"
  15424. transfer-ownership="full"
  15425. optional="1"
  15426. allow-none="1">
  15427. <doc xml:space="preserve">location where to store the duration of
  15428. the gap, or %NULL</doc>
  15429. <type name="ClockTime" c:type="GstClockTime*"/>
  15430. </parameter>
  15431. </parameters>
  15432. </method>
  15433. <method name="parse_group_id"
  15434. c:identifier="gst_event_parse_group_id"
  15435. version="1.2">
  15436. <return-value transfer-ownership="none">
  15437. <doc xml:space="preserve">%TRUE if a group id was set on the event and could be parsed,
  15438. %FALSE otherwise.</doc>
  15439. <type name="gboolean" c:type="gboolean"/>
  15440. </return-value>
  15441. <parameters>
  15442. <instance-parameter name="event" transfer-ownership="none">
  15443. <doc xml:space="preserve">a stream-start event</doc>
  15444. <type name="Event" c:type="GstEvent*"/>
  15445. </instance-parameter>
  15446. <parameter name="group_id"
  15447. direction="out"
  15448. caller-allocates="0"
  15449. transfer-ownership="full">
  15450. <doc xml:space="preserve">address of variable where to store the group id</doc>
  15451. <type name="guint" c:type="guint*"/>
  15452. </parameter>
  15453. </parameters>
  15454. </method>
  15455. <method name="parse_latency" c:identifier="gst_event_parse_latency">
  15456. <doc xml:space="preserve">Get the latency in the latency event.</doc>
  15457. <return-value transfer-ownership="none">
  15458. <type name="none" c:type="void"/>
  15459. </return-value>
  15460. <parameters>
  15461. <instance-parameter name="event" transfer-ownership="none">
  15462. <doc xml:space="preserve">The event to query</doc>
  15463. <type name="Event" c:type="GstEvent*"/>
  15464. </instance-parameter>
  15465. <parameter name="latency"
  15466. direction="out"
  15467. caller-allocates="0"
  15468. transfer-ownership="full">
  15469. <doc xml:space="preserve">A pointer to store the latency in.</doc>
  15470. <type name="ClockTime" c:type="GstClockTime*"/>
  15471. </parameter>
  15472. </parameters>
  15473. </method>
  15474. <method name="parse_protection"
  15475. c:identifier="gst_event_parse_protection"
  15476. version="1.6">
  15477. <doc xml:space="preserve">Parses an event containing protection system specific information and stores
  15478. the results in @system_id, @data and @origin. The data stored in @system_id,
  15479. @origin and @data are valid until @event is released.</doc>
  15480. <return-value transfer-ownership="none">
  15481. <type name="none" c:type="void"/>
  15482. </return-value>
  15483. <parameters>
  15484. <instance-parameter name="event" transfer-ownership="none">
  15485. <doc xml:space="preserve">a #GST_EVENT_PROTECTION event.</doc>
  15486. <type name="Event" c:type="GstEvent*"/>
  15487. </instance-parameter>
  15488. <parameter name="system_id"
  15489. direction="out"
  15490. caller-allocates="0"
  15491. transfer-ownership="none"
  15492. optional="1"
  15493. allow-none="1">
  15494. <doc xml:space="preserve">pointer to store the UUID
  15495. string uniquely identifying a content protection system.</doc>
  15496. <type name="utf8" c:type="const gchar**"/>
  15497. </parameter>
  15498. <parameter name="data"
  15499. direction="out"
  15500. caller-allocates="0"
  15501. transfer-ownership="none"
  15502. optional="1"
  15503. allow-none="1">
  15504. <doc xml:space="preserve">pointer to store a #GstBuffer
  15505. holding protection system specific information.</doc>
  15506. <type name="Buffer" c:type="GstBuffer**"/>
  15507. </parameter>
  15508. <parameter name="origin"
  15509. transfer-ownership="none"
  15510. nullable="1"
  15511. allow-none="1">
  15512. <doc xml:space="preserve">pointer to store a value that
  15513. indicates where the protection information carried by @event was extracted
  15514. from.</doc>
  15515. <type name="utf8" c:type="const gchar**"/>
  15516. </parameter>
  15517. </parameters>
  15518. </method>
  15519. <method name="parse_qos" c:identifier="gst_event_parse_qos">
  15520. <doc xml:space="preserve">Get the type, proportion, diff and timestamp in the qos event. See
  15521. gst_event_new_qos() for more information about the different QoS values.
  15522. @timestamp will be adjusted for any pad offsets of pads it was passing through.</doc>
  15523. <return-value transfer-ownership="none">
  15524. <type name="none" c:type="void"/>
  15525. </return-value>
  15526. <parameters>
  15527. <instance-parameter name="event" transfer-ownership="none">
  15528. <doc xml:space="preserve">The event to query</doc>
  15529. <type name="Event" c:type="GstEvent*"/>
  15530. </instance-parameter>
  15531. <parameter name="type"
  15532. direction="out"
  15533. caller-allocates="0"
  15534. transfer-ownership="full">
  15535. <doc xml:space="preserve">A pointer to store the QoS type in</doc>
  15536. <type name="QOSType" c:type="GstQOSType*"/>
  15537. </parameter>
  15538. <parameter name="proportion"
  15539. direction="out"
  15540. caller-allocates="0"
  15541. transfer-ownership="full">
  15542. <doc xml:space="preserve">A pointer to store the proportion in</doc>
  15543. <type name="gdouble" c:type="gdouble*"/>
  15544. </parameter>
  15545. <parameter name="diff"
  15546. direction="out"
  15547. caller-allocates="0"
  15548. transfer-ownership="full">
  15549. <doc xml:space="preserve">A pointer to store the diff in</doc>
  15550. <type name="ClockTimeDiff" c:type="GstClockTimeDiff*"/>
  15551. </parameter>
  15552. <parameter name="timestamp"
  15553. direction="out"
  15554. caller-allocates="0"
  15555. transfer-ownership="full">
  15556. <doc xml:space="preserve">A pointer to store the timestamp in</doc>
  15557. <type name="ClockTime" c:type="GstClockTime*"/>
  15558. </parameter>
  15559. </parameters>
  15560. </method>
  15561. <method name="parse_seek" c:identifier="gst_event_parse_seek">
  15562. <doc xml:space="preserve">Parses a seek @event and stores the results in the given result locations.</doc>
  15563. <return-value transfer-ownership="none">
  15564. <type name="none" c:type="void"/>
  15565. </return-value>
  15566. <parameters>
  15567. <instance-parameter name="event" transfer-ownership="none">
  15568. <doc xml:space="preserve">a seek event</doc>
  15569. <type name="Event" c:type="GstEvent*"/>
  15570. </instance-parameter>
  15571. <parameter name="rate"
  15572. direction="out"
  15573. caller-allocates="0"
  15574. transfer-ownership="full">
  15575. <doc xml:space="preserve">result location for the rate</doc>
  15576. <type name="gdouble" c:type="gdouble*"/>
  15577. </parameter>
  15578. <parameter name="format"
  15579. direction="out"
  15580. caller-allocates="0"
  15581. transfer-ownership="full">
  15582. <doc xml:space="preserve">result location for the stream format</doc>
  15583. <type name="Format" c:type="GstFormat*"/>
  15584. </parameter>
  15585. <parameter name="flags"
  15586. direction="out"
  15587. caller-allocates="0"
  15588. transfer-ownership="full">
  15589. <doc xml:space="preserve">result location for the #GstSeekFlags</doc>
  15590. <type name="SeekFlags" c:type="GstSeekFlags*"/>
  15591. </parameter>
  15592. <parameter name="start_type"
  15593. direction="out"
  15594. caller-allocates="0"
  15595. transfer-ownership="full">
  15596. <doc xml:space="preserve">result location for the #GstSeekType of the start position</doc>
  15597. <type name="SeekType" c:type="GstSeekType*"/>
  15598. </parameter>
  15599. <parameter name="start"
  15600. direction="out"
  15601. caller-allocates="0"
  15602. transfer-ownership="full">
  15603. <doc xml:space="preserve">result location for the start position expressed in @format</doc>
  15604. <type name="gint64" c:type="gint64*"/>
  15605. </parameter>
  15606. <parameter name="stop_type"
  15607. direction="out"
  15608. caller-allocates="0"
  15609. transfer-ownership="full">
  15610. <doc xml:space="preserve">result location for the #GstSeekType of the stop position</doc>
  15611. <type name="SeekType" c:type="GstSeekType*"/>
  15612. </parameter>
  15613. <parameter name="stop"
  15614. direction="out"
  15615. caller-allocates="0"
  15616. transfer-ownership="full">
  15617. <doc xml:space="preserve">result location for the stop position expressed in @format</doc>
  15618. <type name="gint64" c:type="gint64*"/>
  15619. </parameter>
  15620. </parameters>
  15621. </method>
  15622. <method name="parse_segment" c:identifier="gst_event_parse_segment">
  15623. <doc xml:space="preserve">Parses a segment @event and stores the result in the given @segment location.
  15624. @segment remains valid only until the @event is freed. Don't modify the segment
  15625. and make a copy if you want to modify it or store it for later use.</doc>
  15626. <return-value transfer-ownership="none">
  15627. <type name="none" c:type="void"/>
  15628. </return-value>
  15629. <parameters>
  15630. <instance-parameter name="event" transfer-ownership="none">
  15631. <doc xml:space="preserve">The event to parse</doc>
  15632. <type name="Event" c:type="GstEvent*"/>
  15633. </instance-parameter>
  15634. <parameter name="segment"
  15635. direction="out"
  15636. caller-allocates="0"
  15637. transfer-ownership="none">
  15638. <doc xml:space="preserve">a pointer to a #GstSegment</doc>
  15639. <type name="Segment" c:type="const GstSegment**"/>
  15640. </parameter>
  15641. </parameters>
  15642. </method>
  15643. <method name="parse_segment_done"
  15644. c:identifier="gst_event_parse_segment_done">
  15645. <doc xml:space="preserve">Extracts the position and format from the segment done message.</doc>
  15646. <return-value transfer-ownership="none">
  15647. <type name="none" c:type="void"/>
  15648. </return-value>
  15649. <parameters>
  15650. <instance-parameter name="event" transfer-ownership="none">
  15651. <doc xml:space="preserve">A valid #GstEvent of type GST_EVENT_SEGMENT_DONE.</doc>
  15652. <type name="Event" c:type="GstEvent*"/>
  15653. </instance-parameter>
  15654. <parameter name="format"
  15655. direction="out"
  15656. caller-allocates="0"
  15657. transfer-ownership="full"
  15658. optional="1"
  15659. allow-none="1">
  15660. <doc xml:space="preserve">Result location for the format, or %NULL</doc>
  15661. <type name="Format" c:type="GstFormat*"/>
  15662. </parameter>
  15663. <parameter name="position"
  15664. direction="out"
  15665. caller-allocates="0"
  15666. transfer-ownership="full"
  15667. optional="1"
  15668. allow-none="1">
  15669. <doc xml:space="preserve">Result location for the position, or %NULL</doc>
  15670. <type name="gint64" c:type="gint64*"/>
  15671. </parameter>
  15672. </parameters>
  15673. </method>
  15674. <method name="parse_sink_message"
  15675. c:identifier="gst_event_parse_sink_message">
  15676. <doc xml:space="preserve">Parse the sink-message event. Unref @msg after usage.</doc>
  15677. <return-value transfer-ownership="none">
  15678. <type name="none" c:type="void"/>
  15679. </return-value>
  15680. <parameters>
  15681. <instance-parameter name="event" transfer-ownership="none">
  15682. <doc xml:space="preserve">The event to query</doc>
  15683. <type name="Event" c:type="GstEvent*"/>
  15684. </instance-parameter>
  15685. <parameter name="msg"
  15686. direction="out"
  15687. caller-allocates="0"
  15688. transfer-ownership="full">
  15689. <doc xml:space="preserve">a pointer to store the #GstMessage in.</doc>
  15690. <type name="Message" c:type="GstMessage**"/>
  15691. </parameter>
  15692. </parameters>
  15693. </method>
  15694. <method name="parse_step" c:identifier="gst_event_parse_step">
  15695. <doc xml:space="preserve">Parse the step event.</doc>
  15696. <return-value transfer-ownership="none">
  15697. <type name="none" c:type="void"/>
  15698. </return-value>
  15699. <parameters>
  15700. <instance-parameter name="event" transfer-ownership="none">
  15701. <doc xml:space="preserve">The event to query</doc>
  15702. <type name="Event" c:type="GstEvent*"/>
  15703. </instance-parameter>
  15704. <parameter name="format"
  15705. direction="out"
  15706. caller-allocates="0"
  15707. transfer-ownership="full"
  15708. optional="1"
  15709. allow-none="1">
  15710. <doc xml:space="preserve">a pointer to store the format in</doc>
  15711. <type name="Format" c:type="GstFormat*"/>
  15712. </parameter>
  15713. <parameter name="amount"
  15714. direction="out"
  15715. caller-allocates="0"
  15716. transfer-ownership="full"
  15717. optional="1"
  15718. allow-none="1">
  15719. <doc xml:space="preserve">a pointer to store the amount in</doc>
  15720. <type name="guint64" c:type="guint64*"/>
  15721. </parameter>
  15722. <parameter name="rate"
  15723. direction="out"
  15724. caller-allocates="0"
  15725. transfer-ownership="full"
  15726. optional="1"
  15727. allow-none="1">
  15728. <doc xml:space="preserve">a pointer to store the rate in</doc>
  15729. <type name="gdouble" c:type="gdouble*"/>
  15730. </parameter>
  15731. <parameter name="flush"
  15732. direction="out"
  15733. caller-allocates="0"
  15734. transfer-ownership="full"
  15735. optional="1"
  15736. allow-none="1">
  15737. <doc xml:space="preserve">a pointer to store the flush boolean in</doc>
  15738. <type name="gboolean" c:type="gboolean*"/>
  15739. </parameter>
  15740. <parameter name="intermediate"
  15741. direction="out"
  15742. caller-allocates="0"
  15743. transfer-ownership="full"
  15744. optional="1"
  15745. allow-none="1">
  15746. <doc xml:space="preserve">a pointer to store the intermediate
  15747. boolean in</doc>
  15748. <type name="gboolean" c:type="gboolean*"/>
  15749. </parameter>
  15750. </parameters>
  15751. </method>
  15752. <method name="parse_stream_flags"
  15753. c:identifier="gst_event_parse_stream_flags"
  15754. version="1.2">
  15755. <return-value transfer-ownership="none">
  15756. <type name="none" c:type="void"/>
  15757. </return-value>
  15758. <parameters>
  15759. <instance-parameter name="event" transfer-ownership="none">
  15760. <doc xml:space="preserve">a stream-start event</doc>
  15761. <type name="Event" c:type="GstEvent*"/>
  15762. </instance-parameter>
  15763. <parameter name="flags"
  15764. direction="out"
  15765. caller-allocates="0"
  15766. transfer-ownership="full">
  15767. <doc xml:space="preserve">address of variable where to store the stream flags</doc>
  15768. <type name="StreamFlags" c:type="GstStreamFlags*"/>
  15769. </parameter>
  15770. </parameters>
  15771. </method>
  15772. <method name="parse_stream_start"
  15773. c:identifier="gst_event_parse_stream_start">
  15774. <doc xml:space="preserve">Parse a stream-id @event and store the result in the given @stream_id
  15775. location. The string stored in @stream_id must not be modified and will
  15776. remain valid only until @event gets freed. Make a copy if you want to
  15777. modify it or store it for later use.</doc>
  15778. <return-value transfer-ownership="none">
  15779. <type name="none" c:type="void"/>
  15780. </return-value>
  15781. <parameters>
  15782. <instance-parameter name="event" transfer-ownership="none">
  15783. <doc xml:space="preserve">a stream-start event.</doc>
  15784. <type name="Event" c:type="GstEvent*"/>
  15785. </instance-parameter>
  15786. <parameter name="stream_id"
  15787. direction="out"
  15788. caller-allocates="0"
  15789. transfer-ownership="none">
  15790. <doc xml:space="preserve">pointer to store the stream-id</doc>
  15791. <type name="utf8" c:type="const gchar**"/>
  15792. </parameter>
  15793. </parameters>
  15794. </method>
  15795. <method name="parse_tag" c:identifier="gst_event_parse_tag">
  15796. <doc xml:space="preserve">Parses a tag @event and stores the results in the given @taglist location.
  15797. No reference to the taglist will be returned, it remains valid only until
  15798. the @event is freed. Don't modify or free the taglist, make a copy if you
  15799. want to modify it or store it for later use.</doc>
  15800. <return-value transfer-ownership="none">
  15801. <type name="none" c:type="void"/>
  15802. </return-value>
  15803. <parameters>
  15804. <instance-parameter name="event" transfer-ownership="none">
  15805. <doc xml:space="preserve">a tag event</doc>
  15806. <type name="Event" c:type="GstEvent*"/>
  15807. </instance-parameter>
  15808. <parameter name="taglist"
  15809. direction="out"
  15810. caller-allocates="0"
  15811. transfer-ownership="none">
  15812. <doc xml:space="preserve">pointer to metadata list</doc>
  15813. <type name="TagList" c:type="GstTagList**"/>
  15814. </parameter>
  15815. </parameters>
  15816. </method>
  15817. <method name="parse_toc" c:identifier="gst_event_parse_toc">
  15818. <doc xml:space="preserve">Parse a TOC @event and store the results in the given @toc and @updated locations.</doc>
  15819. <return-value transfer-ownership="none">
  15820. <type name="none" c:type="void"/>
  15821. </return-value>
  15822. <parameters>
  15823. <instance-parameter name="event" transfer-ownership="none">
  15824. <doc xml:space="preserve">a TOC event.</doc>
  15825. <type name="Event" c:type="GstEvent*"/>
  15826. </instance-parameter>
  15827. <parameter name="toc"
  15828. direction="out"
  15829. caller-allocates="0"
  15830. transfer-ownership="full">
  15831. <doc xml:space="preserve">pointer to #GstToc structure.</doc>
  15832. <type name="Toc" c:type="GstToc**"/>
  15833. </parameter>
  15834. <parameter name="updated"
  15835. direction="out"
  15836. caller-allocates="0"
  15837. transfer-ownership="full">
  15838. <doc xml:space="preserve">pointer to store TOC updated flag.</doc>
  15839. <type name="gboolean" c:type="gboolean*"/>
  15840. </parameter>
  15841. </parameters>
  15842. </method>
  15843. <method name="parse_toc_select"
  15844. c:identifier="gst_event_parse_toc_select">
  15845. <doc xml:space="preserve">Parse a TOC select @event and store the results in the given @uid location.</doc>
  15846. <return-value transfer-ownership="none">
  15847. <type name="none" c:type="void"/>
  15848. </return-value>
  15849. <parameters>
  15850. <instance-parameter name="event" transfer-ownership="none">
  15851. <doc xml:space="preserve">a TOC select event.</doc>
  15852. <type name="Event" c:type="GstEvent*"/>
  15853. </instance-parameter>
  15854. <parameter name="uid"
  15855. direction="out"
  15856. caller-allocates="0"
  15857. transfer-ownership="full"
  15858. optional="1"
  15859. allow-none="1">
  15860. <doc xml:space="preserve">storage for the selection UID.</doc>
  15861. <type name="utf8" c:type="gchar**"/>
  15862. </parameter>
  15863. </parameters>
  15864. </method>
  15865. <method name="set_group_id"
  15866. c:identifier="gst_event_set_group_id"
  15867. version="1.2">
  15868. <doc xml:space="preserve">All streams that have the same group id are supposed to be played
  15869. together, i.e. all streams inside a container file should have the
  15870. same group id but different stream ids. The group id should change
  15871. each time the stream is started, resulting in different group ids
  15872. each time a file is played for example.
  15873. Use gst_util_group_id_next() to get a new group id.</doc>
  15874. <return-value transfer-ownership="none">
  15875. <type name="none" c:type="void"/>
  15876. </return-value>
  15877. <parameters>
  15878. <instance-parameter name="event" transfer-ownership="none">
  15879. <doc xml:space="preserve">a stream-start event</doc>
  15880. <type name="Event" c:type="GstEvent*"/>
  15881. </instance-parameter>
  15882. <parameter name="group_id" transfer-ownership="none">
  15883. <doc xml:space="preserve">the group id to set</doc>
  15884. <type name="guint" c:type="guint"/>
  15885. </parameter>
  15886. </parameters>
  15887. </method>
  15888. <method name="set_running_time_offset"
  15889. c:identifier="gst_event_set_running_time_offset"
  15890. version="1.4">
  15891. <doc xml:space="preserve">Set the running time offset of a event. See
  15892. gst_event_get_running_time_offset() for more information.
  15893. MT safe.</doc>
  15894. <return-value transfer-ownership="none">
  15895. <type name="none" c:type="void"/>
  15896. </return-value>
  15897. <parameters>
  15898. <instance-parameter name="event" transfer-ownership="none">
  15899. <doc xml:space="preserve">A #GstEvent.</doc>
  15900. <type name="Event" c:type="GstEvent*"/>
  15901. </instance-parameter>
  15902. <parameter name="offset" transfer-ownership="none">
  15903. <doc xml:space="preserve">A the new running time offset</doc>
  15904. <type name="gint64" c:type="gint64"/>
  15905. </parameter>
  15906. </parameters>
  15907. </method>
  15908. <method name="set_seqnum" c:identifier="gst_event_set_seqnum">
  15909. <doc xml:space="preserve">Set the sequence number of a event.
  15910. This function might be called by the creator of a event to indicate that the
  15911. event relates to other events or messages. See gst_event_get_seqnum() for
  15912. more information.
  15913. MT safe.</doc>
  15914. <return-value transfer-ownership="none">
  15915. <type name="none" c:type="void"/>
  15916. </return-value>
  15917. <parameters>
  15918. <instance-parameter name="event" transfer-ownership="none">
  15919. <doc xml:space="preserve">A #GstEvent.</doc>
  15920. <type name="Event" c:type="GstEvent*"/>
  15921. </instance-parameter>
  15922. <parameter name="seqnum" transfer-ownership="none">
  15923. <doc xml:space="preserve">A sequence number.</doc>
  15924. <type name="guint32" c:type="guint32"/>
  15925. </parameter>
  15926. </parameters>
  15927. </method>
  15928. <method name="set_stream_flags"
  15929. c:identifier="gst_event_set_stream_flags"
  15930. version="1.2">
  15931. <return-value transfer-ownership="none">
  15932. <type name="none" c:type="void"/>
  15933. </return-value>
  15934. <parameters>
  15935. <instance-parameter name="event" transfer-ownership="none">
  15936. <doc xml:space="preserve">a stream-start event</doc>
  15937. <type name="Event" c:type="GstEvent*"/>
  15938. </instance-parameter>
  15939. <parameter name="flags" transfer-ownership="none">
  15940. <doc xml:space="preserve">the stream flags to set</doc>
  15941. <type name="StreamFlags" c:type="GstStreamFlags"/>
  15942. </parameter>
  15943. </parameters>
  15944. </method>
  15945. <method name="writable_structure"
  15946. c:identifier="gst_event_writable_structure">
  15947. <doc xml:space="preserve">Get a writable version of the structure.</doc>
  15948. <return-value transfer-ownership="none">
  15949. <doc xml:space="preserve">The structure of the event. The structure
  15950. is still owned by the event, which means that you should not free
  15951. it and that the pointer becomes invalid when you free the event.
  15952. This function checks if @event is writable and will never return
  15953. %NULL.
  15954. MT safe.</doc>
  15955. <type name="Structure" c:type="GstStructure*"/>
  15956. </return-value>
  15957. <parameters>
  15958. <instance-parameter name="event" transfer-ownership="none">
  15959. <doc xml:space="preserve">The #GstEvent.</doc>
  15960. <type name="Event" c:type="GstEvent*"/>
  15961. </instance-parameter>
  15962. </parameters>
  15963. </method>
  15964. </record>
  15965. <enumeration name="EventType"
  15966. glib:type-name="GstEventType"
  15967. glib:get-type="gst_event_type_get_type"
  15968. c:type="GstEventType">
  15969. <doc xml:space="preserve">#GstEventType lists the standard event types that can be sent in a pipeline.
  15970. The custom event types can be used for private messages between elements
  15971. that can't be expressed using normal
  15972. GStreamer buffer passing semantics. Custom events carry an arbitrary
  15973. #GstStructure.
  15974. Specific custom events are distinguished by the name of the structure.</doc>
  15975. <member name="unknown"
  15976. value="0"
  15977. c:identifier="GST_EVENT_UNKNOWN"
  15978. glib:nick="unknown">
  15979. <doc xml:space="preserve">unknown event.</doc>
  15980. </member>
  15981. <member name="flush_start"
  15982. value="2563"
  15983. c:identifier="GST_EVENT_FLUSH_START"
  15984. glib:nick="flush-start">
  15985. <doc xml:space="preserve">Start a flush operation. This event clears all data
  15986. from the pipeline and unblock all streaming threads.</doc>
  15987. </member>
  15988. <member name="flush_stop"
  15989. value="5127"
  15990. c:identifier="GST_EVENT_FLUSH_STOP"
  15991. glib:nick="flush-stop">
  15992. <doc xml:space="preserve">Stop a flush operation. This event resets the
  15993. running-time of the pipeline.</doc>
  15994. </member>
  15995. <member name="stream_start"
  15996. value="10254"
  15997. c:identifier="GST_EVENT_STREAM_START"
  15998. glib:nick="stream-start">
  15999. <doc xml:space="preserve">Event to mark the start of a new stream. Sent before any
  16000. other serialized event and only sent at the start of a new stream,
  16001. not after flushing seeks.</doc>
  16002. </member>
  16003. <member name="caps"
  16004. value="12814"
  16005. c:identifier="GST_EVENT_CAPS"
  16006. glib:nick="caps">
  16007. <doc xml:space="preserve">#GstCaps event. Notify the pad of a new media type.</doc>
  16008. </member>
  16009. <member name="segment"
  16010. value="17934"
  16011. c:identifier="GST_EVENT_SEGMENT"
  16012. glib:nick="segment">
  16013. <doc xml:space="preserve">A new media segment follows in the dataflow. The
  16014. segment events contains information for clipping buffers and
  16015. converting buffer timestamps to running-time and
  16016. stream-time.</doc>
  16017. </member>
  16018. <member name="tag"
  16019. value="20510"
  16020. c:identifier="GST_EVENT_TAG"
  16021. glib:nick="tag">
  16022. <doc xml:space="preserve">A new set of metadata tags has been found in the stream.</doc>
  16023. </member>
  16024. <member name="buffersize"
  16025. value="23054"
  16026. c:identifier="GST_EVENT_BUFFERSIZE"
  16027. glib:nick="buffersize">
  16028. <doc xml:space="preserve">Notification of buffering requirements. Currently not
  16029. used yet.</doc>
  16030. </member>
  16031. <member name="sink_message"
  16032. value="25630"
  16033. c:identifier="GST_EVENT_SINK_MESSAGE"
  16034. glib:nick="sink-message">
  16035. <doc xml:space="preserve">An event that sinks turn into a message. Used to
  16036. send messages that should be emitted in sync with
  16037. rendering.</doc>
  16038. </member>
  16039. <member name="eos"
  16040. value="28174"
  16041. c:identifier="GST_EVENT_EOS"
  16042. glib:nick="eos">
  16043. <doc xml:space="preserve">End-Of-Stream. No more data is to be expected to follow
  16044. without a SEGMENT event.</doc>
  16045. </member>
  16046. <member name="toc"
  16047. value="30750"
  16048. c:identifier="GST_EVENT_TOC"
  16049. glib:nick="toc">
  16050. <doc xml:space="preserve">An event which indicates that a new table of contents (TOC)
  16051. was found or updated.</doc>
  16052. </member>
  16053. <member name="protection"
  16054. value="33310"
  16055. c:identifier="GST_EVENT_PROTECTION"
  16056. glib:nick="protection">
  16057. <doc xml:space="preserve">An event which indicates that new or updated
  16058. encryption information has been found in the stream.</doc>
  16059. </member>
  16060. <member name="segment_done"
  16061. value="38406"
  16062. c:identifier="GST_EVENT_SEGMENT_DONE"
  16063. glib:nick="segment-done">
  16064. <doc xml:space="preserve">Marks the end of a segment playback.</doc>
  16065. </member>
  16066. <member name="gap"
  16067. value="40966"
  16068. c:identifier="GST_EVENT_GAP"
  16069. glib:nick="gap">
  16070. <doc xml:space="preserve">Marks a gap in the datastream.</doc>
  16071. </member>
  16072. <member name="qos"
  16073. value="48641"
  16074. c:identifier="GST_EVENT_QOS"
  16075. glib:nick="qos">
  16076. <doc xml:space="preserve">A quality message. Used to indicate to upstream elements
  16077. that the downstream elements should adjust their processing
  16078. rate.</doc>
  16079. </member>
  16080. <member name="seek"
  16081. value="51201"
  16082. c:identifier="GST_EVENT_SEEK"
  16083. glib:nick="seek">
  16084. <doc xml:space="preserve">A request for a new playback position and rate.</doc>
  16085. </member>
  16086. <member name="navigation"
  16087. value="53761"
  16088. c:identifier="GST_EVENT_NAVIGATION"
  16089. glib:nick="navigation">
  16090. <doc xml:space="preserve">Navigation events are usually used for communicating
  16091. user requests, such as mouse or keyboard movements,
  16092. to upstream elements.</doc>
  16093. </member>
  16094. <member name="latency"
  16095. value="56321"
  16096. c:identifier="GST_EVENT_LATENCY"
  16097. glib:nick="latency">
  16098. <doc xml:space="preserve">Notification of new latency adjustment. Sinks will use
  16099. the latency information to adjust their synchronisation.</doc>
  16100. </member>
  16101. <member name="step"
  16102. value="58881"
  16103. c:identifier="GST_EVENT_STEP"
  16104. glib:nick="step">
  16105. <doc xml:space="preserve">A request for stepping through the media. Sinks will usually
  16106. execute the step operation.</doc>
  16107. </member>
  16108. <member name="reconfigure"
  16109. value="61441"
  16110. c:identifier="GST_EVENT_RECONFIGURE"
  16111. glib:nick="reconfigure">
  16112. <doc xml:space="preserve">A request for upstream renegotiating caps and reconfiguring.</doc>
  16113. </member>
  16114. <member name="toc_select"
  16115. value="64001"
  16116. c:identifier="GST_EVENT_TOC_SELECT"
  16117. glib:nick="toc-select">
  16118. <doc xml:space="preserve">A request for a new playback position based on TOC
  16119. entry's UID.</doc>
  16120. </member>
  16121. <member name="custom_upstream"
  16122. value="69121"
  16123. c:identifier="GST_EVENT_CUSTOM_UPSTREAM"
  16124. glib:nick="custom-upstream">
  16125. <doc xml:space="preserve">Upstream custom event</doc>
  16126. </member>
  16127. <member name="custom_downstream"
  16128. value="71686"
  16129. c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM"
  16130. glib:nick="custom-downstream">
  16131. <doc xml:space="preserve">Downstream custom event that travels in the
  16132. data flow.</doc>
  16133. </member>
  16134. <member name="custom_downstream_oob"
  16135. value="74242"
  16136. c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_OOB"
  16137. glib:nick="custom-downstream-oob">
  16138. <doc xml:space="preserve">Custom out-of-band downstream event.</doc>
  16139. </member>
  16140. <member name="custom_downstream_sticky"
  16141. value="76830"
  16142. c:identifier="GST_EVENT_CUSTOM_DOWNSTREAM_STICKY"
  16143. glib:nick="custom-downstream-sticky">
  16144. <doc xml:space="preserve">Custom sticky downstream event.</doc>
  16145. </member>
  16146. <member name="custom_both"
  16147. value="79367"
  16148. c:identifier="GST_EVENT_CUSTOM_BOTH"
  16149. glib:nick="custom-both">
  16150. <doc xml:space="preserve">Custom upstream or downstream event.
  16151. In-band when travelling downstream.</doc>
  16152. </member>
  16153. <member name="custom_both_oob"
  16154. value="81923"
  16155. c:identifier="GST_EVENT_CUSTOM_BOTH_OOB"
  16156. glib:nick="custom-both-oob">
  16157. <doc xml:space="preserve">Custom upstream or downstream out-of-band event.</doc>
  16158. </member>
  16159. <function name="get_flags" c:identifier="gst_event_type_get_flags">
  16160. <doc xml:space="preserve">Gets the #GstEventTypeFlags associated with @type.</doc>
  16161. <return-value transfer-ownership="none">
  16162. <doc xml:space="preserve">a #GstEventTypeFlags.</doc>
  16163. <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
  16164. </return-value>
  16165. <parameters>
  16166. <parameter name="type" transfer-ownership="none">
  16167. <doc xml:space="preserve">a #GstEventType</doc>
  16168. <type name="EventType" c:type="GstEventType"/>
  16169. </parameter>
  16170. </parameters>
  16171. </function>
  16172. <function name="get_name" c:identifier="gst_event_type_get_name">
  16173. <doc xml:space="preserve">Get a printable name for the given event type. Do not modify or free.</doc>
  16174. <return-value transfer-ownership="none">
  16175. <doc xml:space="preserve">a reference to the static name of the event.</doc>
  16176. <type name="utf8" c:type="const gchar*"/>
  16177. </return-value>
  16178. <parameters>
  16179. <parameter name="type" transfer-ownership="none">
  16180. <doc xml:space="preserve">the event type</doc>
  16181. <type name="EventType" c:type="GstEventType"/>
  16182. </parameter>
  16183. </parameters>
  16184. </function>
  16185. <function name="to_quark" c:identifier="gst_event_type_to_quark">
  16186. <doc xml:space="preserve">Get the unique quark for the given event type.</doc>
  16187. <return-value transfer-ownership="none">
  16188. <doc xml:space="preserve">the quark associated with the event type</doc>
  16189. <type name="GLib.Quark" c:type="GQuark"/>
  16190. </return-value>
  16191. <parameters>
  16192. <parameter name="type" transfer-ownership="none">
  16193. <doc xml:space="preserve">the event type</doc>
  16194. <type name="EventType" c:type="GstEventType"/>
  16195. </parameter>
  16196. </parameters>
  16197. </function>
  16198. </enumeration>
  16199. <bitfield name="EventTypeFlags"
  16200. glib:type-name="GstEventTypeFlags"
  16201. glib:get-type="gst_event_type_flags_get_type"
  16202. c:type="GstEventTypeFlags">
  16203. <doc xml:space="preserve">#GstEventTypeFlags indicate the aspects of the different #GstEventType
  16204. values. You can get the type flags of a #GstEventType with the
  16205. gst_event_type_get_flags() function.</doc>
  16206. <member name="upstream"
  16207. value="1"
  16208. c:identifier="GST_EVENT_TYPE_UPSTREAM"
  16209. glib:nick="upstream">
  16210. <doc xml:space="preserve">Set if the event can travel upstream.</doc>
  16211. </member>
  16212. <member name="downstream"
  16213. value="2"
  16214. c:identifier="GST_EVENT_TYPE_DOWNSTREAM"
  16215. glib:nick="downstream">
  16216. <doc xml:space="preserve">Set if the event can travel downstream.</doc>
  16217. </member>
  16218. <member name="serialized"
  16219. value="4"
  16220. c:identifier="GST_EVENT_TYPE_SERIALIZED"
  16221. glib:nick="serialized">
  16222. <doc xml:space="preserve">Set if the event should be serialized with data
  16223. flow.</doc>
  16224. </member>
  16225. <member name="sticky"
  16226. value="8"
  16227. c:identifier="GST_EVENT_TYPE_STICKY"
  16228. glib:nick="sticky">
  16229. <doc xml:space="preserve">Set if the event is sticky on the pads.</doc>
  16230. </member>
  16231. <member name="sticky_multi"
  16232. value="16"
  16233. c:identifier="GST_EVENT_TYPE_STICKY_MULTI"
  16234. glib:nick="sticky-multi">
  16235. <doc xml:space="preserve">Multiple sticky events can be on a pad, each
  16236. identified by the event name.</doc>
  16237. </member>
  16238. </bitfield>
  16239. <constant name="FLAG_SET_MASK_EXACT"
  16240. value="-1"
  16241. c:type="GST_FLAG_SET_MASK_EXACT">
  16242. <type name="guint" c:type="guint"/>
  16243. </constant>
  16244. <constant name="FORMAT_PERCENT_MAX"
  16245. value="1000000"
  16246. c:type="GST_FORMAT_PERCENT_MAX">
  16247. <doc xml:space="preserve">The PERCENT format is between 0 and this value</doc>
  16248. <type name="gint64" c:type="gint64"/>
  16249. </constant>
  16250. <constant name="FORMAT_PERCENT_SCALE"
  16251. value="10000"
  16252. c:type="GST_FORMAT_PERCENT_SCALE">
  16253. <doc xml:space="preserve">The value used to scale down the reported PERCENT format value to
  16254. its real value.</doc>
  16255. <type name="gint64" c:type="gint64"/>
  16256. </constant>
  16257. <constant name="FOURCC_FORMAT" value="c%c%c%c" c:type="GST_FOURCC_FORMAT">
  16258. <doc xml:space="preserve">Can be used together with #GST_FOURCC_ARGS to properly output a
  16259. #guint32 fourcc value in a printf()-style text message.
  16260. &lt;informalexample&gt;
  16261. &lt;programlisting&gt;
  16262. printf ("fourcc: %" GST_FOURCC_FORMAT "\n", GST_FOURCC_ARGS (fcc));
  16263. &lt;/programlisting&gt;
  16264. &lt;/informalexample&gt;</doc>
  16265. <type name="utf8" c:type="gchar*"/>
  16266. </constant>
  16267. <class name="FlagSet"
  16268. c:symbol-prefix="flagset"
  16269. glib:type-name="GstFlagSet"
  16270. glib:get-type="gst_flagset_get_type"
  16271. glib:fundamental="1">
  16272. <function name="register"
  16273. c:identifier="gst_flagset_register"
  16274. version="1.6">
  16275. <doc xml:space="preserve">Create a new sub-class of #GST_TYPE_FLAG_SET
  16276. which will pretty-print the human-readable flags
  16277. when serializing, for easier debugging.</doc>
  16278. <return-value transfer-ownership="none">
  16279. <type name="GType" c:type="GType"/>
  16280. </return-value>
  16281. <parameters>
  16282. <parameter name="flags_type" transfer-ownership="none">
  16283. <doc xml:space="preserve">a #GType of a #G_TYPE_FLAGS type.</doc>
  16284. <type name="GType" c:type="GType"/>
  16285. </parameter>
  16286. </parameters>
  16287. </function>
  16288. </class>
  16289. <enumeration name="FlowReturn"
  16290. glib:type-name="GstFlowReturn"
  16291. glib:get-type="gst_flow_return_get_type"
  16292. c:type="GstFlowReturn">
  16293. <doc xml:space="preserve">The result of passing data to a pad.
  16294. Note that the custom return values should not be exposed outside of the
  16295. element scope.</doc>
  16296. <member name="custom_success_2"
  16297. value="102"
  16298. c:identifier="GST_FLOW_CUSTOM_SUCCESS_2"
  16299. glib:nick="custom-success-2">
  16300. <doc xml:space="preserve">Pre-defined custom success code.</doc>
  16301. </member>
  16302. <member name="custom_success_1"
  16303. value="101"
  16304. c:identifier="GST_FLOW_CUSTOM_SUCCESS_1"
  16305. glib:nick="custom-success-1">
  16306. <doc xml:space="preserve">Pre-defined custom success code (define your
  16307. custom success code to this to avoid compiler
  16308. warnings).</doc>
  16309. </member>
  16310. <member name="custom_success"
  16311. value="100"
  16312. c:identifier="GST_FLOW_CUSTOM_SUCCESS"
  16313. glib:nick="custom-success">
  16314. <doc xml:space="preserve">Elements can use values starting from
  16315. this (and higher) to define custom success
  16316. codes.</doc>
  16317. </member>
  16318. <member name="ok" value="0" c:identifier="GST_FLOW_OK" glib:nick="ok">
  16319. <doc xml:space="preserve">Data passing was ok.</doc>
  16320. </member>
  16321. <member name="not_linked"
  16322. value="-1"
  16323. c:identifier="GST_FLOW_NOT_LINKED"
  16324. glib:nick="not-linked">
  16325. <doc xml:space="preserve">Pad is not linked.</doc>
  16326. </member>
  16327. <member name="flushing"
  16328. value="-2"
  16329. c:identifier="GST_FLOW_FLUSHING"
  16330. glib:nick="flushing">
  16331. <doc xml:space="preserve">Pad is flushing.</doc>
  16332. </member>
  16333. <member name="eos"
  16334. value="-3"
  16335. c:identifier="GST_FLOW_EOS"
  16336. glib:nick="eos">
  16337. <doc xml:space="preserve">Pad is EOS.</doc>
  16338. </member>
  16339. <member name="not_negotiated"
  16340. value="-4"
  16341. c:identifier="GST_FLOW_NOT_NEGOTIATED"
  16342. glib:nick="not-negotiated">
  16343. <doc xml:space="preserve">Pad is not negotiated.</doc>
  16344. </member>
  16345. <member name="error"
  16346. value="-5"
  16347. c:identifier="GST_FLOW_ERROR"
  16348. glib:nick="error">
  16349. <doc xml:space="preserve">Some (fatal) error occurred. Element generating
  16350. this error should post an error message with more
  16351. details.</doc>
  16352. </member>
  16353. <member name="not_supported"
  16354. value="-6"
  16355. c:identifier="GST_FLOW_NOT_SUPPORTED"
  16356. glib:nick="not-supported">
  16357. <doc xml:space="preserve">This operation is not supported.</doc>
  16358. </member>
  16359. <member name="custom_error"
  16360. value="-100"
  16361. c:identifier="GST_FLOW_CUSTOM_ERROR"
  16362. glib:nick="custom-error">
  16363. <doc xml:space="preserve">Elements can use values starting from
  16364. this (and lower) to define custom error codes.</doc>
  16365. </member>
  16366. <member name="custom_error_1"
  16367. value="-101"
  16368. c:identifier="GST_FLOW_CUSTOM_ERROR_1"
  16369. glib:nick="custom-error-1">
  16370. <doc xml:space="preserve">Pre-defined custom error code (define your
  16371. custom error code to this to avoid compiler
  16372. warnings).</doc>
  16373. </member>
  16374. <member name="custom_error_2"
  16375. value="-102"
  16376. c:identifier="GST_FLOW_CUSTOM_ERROR_2"
  16377. glib:nick="custom-error-2">
  16378. <doc xml:space="preserve">Pre-defined custom error code.</doc>
  16379. </member>
  16380. </enumeration>
  16381. <enumeration name="Format"
  16382. glib:type-name="GstFormat"
  16383. glib:get-type="gst_format_get_type"
  16384. c:type="GstFormat">
  16385. <doc xml:space="preserve">Standard predefined formats</doc>
  16386. <member name="undefined"
  16387. value="0"
  16388. c:identifier="GST_FORMAT_UNDEFINED"
  16389. glib:nick="undefined">
  16390. <doc xml:space="preserve">undefined format</doc>
  16391. </member>
  16392. <member name="default"
  16393. value="1"
  16394. c:identifier="GST_FORMAT_DEFAULT"
  16395. glib:nick="default">
  16396. <doc xml:space="preserve">the default format of the pad/element. This can be
  16397. samples for raw audio, frames/fields for raw video (some, but not all,
  16398. elements support this; use @GST_FORMAT_TIME if you don't have a good
  16399. reason to query for samples/frames)</doc>
  16400. </member>
  16401. <member name="bytes"
  16402. value="2"
  16403. c:identifier="GST_FORMAT_BYTES"
  16404. glib:nick="bytes">
  16405. <doc xml:space="preserve">bytes</doc>
  16406. </member>
  16407. <member name="time"
  16408. value="3"
  16409. c:identifier="GST_FORMAT_TIME"
  16410. glib:nick="time">
  16411. <doc xml:space="preserve">time in nanoseconds</doc>
  16412. </member>
  16413. <member name="buffers"
  16414. value="4"
  16415. c:identifier="GST_FORMAT_BUFFERS"
  16416. glib:nick="buffers">
  16417. <doc xml:space="preserve">buffers (few, if any, elements implement this as of
  16418. May 2009)</doc>
  16419. </member>
  16420. <member name="percent"
  16421. value="5"
  16422. c:identifier="GST_FORMAT_PERCENT"
  16423. glib:nick="percent">
  16424. <doc xml:space="preserve">percentage of stream (few, if any, elements implement
  16425. this as of May 2009)</doc>
  16426. </member>
  16427. <function name="get_by_nick" c:identifier="gst_format_get_by_nick">
  16428. <doc xml:space="preserve">Return the format registered with the given nick.</doc>
  16429. <return-value transfer-ownership="none">
  16430. <doc xml:space="preserve">The format with @nick or GST_FORMAT_UNDEFINED
  16431. if the format was not registered.</doc>
  16432. <type name="Format" c:type="GstFormat"/>
  16433. </return-value>
  16434. <parameters>
  16435. <parameter name="nick" transfer-ownership="none">
  16436. <doc xml:space="preserve">The nick of the format</doc>
  16437. <type name="utf8" c:type="const gchar*"/>
  16438. </parameter>
  16439. </parameters>
  16440. </function>
  16441. <function name="get_details" c:identifier="gst_format_get_details">
  16442. <doc xml:space="preserve">Get details about the given format.</doc>
  16443. <return-value transfer-ownership="none" nullable="1">
  16444. <doc xml:space="preserve">The #GstFormatDefinition for @format or %NULL
  16445. on failure.
  16446. MT safe.</doc>
  16447. <type name="FormatDefinition" c:type="const GstFormatDefinition*"/>
  16448. </return-value>
  16449. <parameters>
  16450. <parameter name="format" transfer-ownership="none">
  16451. <doc xml:space="preserve">The format to get details of</doc>
  16452. <type name="Format" c:type="GstFormat"/>
  16453. </parameter>
  16454. </parameters>
  16455. </function>
  16456. <function name="get_name" c:identifier="gst_format_get_name">
  16457. <doc xml:space="preserve">Get a printable name for the given format. Do not modify or free.</doc>
  16458. <return-value transfer-ownership="none" nullable="1">
  16459. <doc xml:space="preserve">a reference to the static name of the format
  16460. or %NULL if the format is unknown.</doc>
  16461. <type name="utf8" c:type="const gchar*"/>
  16462. </return-value>
  16463. <parameters>
  16464. <parameter name="format" transfer-ownership="none">
  16465. <doc xml:space="preserve">a #GstFormat</doc>
  16466. <type name="Format" c:type="GstFormat"/>
  16467. </parameter>
  16468. </parameters>
  16469. </function>
  16470. <function name="iterate_definitions"
  16471. c:identifier="gst_format_iterate_definitions">
  16472. <doc xml:space="preserve">Iterate all the registered formats. The format definition is read
  16473. only.</doc>
  16474. <return-value transfer-ownership="full">
  16475. <doc xml:space="preserve">a GstIterator of #GstFormatDefinition.</doc>
  16476. <type name="Iterator" c:type="GstIterator*"/>
  16477. </return-value>
  16478. </function>
  16479. <function name="register" c:identifier="gst_format_register">
  16480. <doc xml:space="preserve">Create a new GstFormat based on the nick or return an
  16481. already registered format with that nick.</doc>
  16482. <return-value transfer-ownership="none">
  16483. <doc xml:space="preserve">A new GstFormat or an already registered format
  16484. with the same nick.
  16485. MT safe.</doc>
  16486. <type name="Format" c:type="GstFormat"/>
  16487. </return-value>
  16488. <parameters>
  16489. <parameter name="nick" transfer-ownership="none">
  16490. <doc xml:space="preserve">The nick of the new format</doc>
  16491. <type name="utf8" c:type="const gchar*"/>
  16492. </parameter>
  16493. <parameter name="description" transfer-ownership="none">
  16494. <doc xml:space="preserve">The description of the new format</doc>
  16495. <type name="utf8" c:type="const gchar*"/>
  16496. </parameter>
  16497. </parameters>
  16498. </function>
  16499. <function name="to_quark" c:identifier="gst_format_to_quark">
  16500. <doc xml:space="preserve">Get the unique quark for the given format.</doc>
  16501. <return-value transfer-ownership="none">
  16502. <doc xml:space="preserve">the quark associated with the format or 0 if the format
  16503. is unknown.</doc>
  16504. <type name="GLib.Quark" c:type="GQuark"/>
  16505. </return-value>
  16506. <parameters>
  16507. <parameter name="format" transfer-ownership="none">
  16508. <doc xml:space="preserve">a #GstFormat</doc>
  16509. <type name="Format" c:type="GstFormat"/>
  16510. </parameter>
  16511. </parameters>
  16512. </function>
  16513. </enumeration>
  16514. <record name="FormatDefinition" c:type="GstFormatDefinition">
  16515. <doc xml:space="preserve">A format definition</doc>
  16516. <field name="value" writable="1">
  16517. <doc xml:space="preserve">The unique id of this format</doc>
  16518. <type name="Format" c:type="GstFormat"/>
  16519. </field>
  16520. <field name="nick" writable="1">
  16521. <doc xml:space="preserve">A short nick of the format</doc>
  16522. <type name="utf8" c:type="const gchar*"/>
  16523. </field>
  16524. <field name="description" writable="1">
  16525. <doc xml:space="preserve">A longer description of the format</doc>
  16526. <type name="utf8" c:type="const gchar*"/>
  16527. </field>
  16528. <field name="quark" writable="1">
  16529. <doc xml:space="preserve">A quark for the nick</doc>
  16530. <type name="GLib.Quark" c:type="GQuark"/>
  16531. </field>
  16532. </record>
  16533. <class name="Fraction"
  16534. c:symbol-prefix="fraction"
  16535. glib:type-name="GstFraction"
  16536. glib:get-type="gst_fraction_get_type"
  16537. glib:fundamental="1">
  16538. </class>
  16539. <class name="FractionRange"
  16540. c:symbol-prefix="fraction_range"
  16541. glib:type-name="GstFractionRange"
  16542. glib:get-type="gst_fraction_range_get_type"
  16543. glib:fundamental="1">
  16544. </class>
  16545. <class name="GhostPad"
  16546. c:symbol-prefix="ghost_pad"
  16547. c:type="GstGhostPad"
  16548. parent="ProxyPad"
  16549. glib:type-name="GstGhostPad"
  16550. glib:get-type="gst_ghost_pad_get_type"
  16551. glib:type-struct="GhostPadClass">
  16552. <doc xml:space="preserve">GhostPads are useful when organizing pipelines with #GstBin like elements.
  16553. The idea here is to create hierarchical element graphs. The bin element
  16554. contains a sub-graph. Now one would like to treat the bin-element like any
  16555. other #GstElement. This is where GhostPads come into play. A GhostPad acts as
  16556. a proxy for another pad. Thus the bin can have sink and source ghost-pads
  16557. that are associated with sink and source pads of the child elements.
  16558. If the target pad is known at creation time, gst_ghost_pad_new() is the
  16559. function to use to get a ghost-pad. Otherwise one can use gst_ghost_pad_new_no_target()
  16560. to create the ghost-pad and use gst_ghost_pad_set_target() to establish the
  16561. association later on.
  16562. Note that GhostPads add overhead to the data processing of a pipeline.</doc>
  16563. <constructor name="new" c:identifier="gst_ghost_pad_new">
  16564. <doc xml:space="preserve">Create a new ghostpad with @target as the target. The direction will be taken
  16565. from the target pad. @target must be unlinked.
  16566. Will ref the target.</doc>
  16567. <return-value transfer-ownership="none" nullable="1">
  16568. <doc xml:space="preserve">a new #GstPad, or %NULL in
  16569. case of an error.</doc>
  16570. <type name="Pad" c:type="GstPad*"/>
  16571. </return-value>
  16572. <parameters>
  16573. <parameter name="name"
  16574. transfer-ownership="none"
  16575. nullable="1"
  16576. allow-none="1">
  16577. <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name</doc>
  16578. <type name="utf8" c:type="const gchar*"/>
  16579. </parameter>
  16580. <parameter name="target" transfer-ownership="none">
  16581. <doc xml:space="preserve">the pad to ghost.</doc>
  16582. <type name="Pad" c:type="GstPad*"/>
  16583. </parameter>
  16584. </parameters>
  16585. </constructor>
  16586. <constructor name="new_from_template"
  16587. c:identifier="gst_ghost_pad_new_from_template">
  16588. <doc xml:space="preserve">Create a new ghostpad with @target as the target. The direction will be taken
  16589. from the target pad. The template used on the ghostpad will be @template.
  16590. Will ref the target.</doc>
  16591. <return-value transfer-ownership="full" nullable="1">
  16592. <doc xml:space="preserve">a new #GstPad, or %NULL in
  16593. case of an error.</doc>
  16594. <type name="Pad" c:type="GstPad*"/>
  16595. </return-value>
  16596. <parameters>
  16597. <parameter name="name"
  16598. transfer-ownership="none"
  16599. nullable="1"
  16600. allow-none="1">
  16601. <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name.</doc>
  16602. <type name="utf8" c:type="const gchar*"/>
  16603. </parameter>
  16604. <parameter name="target" transfer-ownership="none">
  16605. <doc xml:space="preserve">the pad to ghost.</doc>
  16606. <type name="Pad" c:type="GstPad*"/>
  16607. </parameter>
  16608. <parameter name="templ" transfer-ownership="none">
  16609. <doc xml:space="preserve">the #GstPadTemplate to use on the ghostpad.</doc>
  16610. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  16611. </parameter>
  16612. </parameters>
  16613. </constructor>
  16614. <constructor name="new_no_target"
  16615. c:identifier="gst_ghost_pad_new_no_target">
  16616. <doc xml:space="preserve">Create a new ghostpad without a target with the given direction.
  16617. A target can be set on the ghostpad later with the
  16618. gst_ghost_pad_set_target() function.
  16619. The created ghostpad will not have a padtemplate.</doc>
  16620. <return-value transfer-ownership="full" nullable="1">
  16621. <doc xml:space="preserve">a new #GstPad, or %NULL in
  16622. case of an error.</doc>
  16623. <type name="Pad" c:type="GstPad*"/>
  16624. </return-value>
  16625. <parameters>
  16626. <parameter name="name"
  16627. transfer-ownership="none"
  16628. nullable="1"
  16629. allow-none="1">
  16630. <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name.</doc>
  16631. <type name="utf8" c:type="const gchar*"/>
  16632. </parameter>
  16633. <parameter name="dir" transfer-ownership="none">
  16634. <doc xml:space="preserve">the direction of the ghostpad</doc>
  16635. <type name="PadDirection" c:type="GstPadDirection"/>
  16636. </parameter>
  16637. </parameters>
  16638. </constructor>
  16639. <constructor name="new_no_target_from_template"
  16640. c:identifier="gst_ghost_pad_new_no_target_from_template">
  16641. <doc xml:space="preserve">Create a new ghostpad based on @templ, without setting a target. The
  16642. direction will be taken from the @templ.</doc>
  16643. <return-value transfer-ownership="full" nullable="1">
  16644. <doc xml:space="preserve">a new #GstPad, or %NULL in
  16645. case of an error.</doc>
  16646. <type name="Pad" c:type="GstPad*"/>
  16647. </return-value>
  16648. <parameters>
  16649. <parameter name="name"
  16650. transfer-ownership="none"
  16651. nullable="1"
  16652. allow-none="1">
  16653. <doc xml:space="preserve">the name of the new pad, or %NULL to assign a default name</doc>
  16654. <type name="utf8" c:type="const gchar*"/>
  16655. </parameter>
  16656. <parameter name="templ" transfer-ownership="none">
  16657. <doc xml:space="preserve">the #GstPadTemplate to create the ghostpad from.</doc>
  16658. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  16659. </parameter>
  16660. </parameters>
  16661. </constructor>
  16662. <function name="activate_mode_default"
  16663. c:identifier="gst_ghost_pad_activate_mode_default">
  16664. <doc xml:space="preserve">Invoke the default activate mode function of a ghost pad.</doc>
  16665. <return-value transfer-ownership="none">
  16666. <doc xml:space="preserve">%TRUE if the operation was successful.</doc>
  16667. <type name="gboolean" c:type="gboolean"/>
  16668. </return-value>
  16669. <parameters>
  16670. <parameter name="pad" transfer-ownership="none">
  16671. <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
  16672. <type name="Pad" c:type="GstPad*"/>
  16673. </parameter>
  16674. <parameter name="parent"
  16675. transfer-ownership="none"
  16676. nullable="1"
  16677. allow-none="1">
  16678. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  16679. <type name="Object" c:type="GstObject*"/>
  16680. </parameter>
  16681. <parameter name="mode" transfer-ownership="none">
  16682. <doc xml:space="preserve">the requested activation mode</doc>
  16683. <type name="PadMode" c:type="GstPadMode"/>
  16684. </parameter>
  16685. <parameter name="active" transfer-ownership="none">
  16686. <doc xml:space="preserve">whether the pad should be active or not.</doc>
  16687. <type name="gboolean" c:type="gboolean"/>
  16688. </parameter>
  16689. </parameters>
  16690. </function>
  16691. <function name="internal_activate_mode_default"
  16692. c:identifier="gst_ghost_pad_internal_activate_mode_default">
  16693. <doc xml:space="preserve">Invoke the default activate mode function of a proxy pad that is
  16694. owned by a ghost pad.</doc>
  16695. <return-value transfer-ownership="none">
  16696. <doc xml:space="preserve">%TRUE if the operation was successful.</doc>
  16697. <type name="gboolean" c:type="gboolean"/>
  16698. </return-value>
  16699. <parameters>
  16700. <parameter name="pad" transfer-ownership="none">
  16701. <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
  16702. <type name="Pad" c:type="GstPad*"/>
  16703. </parameter>
  16704. <parameter name="parent"
  16705. transfer-ownership="none"
  16706. nullable="1"
  16707. allow-none="1">
  16708. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  16709. <type name="Object" c:type="GstObject*"/>
  16710. </parameter>
  16711. <parameter name="mode" transfer-ownership="none">
  16712. <doc xml:space="preserve">the requested activation mode</doc>
  16713. <type name="PadMode" c:type="GstPadMode"/>
  16714. </parameter>
  16715. <parameter name="active" transfer-ownership="none">
  16716. <doc xml:space="preserve">whether the pad should be active or not.</doc>
  16717. <type name="gboolean" c:type="gboolean"/>
  16718. </parameter>
  16719. </parameters>
  16720. </function>
  16721. <method name="construct" c:identifier="gst_ghost_pad_construct">
  16722. <doc xml:space="preserve">Finish initialization of a newly allocated ghost pad.
  16723. This function is most useful in language bindings and when subclassing
  16724. #GstGhostPad; plugin and application developers normally will not call this
  16725. function. Call this function directly after a call to g_object_new
  16726. (GST_TYPE_GHOST_PAD, "direction", @dir, ..., NULL).</doc>
  16727. <return-value transfer-ownership="none">
  16728. <doc xml:space="preserve">%TRUE if the construction succeeds, %FALSE otherwise.</doc>
  16729. <type name="gboolean" c:type="gboolean"/>
  16730. </return-value>
  16731. <parameters>
  16732. <instance-parameter name="gpad" transfer-ownership="none">
  16733. <doc xml:space="preserve">the newly allocated ghost pad</doc>
  16734. <type name="GhostPad" c:type="GstGhostPad*"/>
  16735. </instance-parameter>
  16736. </parameters>
  16737. </method>
  16738. <method name="get_target" c:identifier="gst_ghost_pad_get_target">
  16739. <doc xml:space="preserve">Get the target pad of @gpad. Unref target pad after usage.</doc>
  16740. <return-value transfer-ownership="full" nullable="1">
  16741. <doc xml:space="preserve">the target #GstPad, can be
  16742. %NULL if the ghostpad has no target set. Unref target pad after
  16743. usage.</doc>
  16744. <type name="Pad" c:type="GstPad*"/>
  16745. </return-value>
  16746. <parameters>
  16747. <instance-parameter name="gpad" transfer-ownership="none">
  16748. <doc xml:space="preserve">the #GstGhostPad</doc>
  16749. <type name="GhostPad" c:type="GstGhostPad*"/>
  16750. </instance-parameter>
  16751. </parameters>
  16752. </method>
  16753. <method name="set_target" c:identifier="gst_ghost_pad_set_target">
  16754. <doc xml:space="preserve">Set the new target of the ghostpad @gpad. Any existing target
  16755. is unlinked and links to the new target are established. if @newtarget is
  16756. %NULL the target will be cleared.</doc>
  16757. <return-value transfer-ownership="none">
  16758. <doc xml:space="preserve">%TRUE if the new target could be set. This function
  16759. can return %FALSE when the internal pads could not be linked.</doc>
  16760. <type name="gboolean" c:type="gboolean"/>
  16761. </return-value>
  16762. <parameters>
  16763. <instance-parameter name="gpad" transfer-ownership="none">
  16764. <doc xml:space="preserve">the #GstGhostPad</doc>
  16765. <type name="GhostPad" c:type="GstGhostPad*"/>
  16766. </instance-parameter>
  16767. <parameter name="newtarget"
  16768. transfer-ownership="none"
  16769. nullable="1"
  16770. allow-none="1">
  16771. <doc xml:space="preserve">the new pad target</doc>
  16772. <type name="Pad" c:type="GstPad*"/>
  16773. </parameter>
  16774. </parameters>
  16775. </method>
  16776. <field name="pad">
  16777. <type name="ProxyPad" c:type="GstProxyPad"/>
  16778. </field>
  16779. <field name="priv" readable="0" private="1">
  16780. <type name="GhostPadPrivate" c:type="GstGhostPadPrivate*"/>
  16781. </field>
  16782. </class>
  16783. <record name="GhostPadClass"
  16784. c:type="GstGhostPadClass"
  16785. glib:is-gtype-struct-for="GhostPad">
  16786. <field name="parent_class">
  16787. <type name="ProxyPadClass" c:type="GstProxyPadClass"/>
  16788. </field>
  16789. <field name="_gst_reserved" readable="0" private="1">
  16790. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  16791. <type name="gpointer" c:type="gpointer"/>
  16792. </array>
  16793. </field>
  16794. </record>
  16795. <record name="GhostPadPrivate" c:type="GstGhostPadPrivate" disguised="1">
  16796. </record>
  16797. <class name="Int64Range"
  16798. c:symbol-prefix="int64_range"
  16799. glib:type-name="GstInt64Range"
  16800. glib:get-type="gst_int64_range_get_type"
  16801. glib:fundamental="1">
  16802. </class>
  16803. <class name="IntRange"
  16804. c:symbol-prefix="int_range"
  16805. glib:type-name="GstIntRange"
  16806. glib:get-type="gst_int_range_get_type"
  16807. glib:fundamental="1">
  16808. </class>
  16809. <record name="Iterator"
  16810. c:type="GstIterator"
  16811. glib:type-name="GstIterator"
  16812. glib:get-type="gst_iterator_get_type"
  16813. c:symbol-prefix="iterator">
  16814. <doc xml:space="preserve">A GstIterator is used to retrieve multiple objects from another object in
  16815. a threadsafe way.
  16816. Various GStreamer objects provide access to their internal structures using
  16817. an iterator.
  16818. Note that if calling a GstIterator function results in your code receiving
  16819. a refcounted object (with, say, g_value_get_object()), the refcount for that
  16820. object will not be increased. Your code is responsible for taking a reference
  16821. if it wants to continue using it later.
  16822. The basic use pattern of an iterator is as follows:
  16823. |[&lt;!-- language="C" --&gt;
  16824. GstIterator *it = _get_iterator(object);
  16825. GValue item = G_VALUE_INIT;
  16826. done = FALSE;
  16827. while (!done) {
  16828. switch (gst_iterator_next (it, &amp;amp;item)) {
  16829. case GST_ITERATOR_OK:
  16830. ...get/use/change item here...
  16831. g_value_reset (&amp;amp;item);
  16832. break;
  16833. case GST_ITERATOR_RESYNC:
  16834. ...rollback changes to items...
  16835. gst_iterator_resync (it);
  16836. break;
  16837. case GST_ITERATOR_ERROR:
  16838. ...wrong parameters were given...
  16839. done = TRUE;
  16840. break;
  16841. case GST_ITERATOR_DONE:
  16842. done = TRUE;
  16843. break;
  16844. }
  16845. }
  16846. g_value_unset (&amp;amp;item);
  16847. gst_iterator_free (it);
  16848. ]|</doc>
  16849. <field name="copy" writable="1">
  16850. <doc xml:space="preserve">The function to copy the iterator</doc>
  16851. <type name="IteratorCopyFunction" c:type="GstIteratorCopyFunction"/>
  16852. </field>
  16853. <field name="next" writable="1">
  16854. <doc xml:space="preserve">The function to get the next item in the iterator</doc>
  16855. <type name="IteratorNextFunction" c:type="GstIteratorNextFunction"/>
  16856. </field>
  16857. <field name="item" writable="1">
  16858. <doc xml:space="preserve">The function to be called for each item retrieved</doc>
  16859. <type name="IteratorItemFunction" c:type="GstIteratorItemFunction"/>
  16860. </field>
  16861. <field name="resync" writable="1">
  16862. <doc xml:space="preserve">The function to call when a resync is needed.</doc>
  16863. <type name="IteratorResyncFunction"
  16864. c:type="GstIteratorResyncFunction"/>
  16865. </field>
  16866. <field name="free" writable="1">
  16867. <doc xml:space="preserve">The function to call when the iterator is freed</doc>
  16868. <type name="IteratorFreeFunction" c:type="GstIteratorFreeFunction"/>
  16869. </field>
  16870. <field name="pushed" writable="1">
  16871. <doc xml:space="preserve">The iterator that is currently pushed with gst_iterator_push()</doc>
  16872. <type name="Iterator" c:type="GstIterator*"/>
  16873. </field>
  16874. <field name="type" writable="1">
  16875. <doc xml:space="preserve">The type of the object that this iterator will return</doc>
  16876. <type name="GType" c:type="GType"/>
  16877. </field>
  16878. <field name="lock" writable="1">
  16879. <doc xml:space="preserve">The lock protecting the data structure and the cookie.</doc>
  16880. <type name="GLib.Mutex" c:type="GMutex*"/>
  16881. </field>
  16882. <field name="cookie" writable="1">
  16883. <doc xml:space="preserve">The cookie; the value of the master_cookie when this iterator was
  16884. created.</doc>
  16885. <type name="guint32" c:type="guint32"/>
  16886. </field>
  16887. <field name="master_cookie" writable="1">
  16888. <doc xml:space="preserve">A pointer to the master cookie.</doc>
  16889. <type name="guint32" c:type="guint32*"/>
  16890. </field>
  16891. <field name="size" writable="1">
  16892. <doc xml:space="preserve">the size of the iterator</doc>
  16893. <type name="guint" c:type="guint"/>
  16894. </field>
  16895. <field name="_gst_reserved" readable="0" private="1">
  16896. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  16897. <type name="gpointer" c:type="gpointer"/>
  16898. </array>
  16899. </field>
  16900. <constructor name="new"
  16901. c:identifier="gst_iterator_new"
  16902. introspectable="0">
  16903. <doc xml:space="preserve">Create a new iterator. This function is mainly used for objects
  16904. implementing the next/resync/free function to iterate a data structure.
  16905. For each item retrieved, the @item function is called with the lock
  16906. held. The @free function is called when the iterator is freed.</doc>
  16907. <return-value transfer-ownership="full">
  16908. <doc xml:space="preserve">the new #GstIterator.
  16909. MT safe.</doc>
  16910. <type name="Iterator" c:type="GstIterator*"/>
  16911. </return-value>
  16912. <parameters>
  16913. <parameter name="size" transfer-ownership="none">
  16914. <doc xml:space="preserve">the size of the iterator structure</doc>
  16915. <type name="guint" c:type="guint"/>
  16916. </parameter>
  16917. <parameter name="type" transfer-ownership="none">
  16918. <doc xml:space="preserve">#GType of children</doc>
  16919. <type name="GType" c:type="GType"/>
  16920. </parameter>
  16921. <parameter name="lock" transfer-ownership="none">
  16922. <doc xml:space="preserve">pointer to a #GMutex.</doc>
  16923. <type name="GLib.Mutex" c:type="GMutex*"/>
  16924. </parameter>
  16925. <parameter name="master_cookie" transfer-ownership="none">
  16926. <doc xml:space="preserve">pointer to a guint32 that is changed when the items in the
  16927. iterator changed.</doc>
  16928. <type name="guint32" c:type="guint32*"/>
  16929. </parameter>
  16930. <parameter name="copy" transfer-ownership="none">
  16931. <doc xml:space="preserve">copy function</doc>
  16932. <type name="IteratorCopyFunction"
  16933. c:type="GstIteratorCopyFunction"/>
  16934. </parameter>
  16935. <parameter name="next" transfer-ownership="none">
  16936. <doc xml:space="preserve">function to get next item</doc>
  16937. <type name="IteratorNextFunction"
  16938. c:type="GstIteratorNextFunction"/>
  16939. </parameter>
  16940. <parameter name="item" transfer-ownership="none">
  16941. <doc xml:space="preserve">function to call on each item retrieved</doc>
  16942. <type name="IteratorItemFunction"
  16943. c:type="GstIteratorItemFunction"/>
  16944. </parameter>
  16945. <parameter name="resync" transfer-ownership="none">
  16946. <doc xml:space="preserve">function to resync the iterator</doc>
  16947. <type name="IteratorResyncFunction"
  16948. c:type="GstIteratorResyncFunction"/>
  16949. </parameter>
  16950. <parameter name="free" transfer-ownership="none">
  16951. <doc xml:space="preserve">function to free the iterator</doc>
  16952. <type name="IteratorFreeFunction"
  16953. c:type="GstIteratorFreeFunction"/>
  16954. </parameter>
  16955. </parameters>
  16956. </constructor>
  16957. <constructor name="new_list"
  16958. c:identifier="gst_iterator_new_list"
  16959. introspectable="0">
  16960. <doc xml:space="preserve">Create a new iterator designed for iterating @list.
  16961. The list you iterate is usually part of a data structure @owner and is
  16962. protected with @lock.
  16963. The iterator will use @lock to retrieve the next item of the list and it
  16964. will then call the @item function before releasing @lock again.
  16965. When a concurrent update to the list is performed, usually by @owner while
  16966. holding @lock, @master_cookie will be updated. The iterator implementation
  16967. will notice the update of the cookie and will return %GST_ITERATOR_RESYNC to
  16968. the user of the iterator in the next call to gst_iterator_next().</doc>
  16969. <return-value transfer-ownership="full">
  16970. <doc xml:space="preserve">the new #GstIterator for @list.
  16971. MT safe.</doc>
  16972. <type name="Iterator" c:type="GstIterator*"/>
  16973. </return-value>
  16974. <parameters>
  16975. <parameter name="type" transfer-ownership="none">
  16976. <doc xml:space="preserve">#GType of elements</doc>
  16977. <type name="GType" c:type="GType"/>
  16978. </parameter>
  16979. <parameter name="lock" transfer-ownership="none">
  16980. <doc xml:space="preserve">pointer to a #GMutex protecting the list.</doc>
  16981. <type name="GLib.Mutex" c:type="GMutex*"/>
  16982. </parameter>
  16983. <parameter name="master_cookie" transfer-ownership="none">
  16984. <doc xml:space="preserve">pointer to a guint32 that is incremented when the list
  16985. is changed.</doc>
  16986. <type name="guint32" c:type="guint32*"/>
  16987. </parameter>
  16988. <parameter name="list" transfer-ownership="none">
  16989. <doc xml:space="preserve">pointer to the list</doc>
  16990. <type name="GLib.List" c:type="GList**">
  16991. <type name="gpointer" c:type="gpointer"/>
  16992. </type>
  16993. </parameter>
  16994. <parameter name="owner" transfer-ownership="none">
  16995. <doc xml:space="preserve">object owning the list</doc>
  16996. <type name="GObject.Object" c:type="GObject*"/>
  16997. </parameter>
  16998. <parameter name="item" transfer-ownership="none">
  16999. <doc xml:space="preserve">function to call on each item retrieved</doc>
  17000. <type name="IteratorItemFunction"
  17001. c:type="GstIteratorItemFunction"/>
  17002. </parameter>
  17003. </parameters>
  17004. </constructor>
  17005. <constructor name="new_single" c:identifier="gst_iterator_new_single">
  17006. <doc xml:space="preserve">This #GstIterator is a convenient iterator for the common
  17007. case where a #GstIterator needs to be returned but only
  17008. a single object has to be considered. This happens often
  17009. for the #GstPadIterIntLinkFunction.</doc>
  17010. <return-value transfer-ownership="full">
  17011. <doc xml:space="preserve">the new #GstIterator for @object.</doc>
  17012. <type name="Iterator" c:type="GstIterator*"/>
  17013. </return-value>
  17014. <parameters>
  17015. <parameter name="type" transfer-ownership="none">
  17016. <doc xml:space="preserve">#GType of the passed object</doc>
  17017. <type name="GType" c:type="GType"/>
  17018. </parameter>
  17019. <parameter name="object" transfer-ownership="none">
  17020. <doc xml:space="preserve">object that this iterator should return</doc>
  17021. <type name="GObject.Value" c:type="const GValue*"/>
  17022. </parameter>
  17023. </parameters>
  17024. </constructor>
  17025. <method name="copy" c:identifier="gst_iterator_copy">
  17026. <doc xml:space="preserve">Copy the iterator and its state.</doc>
  17027. <return-value transfer-ownership="full">
  17028. <doc xml:space="preserve">a new copy of @it.</doc>
  17029. <type name="Iterator" c:type="GstIterator*"/>
  17030. </return-value>
  17031. <parameters>
  17032. <instance-parameter name="it" transfer-ownership="none">
  17033. <doc xml:space="preserve">a #GstIterator</doc>
  17034. <type name="Iterator" c:type="const GstIterator*"/>
  17035. </instance-parameter>
  17036. </parameters>
  17037. </method>
  17038. <method name="filter" c:identifier="gst_iterator_filter">
  17039. <doc xml:space="preserve">Create a new iterator from an existing iterator. The new iterator
  17040. will only return those elements that match the given compare function @func.
  17041. The first parameter that is passed to @func is the #GValue of the current
  17042. iterator element and the second parameter is @user_data. @func should
  17043. return 0 for elements that should be included in the filtered iterator.
  17044. When this iterator is freed, @it will also be freed.</doc>
  17045. <return-value transfer-ownership="full">
  17046. <doc xml:space="preserve">a new #GstIterator.
  17047. MT safe.</doc>
  17048. <type name="Iterator" c:type="GstIterator*"/>
  17049. </return-value>
  17050. <parameters>
  17051. <instance-parameter name="it" transfer-ownership="none">
  17052. <doc xml:space="preserve">The #GstIterator to filter</doc>
  17053. <type name="Iterator" c:type="GstIterator*"/>
  17054. </instance-parameter>
  17055. <parameter name="func" transfer-ownership="none" scope="call">
  17056. <doc xml:space="preserve">the compare function to select elements</doc>
  17057. <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
  17058. </parameter>
  17059. <parameter name="user_data" transfer-ownership="none">
  17060. <doc xml:space="preserve">user data passed to the compare function</doc>
  17061. <type name="GObject.Value" c:type="const GValue*"/>
  17062. </parameter>
  17063. </parameters>
  17064. </method>
  17065. <method name="find_custom" c:identifier="gst_iterator_find_custom">
  17066. <doc xml:space="preserve">Find the first element in @it that matches the compare function @func.
  17067. @func should return 0 when the element is found. The first parameter
  17068. to @func will be the current element of the iterator and the
  17069. second parameter will be @user_data.
  17070. The result will be stored in @elem if a result is found.
  17071. The iterator will not be freed.
  17072. This function will return %FALSE if an error happened to the iterator
  17073. or if the element wasn't found.</doc>
  17074. <return-value transfer-ownership="none">
  17075. <doc xml:space="preserve">Returns %TRUE if the element was found, else %FALSE.
  17076. MT safe.</doc>
  17077. <type name="gboolean" c:type="gboolean"/>
  17078. </return-value>
  17079. <parameters>
  17080. <instance-parameter name="it" transfer-ownership="none">
  17081. <doc xml:space="preserve">The #GstIterator to iterate</doc>
  17082. <type name="Iterator" c:type="GstIterator*"/>
  17083. </instance-parameter>
  17084. <parameter name="func"
  17085. transfer-ownership="none"
  17086. scope="call"
  17087. closure="2">
  17088. <doc xml:space="preserve">the compare function to use</doc>
  17089. <type name="GLib.CompareFunc" c:type="GCompareFunc"/>
  17090. </parameter>
  17091. <parameter name="elem"
  17092. direction="out"
  17093. caller-allocates="1"
  17094. transfer-ownership="none">
  17095. <doc xml:space="preserve">pointer to a #GValue where to store the result</doc>
  17096. <type name="GObject.Value" c:type="GValue*"/>
  17097. </parameter>
  17098. <parameter name="user_data"
  17099. transfer-ownership="none"
  17100. nullable="1"
  17101. allow-none="1">
  17102. <doc xml:space="preserve">user data passed to the compare function</doc>
  17103. <type name="gpointer" c:type="gpointer"/>
  17104. </parameter>
  17105. </parameters>
  17106. </method>
  17107. <method name="fold" c:identifier="gst_iterator_fold">
  17108. <doc xml:space="preserve">Folds @func over the elements of @iter. That is to say, @func will be called
  17109. as @func (object, @ret, @user_data) for each object in @it. The normal use
  17110. of this procedure is to accumulate the results of operating on the objects in
  17111. @ret.
  17112. This procedure can be used (and is used internally) to implement the
  17113. gst_iterator_foreach() and gst_iterator_find_custom() operations.
  17114. The fold will proceed as long as @func returns %TRUE. When the iterator has no
  17115. more arguments, %GST_ITERATOR_DONE will be returned. If @func returns %FALSE,
  17116. the fold will stop, and %GST_ITERATOR_OK will be returned. Errors or resyncs
  17117. will cause fold to return %GST_ITERATOR_ERROR or %GST_ITERATOR_RESYNC as
  17118. appropriate.
  17119. The iterator will not be freed.</doc>
  17120. <return-value transfer-ownership="none">
  17121. <doc xml:space="preserve">A #GstIteratorResult, as described above.
  17122. MT safe.</doc>
  17123. <type name="IteratorResult" c:type="GstIteratorResult"/>
  17124. </return-value>
  17125. <parameters>
  17126. <instance-parameter name="it" transfer-ownership="none">
  17127. <doc xml:space="preserve">The #GstIterator to fold over</doc>
  17128. <type name="Iterator" c:type="GstIterator*"/>
  17129. </instance-parameter>
  17130. <parameter name="func"
  17131. transfer-ownership="none"
  17132. scope="call"
  17133. closure="2">
  17134. <doc xml:space="preserve">the fold function</doc>
  17135. <type name="IteratorFoldFunction"
  17136. c:type="GstIteratorFoldFunction"/>
  17137. </parameter>
  17138. <parameter name="ret" transfer-ownership="none">
  17139. <doc xml:space="preserve">the seed value passed to the fold function</doc>
  17140. <type name="GObject.Value" c:type="GValue*"/>
  17141. </parameter>
  17142. <parameter name="user_data"
  17143. transfer-ownership="none"
  17144. nullable="1"
  17145. allow-none="1">
  17146. <doc xml:space="preserve">user data passed to the fold function</doc>
  17147. <type name="gpointer" c:type="gpointer"/>
  17148. </parameter>
  17149. </parameters>
  17150. </method>
  17151. <method name="foreach" c:identifier="gst_iterator_foreach">
  17152. <doc xml:space="preserve">Iterate over all element of @it and call the given function @func for
  17153. each element.</doc>
  17154. <return-value transfer-ownership="none">
  17155. <doc xml:space="preserve">the result call to gst_iterator_fold(). The iterator will not be
  17156. freed.
  17157. MT safe.</doc>
  17158. <type name="IteratorResult" c:type="GstIteratorResult"/>
  17159. </return-value>
  17160. <parameters>
  17161. <instance-parameter name="it" transfer-ownership="none">
  17162. <doc xml:space="preserve">The #GstIterator to iterate</doc>
  17163. <type name="Iterator" c:type="GstIterator*"/>
  17164. </instance-parameter>
  17165. <parameter name="func"
  17166. transfer-ownership="none"
  17167. scope="call"
  17168. closure="1">
  17169. <doc xml:space="preserve">the function to call for each element.</doc>
  17170. <type name="IteratorForeachFunction"
  17171. c:type="GstIteratorForeachFunction"/>
  17172. </parameter>
  17173. <parameter name="user_data"
  17174. transfer-ownership="none"
  17175. nullable="1"
  17176. allow-none="1">
  17177. <doc xml:space="preserve">user data passed to the function</doc>
  17178. <type name="gpointer" c:type="gpointer"/>
  17179. </parameter>
  17180. </parameters>
  17181. </method>
  17182. <method name="free" c:identifier="gst_iterator_free">
  17183. <doc xml:space="preserve">Free the iterator.
  17184. MT safe.</doc>
  17185. <return-value transfer-ownership="none">
  17186. <type name="none" c:type="void"/>
  17187. </return-value>
  17188. <parameters>
  17189. <instance-parameter name="it" transfer-ownership="none">
  17190. <doc xml:space="preserve">The #GstIterator to free</doc>
  17191. <type name="Iterator" c:type="GstIterator*"/>
  17192. </instance-parameter>
  17193. </parameters>
  17194. </method>
  17195. <method name="next" c:identifier="gst_iterator_next">
  17196. <doc xml:space="preserve">Get the next item from the iterator in @elem.
  17197. Only when this function returns %GST_ITERATOR_OK, @elem will contain a valid
  17198. value. @elem must have been initialized to the type of the iterator or
  17199. initialized to zeroes with g_value_unset(). The caller is responsible for
  17200. unsetting or resetting @elem with g_value_unset() or g_value_reset()
  17201. after usage.
  17202. When this function returns %GST_ITERATOR_DONE, no more elements can be
  17203. retrieved from @it.
  17204. A return value of %GST_ITERATOR_RESYNC indicates that the element list was
  17205. concurrently updated. The user of @it should call gst_iterator_resync() to
  17206. get the newly updated list.
  17207. A return value of %GST_ITERATOR_ERROR indicates an unrecoverable fatal error.</doc>
  17208. <return-value transfer-ownership="none">
  17209. <doc xml:space="preserve">The result of the iteration. Unset @elem after usage.
  17210. MT safe.</doc>
  17211. <type name="IteratorResult" c:type="GstIteratorResult"/>
  17212. </return-value>
  17213. <parameters>
  17214. <instance-parameter name="it" transfer-ownership="none">
  17215. <doc xml:space="preserve">The #GstIterator to iterate</doc>
  17216. <type name="Iterator" c:type="GstIterator*"/>
  17217. </instance-parameter>
  17218. <parameter name="elem"
  17219. direction="out"
  17220. caller-allocates="1"
  17221. transfer-ownership="none">
  17222. <doc xml:space="preserve">pointer to hold next element</doc>
  17223. <type name="GObject.Value" c:type="GValue*"/>
  17224. </parameter>
  17225. </parameters>
  17226. </method>
  17227. <method name="push" c:identifier="gst_iterator_push">
  17228. <doc xml:space="preserve">Pushes @other iterator onto @it. All calls performed on @it are
  17229. forwarded to @other. If @other returns %GST_ITERATOR_DONE, it is
  17230. popped again and calls are handled by @it again.
  17231. This function is mainly used by objects implementing the iterator
  17232. next function to recurse into substructures.
  17233. When gst_iterator_resync() is called on @it, @other will automatically be
  17234. popped.
  17235. MT safe.</doc>
  17236. <return-value transfer-ownership="none">
  17237. <type name="none" c:type="void"/>
  17238. </return-value>
  17239. <parameters>
  17240. <instance-parameter name="it" transfer-ownership="none">
  17241. <doc xml:space="preserve">The #GstIterator to use</doc>
  17242. <type name="Iterator" c:type="GstIterator*"/>
  17243. </instance-parameter>
  17244. <parameter name="other" transfer-ownership="none">
  17245. <doc xml:space="preserve">The #GstIterator to push</doc>
  17246. <type name="Iterator" c:type="GstIterator*"/>
  17247. </parameter>
  17248. </parameters>
  17249. </method>
  17250. <method name="resync" c:identifier="gst_iterator_resync">
  17251. <doc xml:space="preserve">Resync the iterator. this function is mostly called
  17252. after gst_iterator_next() returned %GST_ITERATOR_RESYNC.
  17253. When an iterator was pushed on @it, it will automatically be popped again
  17254. with this function.
  17255. MT safe.</doc>
  17256. <return-value transfer-ownership="none">
  17257. <type name="none" c:type="void"/>
  17258. </return-value>
  17259. <parameters>
  17260. <instance-parameter name="it" transfer-ownership="none">
  17261. <doc xml:space="preserve">The #GstIterator to resync</doc>
  17262. <type name="Iterator" c:type="GstIterator*"/>
  17263. </instance-parameter>
  17264. </parameters>
  17265. </method>
  17266. </record>
  17267. <callback name="IteratorCopyFunction" c:type="GstIteratorCopyFunction">
  17268. <doc xml:space="preserve">This function will be called when creating a copy of @it and should
  17269. create a copy of all custom iterator fields or increase their
  17270. reference counts.</doc>
  17271. <return-value transfer-ownership="none">
  17272. <type name="none" c:type="void"/>
  17273. </return-value>
  17274. <parameters>
  17275. <parameter name="it" transfer-ownership="none">
  17276. <doc xml:space="preserve">The original iterator</doc>
  17277. <type name="Iterator" c:type="const GstIterator*"/>
  17278. </parameter>
  17279. <parameter name="copy" transfer-ownership="none">
  17280. <doc xml:space="preserve">The copied iterator</doc>
  17281. <type name="Iterator" c:type="GstIterator*"/>
  17282. </parameter>
  17283. </parameters>
  17284. </callback>
  17285. <callback name="IteratorFoldFunction" c:type="GstIteratorFoldFunction">
  17286. <doc xml:space="preserve">A function to be passed to gst_iterator_fold().</doc>
  17287. <return-value transfer-ownership="none">
  17288. <doc xml:space="preserve">%TRUE if the fold should continue, %FALSE if it should stop.</doc>
  17289. <type name="gboolean" c:type="gboolean"/>
  17290. </return-value>
  17291. <parameters>
  17292. <parameter name="item" transfer-ownership="none">
  17293. <doc xml:space="preserve">the item to fold</doc>
  17294. <type name="GObject.Value" c:type="const GValue*"/>
  17295. </parameter>
  17296. <parameter name="ret" transfer-ownership="none">
  17297. <doc xml:space="preserve">a #GValue collecting the result</doc>
  17298. <type name="GObject.Value" c:type="GValue*"/>
  17299. </parameter>
  17300. <parameter name="user_data"
  17301. transfer-ownership="none"
  17302. nullable="1"
  17303. allow-none="1"
  17304. closure="2">
  17305. <doc xml:space="preserve">data passed to gst_iterator_fold()</doc>
  17306. <type name="gpointer" c:type="gpointer"/>
  17307. </parameter>
  17308. </parameters>
  17309. </callback>
  17310. <callback name="IteratorForeachFunction"
  17311. c:type="GstIteratorForeachFunction">
  17312. <doc xml:space="preserve">A function that is called by gst_iterator_foreach() for every element.</doc>
  17313. <return-value transfer-ownership="none">
  17314. <type name="none" c:type="void"/>
  17315. </return-value>
  17316. <parameters>
  17317. <parameter name="item" transfer-ownership="none">
  17318. <doc xml:space="preserve">The item</doc>
  17319. <type name="GObject.Value" c:type="const GValue*"/>
  17320. </parameter>
  17321. <parameter name="user_data"
  17322. transfer-ownership="none"
  17323. nullable="1"
  17324. allow-none="1"
  17325. closure="1">
  17326. <doc xml:space="preserve">User data</doc>
  17327. <type name="gpointer" c:type="gpointer"/>
  17328. </parameter>
  17329. </parameters>
  17330. </callback>
  17331. <callback name="IteratorFreeFunction" c:type="GstIteratorFreeFunction">
  17332. <doc xml:space="preserve">This function will be called when the iterator is freed.
  17333. Implementors of a #GstIterator should implement this
  17334. function and pass it to the constructor of the custom iterator.
  17335. The function will be called with the iterator lock held.</doc>
  17336. <return-value transfer-ownership="none">
  17337. <type name="none" c:type="void"/>
  17338. </return-value>
  17339. <parameters>
  17340. <parameter name="it" transfer-ownership="none">
  17341. <doc xml:space="preserve">the iterator</doc>
  17342. <type name="Iterator" c:type="GstIterator*"/>
  17343. </parameter>
  17344. </parameters>
  17345. </callback>
  17346. <enumeration name="IteratorItem"
  17347. glib:type-name="GstIteratorItem"
  17348. glib:get-type="gst_iterator_item_get_type"
  17349. c:type="GstIteratorItem">
  17350. <doc xml:space="preserve">The result of a #GstIteratorItemFunction.</doc>
  17351. <member name="skip"
  17352. value="0"
  17353. c:identifier="GST_ITERATOR_ITEM_SKIP"
  17354. glib:nick="skip">
  17355. <doc xml:space="preserve">Skip this item</doc>
  17356. </member>
  17357. <member name="pass"
  17358. value="1"
  17359. c:identifier="GST_ITERATOR_ITEM_PASS"
  17360. glib:nick="pass">
  17361. <doc xml:space="preserve">Return item</doc>
  17362. </member>
  17363. <member name="end"
  17364. value="2"
  17365. c:identifier="GST_ITERATOR_ITEM_END"
  17366. glib:nick="end">
  17367. <doc xml:space="preserve">Stop after this item.</doc>
  17368. </member>
  17369. </enumeration>
  17370. <callback name="IteratorItemFunction" c:type="GstIteratorItemFunction">
  17371. <doc xml:space="preserve">The function that will be called after the next item of the iterator
  17372. has been retrieved. This function can be used to skip items or stop
  17373. the iterator.
  17374. The function will be called with the iterator lock held.</doc>
  17375. <return-value transfer-ownership="none">
  17376. <doc xml:space="preserve">the result of the operation.</doc>
  17377. <type name="IteratorItem" c:type="GstIteratorItem"/>
  17378. </return-value>
  17379. <parameters>
  17380. <parameter name="it" transfer-ownership="none">
  17381. <doc xml:space="preserve">the iterator</doc>
  17382. <type name="Iterator" c:type="GstIterator*"/>
  17383. </parameter>
  17384. <parameter name="item" transfer-ownership="none">
  17385. <doc xml:space="preserve">the item being retrieved.</doc>
  17386. <type name="GObject.Value" c:type="const GValue*"/>
  17387. </parameter>
  17388. </parameters>
  17389. </callback>
  17390. <callback name="IteratorNextFunction" c:type="GstIteratorNextFunction">
  17391. <doc xml:space="preserve">The function that will be called when the next element of the iterator
  17392. should be retrieved.
  17393. Implementors of a #GstIterator should implement this
  17394. function and pass it to the constructor of the custom iterator.
  17395. The function will be called with the iterator lock held.</doc>
  17396. <return-value transfer-ownership="none">
  17397. <doc xml:space="preserve">the result of the operation.</doc>
  17398. <type name="IteratorResult" c:type="GstIteratorResult"/>
  17399. </return-value>
  17400. <parameters>
  17401. <parameter name="it" transfer-ownership="none">
  17402. <doc xml:space="preserve">the iterator</doc>
  17403. <type name="Iterator" c:type="GstIterator*"/>
  17404. </parameter>
  17405. <parameter name="result" transfer-ownership="none">
  17406. <doc xml:space="preserve">a pointer to hold the next item</doc>
  17407. <type name="GObject.Value" c:type="GValue*"/>
  17408. </parameter>
  17409. </parameters>
  17410. </callback>
  17411. <enumeration name="IteratorResult"
  17412. glib:type-name="GstIteratorResult"
  17413. glib:get-type="gst_iterator_result_get_type"
  17414. c:type="GstIteratorResult">
  17415. <doc xml:space="preserve">The result of gst_iterator_next().</doc>
  17416. <member name="done"
  17417. value="0"
  17418. c:identifier="GST_ITERATOR_DONE"
  17419. glib:nick="done">
  17420. <doc xml:space="preserve">No more items in the iterator</doc>
  17421. </member>
  17422. <member name="ok"
  17423. value="1"
  17424. c:identifier="GST_ITERATOR_OK"
  17425. glib:nick="ok">
  17426. <doc xml:space="preserve">An item was retrieved</doc>
  17427. </member>
  17428. <member name="resync"
  17429. value="2"
  17430. c:identifier="GST_ITERATOR_RESYNC"
  17431. glib:nick="resync">
  17432. <doc xml:space="preserve">Datastructure changed while iterating</doc>
  17433. </member>
  17434. <member name="error"
  17435. value="3"
  17436. c:identifier="GST_ITERATOR_ERROR"
  17437. glib:nick="error">
  17438. <doc xml:space="preserve">An error happened</doc>
  17439. </member>
  17440. </enumeration>
  17441. <callback name="IteratorResyncFunction" c:type="GstIteratorResyncFunction">
  17442. <doc xml:space="preserve">This function will be called whenever a concurrent update happened
  17443. to the iterated datastructure. The implementor of the iterator should
  17444. restart the iterator from the beginning and clean up any state it might
  17445. have.
  17446. Implementors of a #GstIterator should implement this
  17447. function and pass it to the constructor of the custom iterator.
  17448. The function will be called with the iterator lock held.</doc>
  17449. <return-value transfer-ownership="none">
  17450. <type name="none" c:type="void"/>
  17451. </return-value>
  17452. <parameters>
  17453. <parameter name="it" transfer-ownership="none">
  17454. <doc xml:space="preserve">the iterator</doc>
  17455. <type name="Iterator" c:type="GstIterator*"/>
  17456. </parameter>
  17457. </parameters>
  17458. </callback>
  17459. <constant name="LICENSE_UNKNOWN"
  17460. value="unknown"
  17461. c:type="GST_LICENSE_UNKNOWN">
  17462. <doc xml:space="preserve">To be used in GST_PLUGIN_DEFINE if unsure about the licence.</doc>
  17463. <type name="utf8" c:type="gchar*"/>
  17464. </constant>
  17465. <constant name="LOCK_FLAG_READWRITE"
  17466. value="0"
  17467. c:type="GST_LOCK_FLAG_READWRITE">
  17468. <doc xml:space="preserve">GstLockFlags value alias for GST_LOCK_FLAG_READ | GST_LOCK_FLAG_WRITE</doc>
  17469. <type name="gint" c:type="gint"/>
  17470. </constant>
  17471. <enumeration name="LibraryError"
  17472. glib:type-name="GstLibraryError"
  17473. glib:get-type="gst_library_error_get_type"
  17474. c:type="GstLibraryError"
  17475. glib:error-domain="gst-library-error-quark">
  17476. <doc xml:space="preserve">Library errors are for errors from the library being used by elements
  17477. (initializing, finalizing, settings, ...)</doc>
  17478. <member name="failed"
  17479. value="1"
  17480. c:identifier="GST_LIBRARY_ERROR_FAILED"
  17481. glib:nick="failed">
  17482. <doc xml:space="preserve">a general error which doesn't fit in any other
  17483. category. Make sure you add a custom message to the error call.</doc>
  17484. </member>
  17485. <member name="too_lazy"
  17486. value="2"
  17487. c:identifier="GST_LIBRARY_ERROR_TOO_LAZY"
  17488. glib:nick="too-lazy">
  17489. <doc xml:space="preserve">do not use this except as a placeholder for
  17490. deciding where to go while developing code.</doc>
  17491. </member>
  17492. <member name="init"
  17493. value="3"
  17494. c:identifier="GST_LIBRARY_ERROR_INIT"
  17495. glib:nick="init">
  17496. <doc xml:space="preserve">used when the library could not be opened.</doc>
  17497. </member>
  17498. <member name="shutdown"
  17499. value="4"
  17500. c:identifier="GST_LIBRARY_ERROR_SHUTDOWN"
  17501. glib:nick="shutdown">
  17502. <doc xml:space="preserve">used when the library could not be closed.</doc>
  17503. </member>
  17504. <member name="settings"
  17505. value="5"
  17506. c:identifier="GST_LIBRARY_ERROR_SETTINGS"
  17507. glib:nick="settings">
  17508. <doc xml:space="preserve">used when the library doesn't accept settings.</doc>
  17509. </member>
  17510. <member name="encode"
  17511. value="6"
  17512. c:identifier="GST_LIBRARY_ERROR_ENCODE"
  17513. glib:nick="encode">
  17514. <doc xml:space="preserve">used when the library generated an encoding error.</doc>
  17515. </member>
  17516. <member name="num_errors"
  17517. value="7"
  17518. c:identifier="GST_LIBRARY_ERROR_NUM_ERRORS"
  17519. glib:nick="num-errors">
  17520. <doc xml:space="preserve">the number of library error types.</doc>
  17521. </member>
  17522. <function name="quark" c:identifier="gst_library_error_quark">
  17523. <return-value transfer-ownership="none">
  17524. <type name="GLib.Quark" c:type="GQuark"/>
  17525. </return-value>
  17526. </function>
  17527. </enumeration>
  17528. <bitfield name="LockFlags"
  17529. glib:type-name="GstLockFlags"
  17530. glib:get-type="gst_lock_flags_get_type"
  17531. c:type="GstLockFlags">
  17532. <doc xml:space="preserve">Flags used when locking miniobjects</doc>
  17533. <member name="read"
  17534. value="1"
  17535. c:identifier="GST_LOCK_FLAG_READ"
  17536. glib:nick="read">
  17537. <doc xml:space="preserve">lock for read access</doc>
  17538. </member>
  17539. <member name="write"
  17540. value="2"
  17541. c:identifier="GST_LOCK_FLAG_WRITE"
  17542. glib:nick="write">
  17543. <doc xml:space="preserve">lock for write access</doc>
  17544. </member>
  17545. <member name="exclusive"
  17546. value="4"
  17547. c:identifier="GST_LOCK_FLAG_EXCLUSIVE"
  17548. glib:nick="exclusive">
  17549. <doc xml:space="preserve">lock for exclusive access</doc>
  17550. </member>
  17551. <member name="last"
  17552. value="256"
  17553. c:identifier="GST_LOCK_FLAG_LAST"
  17554. glib:nick="last">
  17555. <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
  17556. </member>
  17557. </bitfield>
  17558. <callback name="LogFunction" c:type="GstLogFunction">
  17559. <doc xml:space="preserve">Function prototype for a logging function that can be registered with
  17560. gst_debug_add_log_function().
  17561. Use G_GNUC_NO_INSTRUMENT on that function.</doc>
  17562. <return-value transfer-ownership="none">
  17563. <type name="none" c:type="void"/>
  17564. </return-value>
  17565. <parameters>
  17566. <parameter name="category" transfer-ownership="none">
  17567. <doc xml:space="preserve">a #GstDebugCategory</doc>
  17568. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  17569. </parameter>
  17570. <parameter name="level" transfer-ownership="none">
  17571. <doc xml:space="preserve">a #GstDebugLevel</doc>
  17572. <type name="DebugLevel" c:type="GstDebugLevel"/>
  17573. </parameter>
  17574. <parameter name="file" transfer-ownership="none">
  17575. <doc xml:space="preserve">file name</doc>
  17576. <type name="utf8" c:type="const gchar*"/>
  17577. </parameter>
  17578. <parameter name="function" transfer-ownership="none">
  17579. <doc xml:space="preserve">function name</doc>
  17580. <type name="utf8" c:type="const gchar*"/>
  17581. </parameter>
  17582. <parameter name="line" transfer-ownership="none">
  17583. <doc xml:space="preserve">line number</doc>
  17584. <type name="gint" c:type="gint"/>
  17585. </parameter>
  17586. <parameter name="object" transfer-ownership="none">
  17587. <doc xml:space="preserve">a #GObject</doc>
  17588. <type name="GObject.Object" c:type="GObject*"/>
  17589. </parameter>
  17590. <parameter name="message" transfer-ownership="none">
  17591. <doc xml:space="preserve">the message</doc>
  17592. <type name="DebugMessage" c:type="GstDebugMessage*"/>
  17593. </parameter>
  17594. <parameter name="user_data"
  17595. transfer-ownership="none"
  17596. nullable="1"
  17597. allow-none="1"
  17598. closure="7">
  17599. <doc xml:space="preserve">user data for the log function</doc>
  17600. <type name="gpointer" c:type="gpointer"/>
  17601. </parameter>
  17602. </parameters>
  17603. </callback>
  17604. <constant name="MAP_READWRITE" value="0" c:type="GST_MAP_READWRITE">
  17605. <doc xml:space="preserve">GstMapFlags value alias for GST_MAP_READ | GST_MAP_WRITE</doc>
  17606. <type name="gint" c:type="gint"/>
  17607. </constant>
  17608. <constant name="META_TAG_MEMORY_STR"
  17609. value="memory"
  17610. c:type="GST_META_TAG_MEMORY_STR"
  17611. version="1.2">
  17612. <doc xml:space="preserve">This metadata stays relevant as long as memory layout is unchanged.</doc>
  17613. <type name="utf8" c:type="gchar*"/>
  17614. </constant>
  17615. <constant name="MSECOND" value="1000000" c:type="GST_MSECOND">
  17616. <doc xml:space="preserve">Constant that defines one GStreamer millisecond.</doc>
  17617. <type name="gint" c:type="gint"/>
  17618. </constant>
  17619. <bitfield name="MapFlags"
  17620. glib:type-name="GstMapFlags"
  17621. glib:get-type="gst_map_flags_get_type"
  17622. c:type="GstMapFlags">
  17623. <doc xml:space="preserve">Flags used when mapping memory</doc>
  17624. <member name="read"
  17625. value="1"
  17626. c:identifier="GST_MAP_READ"
  17627. glib:nick="read">
  17628. <doc xml:space="preserve">map for read access</doc>
  17629. </member>
  17630. <member name="write"
  17631. value="2"
  17632. c:identifier="GST_MAP_WRITE"
  17633. glib:nick="write">
  17634. <doc xml:space="preserve">map for write access</doc>
  17635. </member>
  17636. <member name="flag_last"
  17637. value="65536"
  17638. c:identifier="GST_MAP_FLAG_LAST"
  17639. glib:nick="flag-last">
  17640. <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
  17641. </member>
  17642. </bitfield>
  17643. <record name="MapInfo" c:type="GstMapInfo">
  17644. <doc xml:space="preserve">A structure containing the result of a map operation such as
  17645. gst_memory_map(). It contains the data and size.</doc>
  17646. <field name="memory" writable="1">
  17647. <doc xml:space="preserve">a pointer to the mapped memory</doc>
  17648. <type name="Memory" c:type="GstMemory*"/>
  17649. </field>
  17650. <field name="flags" writable="1">
  17651. <doc xml:space="preserve">flags used when mapping the memory</doc>
  17652. <type name="MapFlags" c:type="GstMapFlags"/>
  17653. </field>
  17654. <field name="data" writable="1">
  17655. <doc xml:space="preserve">a pointer to the mapped data</doc>
  17656. <array length="3" zero-terminated="0" c:type="guint8*">
  17657. <type name="guint8" c:type="guint8"/>
  17658. </array>
  17659. </field>
  17660. <field name="size" writable="1">
  17661. <doc xml:space="preserve">the valid size in @data</doc>
  17662. <type name="gsize" c:type="gsize"/>
  17663. </field>
  17664. <field name="maxsize" writable="1">
  17665. <doc xml:space="preserve">the maximum bytes in @data</doc>
  17666. <type name="gsize" c:type="gsize"/>
  17667. </field>
  17668. <field name="user_data" writable="1">
  17669. <doc xml:space="preserve">extra private user_data that the implementation of the memory
  17670. can use to store extra info.</doc>
  17671. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  17672. <type name="gpointer" c:type="gpointer"/>
  17673. </array>
  17674. </field>
  17675. <field name="_gst_reserved" readable="0" private="1">
  17676. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  17677. <type name="gpointer" c:type="gpointer"/>
  17678. </array>
  17679. </field>
  17680. </record>
  17681. <record name="Memory"
  17682. c:type="GstMemory"
  17683. glib:type-name="GstMemory"
  17684. glib:get-type="gst_memory_get_type"
  17685. c:symbol-prefix="memory">
  17686. <doc xml:space="preserve">GstMemory is a lightweight refcounted object that wraps a region of memory.
  17687. They are typically used to manage the data of a #GstBuffer.
  17688. A GstMemory object has an allocated region of memory of maxsize. The maximum
  17689. size does not change during the lifetime of the memory object. The memory
  17690. also has an offset and size property that specifies the valid range of memory
  17691. in the allocated region.
  17692. Memory is usually created by allocators with a gst_allocator_alloc()
  17693. method call. When %NULL is used as the allocator, the default allocator will
  17694. be used.
  17695. New allocators can be registered with gst_allocator_register().
  17696. Allocators are identified by name and can be retrieved with
  17697. gst_allocator_find(). gst_allocator_set_default() can be used to change the
  17698. default allocator.
  17699. New memory can be created with gst_memory_new_wrapped() that wraps the memory
  17700. allocated elsewhere.
  17701. Refcounting of the memory block is performed with gst_memory_ref() and
  17702. gst_memory_unref().
  17703. The size of the memory can be retrieved and changed with
  17704. gst_memory_get_sizes() and gst_memory_resize() respectively.
  17705. Getting access to the data of the memory is performed with gst_memory_map().
  17706. The call will return a pointer to offset bytes into the region of memory.
  17707. After the memory access is completed, gst_memory_unmap() should be called.
  17708. Memory can be copied with gst_memory_copy(), which will return a writable
  17709. copy. gst_memory_share() will create a new memory block that shares the
  17710. memory with an existing memory block at a custom offset and with a custom
  17711. size.
  17712. Memory can be efficiently merged when gst_memory_is_span() returns %TRUE.</doc>
  17713. <field name="mini_object" writable="1">
  17714. <doc xml:space="preserve">parent structure</doc>
  17715. <type name="MiniObject" c:type="GstMiniObject"/>
  17716. </field>
  17717. <field name="allocator" writable="1">
  17718. <doc xml:space="preserve">pointer to the #GstAllocator</doc>
  17719. <type name="Allocator" c:type="GstAllocator*"/>
  17720. </field>
  17721. <field name="parent" writable="1">
  17722. <doc xml:space="preserve">parent memory block</doc>
  17723. <type name="Memory" c:type="GstMemory*"/>
  17724. </field>
  17725. <field name="maxsize" writable="1">
  17726. <doc xml:space="preserve">the maximum size allocated</doc>
  17727. <type name="gsize" c:type="gsize"/>
  17728. </field>
  17729. <field name="align" writable="1">
  17730. <doc xml:space="preserve">the alignment of the memory</doc>
  17731. <type name="gsize" c:type="gsize"/>
  17732. </field>
  17733. <field name="offset" writable="1">
  17734. <doc xml:space="preserve">the offset where valid data starts</doc>
  17735. <type name="gsize" c:type="gsize"/>
  17736. </field>
  17737. <field name="size" writable="1">
  17738. <doc xml:space="preserve">the size of valid data</doc>
  17739. <type name="gsize" c:type="gsize"/>
  17740. </field>
  17741. <constructor name="new_wrapped" c:identifier="gst_memory_new_wrapped">
  17742. <doc xml:space="preserve">Allocate a new memory block that wraps the given @data.
  17743. The prefix/padding must be filled with 0 if @flags contains
  17744. #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED respectively.</doc>
  17745. <return-value transfer-ownership="full">
  17746. <doc xml:space="preserve">a new #GstMemory.</doc>
  17747. <type name="Memory" c:type="GstMemory*"/>
  17748. </return-value>
  17749. <parameters>
  17750. <parameter name="flags" transfer-ownership="none">
  17751. <doc xml:space="preserve">#GstMemoryFlags</doc>
  17752. <type name="MemoryFlags" c:type="GstMemoryFlags"/>
  17753. </parameter>
  17754. <parameter name="data" transfer-ownership="none">
  17755. <doc xml:space="preserve">data to
  17756. wrap</doc>
  17757. <array length="4" zero-terminated="0" c:type="gpointer">
  17758. <type name="guint8"/>
  17759. </array>
  17760. </parameter>
  17761. <parameter name="maxsize" transfer-ownership="none">
  17762. <doc xml:space="preserve">allocated size of @data</doc>
  17763. <type name="gsize" c:type="gsize"/>
  17764. </parameter>
  17765. <parameter name="offset" transfer-ownership="none">
  17766. <doc xml:space="preserve">offset in @data</doc>
  17767. <type name="gsize" c:type="gsize"/>
  17768. </parameter>
  17769. <parameter name="size" transfer-ownership="none">
  17770. <doc xml:space="preserve">size of valid data</doc>
  17771. <type name="gsize" c:type="gsize"/>
  17772. </parameter>
  17773. <parameter name="user_data"
  17774. transfer-ownership="none"
  17775. nullable="1"
  17776. allow-none="1">
  17777. <doc xml:space="preserve">user_data</doc>
  17778. <type name="gpointer" c:type="gpointer"/>
  17779. </parameter>
  17780. <parameter name="notify"
  17781. transfer-ownership="none"
  17782. nullable="1"
  17783. allow-none="1"
  17784. scope="async"
  17785. closure="5">
  17786. <doc xml:space="preserve">called with @user_data when the memory is freed</doc>
  17787. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  17788. </parameter>
  17789. </parameters>
  17790. </constructor>
  17791. <method name="copy" c:identifier="gst_memory_copy">
  17792. <doc xml:space="preserve">Return a copy of @size bytes from @mem starting from @offset. This copy is
  17793. guaranteed to be writable. @size can be set to -1 to return a copy
  17794. from @offset to the end of the memory region.</doc>
  17795. <return-value transfer-ownership="full">
  17796. <doc xml:space="preserve">a new #GstMemory.</doc>
  17797. <type name="Memory" c:type="GstMemory*"/>
  17798. </return-value>
  17799. <parameters>
  17800. <instance-parameter name="mem" transfer-ownership="none">
  17801. <doc xml:space="preserve">a #GstMemory</doc>
  17802. <type name="Memory" c:type="GstMemory*"/>
  17803. </instance-parameter>
  17804. <parameter name="offset" transfer-ownership="none">
  17805. <doc xml:space="preserve">offset to copy from</doc>
  17806. <type name="gssize" c:type="gssize"/>
  17807. </parameter>
  17808. <parameter name="size" transfer-ownership="none">
  17809. <doc xml:space="preserve">size to copy, or -1 to copy to the end of the memory region</doc>
  17810. <type name="gssize" c:type="gssize"/>
  17811. </parameter>
  17812. </parameters>
  17813. </method>
  17814. <method name="get_sizes" c:identifier="gst_memory_get_sizes">
  17815. <doc xml:space="preserve">Get the current @size, @offset and @maxsize of @mem.</doc>
  17816. <return-value transfer-ownership="none">
  17817. <doc xml:space="preserve">the current sizes of @mem</doc>
  17818. <type name="gsize" c:type="gsize"/>
  17819. </return-value>
  17820. <parameters>
  17821. <instance-parameter name="mem" transfer-ownership="none">
  17822. <doc xml:space="preserve">a #GstMemory</doc>
  17823. <type name="Memory" c:type="GstMemory*"/>
  17824. </instance-parameter>
  17825. <parameter name="offset" transfer-ownership="none">
  17826. <doc xml:space="preserve">pointer to offset</doc>
  17827. <type name="gsize" c:type="gsize*"/>
  17828. </parameter>
  17829. <parameter name="maxsize" transfer-ownership="none">
  17830. <doc xml:space="preserve">pointer to maxsize</doc>
  17831. <type name="gsize" c:type="gsize*"/>
  17832. </parameter>
  17833. </parameters>
  17834. </method>
  17835. <method name="init" c:identifier="gst_memory_init" introspectable="0">
  17836. <doc xml:space="preserve">Initializes a newly allocated @mem with the given parameters. This function
  17837. will call gst_mini_object_init() with the default memory parameters.</doc>
  17838. <return-value transfer-ownership="none">
  17839. <type name="none" c:type="void"/>
  17840. </return-value>
  17841. <parameters>
  17842. <instance-parameter name="mem" transfer-ownership="none">
  17843. <doc xml:space="preserve">a #GstMemory</doc>
  17844. <type name="Memory" c:type="GstMemory*"/>
  17845. </instance-parameter>
  17846. <parameter name="flags" transfer-ownership="none">
  17847. <doc xml:space="preserve">#GstMemoryFlags</doc>
  17848. <type name="MemoryFlags" c:type="GstMemoryFlags"/>
  17849. </parameter>
  17850. <parameter name="allocator" transfer-ownership="none">
  17851. <doc xml:space="preserve">the #GstAllocator</doc>
  17852. <type name="Allocator" c:type="GstAllocator*"/>
  17853. </parameter>
  17854. <parameter name="parent" transfer-ownership="none">
  17855. <doc xml:space="preserve">the parent of @mem</doc>
  17856. <type name="Memory" c:type="GstMemory*"/>
  17857. </parameter>
  17858. <parameter name="maxsize" transfer-ownership="none">
  17859. <doc xml:space="preserve">the total size of the memory</doc>
  17860. <type name="gsize" c:type="gsize"/>
  17861. </parameter>
  17862. <parameter name="align" transfer-ownership="none">
  17863. <doc xml:space="preserve">the alignment of the memory</doc>
  17864. <type name="gsize" c:type="gsize"/>
  17865. </parameter>
  17866. <parameter name="offset" transfer-ownership="none">
  17867. <doc xml:space="preserve">The offset in the memory</doc>
  17868. <type name="gsize" c:type="gsize"/>
  17869. </parameter>
  17870. <parameter name="size" transfer-ownership="none">
  17871. <doc xml:space="preserve">the size of valid data in the memory</doc>
  17872. <type name="gsize" c:type="gsize"/>
  17873. </parameter>
  17874. </parameters>
  17875. </method>
  17876. <method name="is_span" c:identifier="gst_memory_is_span">
  17877. <doc xml:space="preserve">Check if @mem1 and mem2 share the memory with a common parent memory object
  17878. and that the memory is contiguous.
  17879. If this is the case, the memory of @mem1 and @mem2 can be merged
  17880. efficiently by performing gst_memory_share() on the parent object from
  17881. the returned @offset.</doc>
  17882. <return-value transfer-ownership="none">
  17883. <doc xml:space="preserve">%TRUE if the memory is contiguous and of a common parent.</doc>
  17884. <type name="gboolean" c:type="gboolean"/>
  17885. </return-value>
  17886. <parameters>
  17887. <instance-parameter name="mem1" transfer-ownership="none">
  17888. <doc xml:space="preserve">a #GstMemory</doc>
  17889. <type name="Memory" c:type="GstMemory*"/>
  17890. </instance-parameter>
  17891. <parameter name="mem2" transfer-ownership="none">
  17892. <doc xml:space="preserve">a #GstMemory</doc>
  17893. <type name="Memory" c:type="GstMemory*"/>
  17894. </parameter>
  17895. <parameter name="offset" transfer-ownership="none">
  17896. <doc xml:space="preserve">a pointer to a result offset</doc>
  17897. <type name="gsize" c:type="gsize*"/>
  17898. </parameter>
  17899. </parameters>
  17900. </method>
  17901. <method name="is_type" c:identifier="gst_memory_is_type" version="1.2">
  17902. <doc xml:space="preserve">Check if @mem if allocated with an allocator for @mem_type.</doc>
  17903. <return-value transfer-ownership="none">
  17904. <doc xml:space="preserve">%TRUE if @mem was allocated from an allocator for @mem_type.</doc>
  17905. <type name="gboolean" c:type="gboolean"/>
  17906. </return-value>
  17907. <parameters>
  17908. <instance-parameter name="mem" transfer-ownership="none">
  17909. <doc xml:space="preserve">a #GstMemory</doc>
  17910. <type name="Memory" c:type="GstMemory*"/>
  17911. </instance-parameter>
  17912. <parameter name="mem_type" transfer-ownership="none">
  17913. <doc xml:space="preserve">a memory type</doc>
  17914. <type name="utf8" c:type="const gchar*"/>
  17915. </parameter>
  17916. </parameters>
  17917. </method>
  17918. <method name="make_mapped" c:identifier="gst_memory_make_mapped">
  17919. <doc xml:space="preserve">Create a #GstMemory object that is mapped with @flags. If @mem is mappable
  17920. with @flags, this function returns the mapped @mem directly. Otherwise a
  17921. mapped copy of @mem is returned.
  17922. This function takes ownership of old @mem and returns a reference to a new
  17923. #GstMemory.</doc>
  17924. <return-value transfer-ownership="full" nullable="1">
  17925. <doc xml:space="preserve">a #GstMemory object mapped
  17926. with @flags or %NULL when a mapping is not possible.</doc>
  17927. <type name="Memory" c:type="GstMemory*"/>
  17928. </return-value>
  17929. <parameters>
  17930. <instance-parameter name="mem" transfer-ownership="full">
  17931. <doc xml:space="preserve">a #GstMemory</doc>
  17932. <type name="Memory" c:type="GstMemory*"/>
  17933. </instance-parameter>
  17934. <parameter name="info"
  17935. direction="out"
  17936. caller-allocates="1"
  17937. transfer-ownership="none">
  17938. <doc xml:space="preserve">pointer for info</doc>
  17939. <type name="MapInfo" c:type="GstMapInfo*"/>
  17940. </parameter>
  17941. <parameter name="flags" transfer-ownership="none">
  17942. <doc xml:space="preserve">mapping flags</doc>
  17943. <type name="MapFlags" c:type="GstMapFlags"/>
  17944. </parameter>
  17945. </parameters>
  17946. </method>
  17947. <method name="map" c:identifier="gst_memory_map">
  17948. <doc xml:space="preserve">Fill @info with the pointer and sizes of the memory in @mem that can be
  17949. accessed according to @flags.
  17950. This function can return %FALSE for various reasons:
  17951. - the memory backed by @mem is not accessible with the given @flags.
  17952. - the memory was already mapped with a different mapping.
  17953. @info and its contents remain valid for as long as @mem is valid and
  17954. until gst_memory_unmap() is called.
  17955. For each gst_memory_map() call, a corresponding gst_memory_unmap() call
  17956. should be done.</doc>
  17957. <return-value transfer-ownership="none">
  17958. <doc xml:space="preserve">%TRUE if the map operation was successful.</doc>
  17959. <type name="gboolean" c:type="gboolean"/>
  17960. </return-value>
  17961. <parameters>
  17962. <instance-parameter name="mem" transfer-ownership="none">
  17963. <doc xml:space="preserve">a #GstMemory</doc>
  17964. <type name="Memory" c:type="GstMemory*"/>
  17965. </instance-parameter>
  17966. <parameter name="info"
  17967. direction="out"
  17968. caller-allocates="1"
  17969. transfer-ownership="none">
  17970. <doc xml:space="preserve">pointer for info</doc>
  17971. <type name="MapInfo" c:type="GstMapInfo*"/>
  17972. </parameter>
  17973. <parameter name="flags" transfer-ownership="none">
  17974. <doc xml:space="preserve">mapping flags</doc>
  17975. <type name="MapFlags" c:type="GstMapFlags"/>
  17976. </parameter>
  17977. </parameters>
  17978. </method>
  17979. <method name="resize" c:identifier="gst_memory_resize">
  17980. <doc xml:space="preserve">Resize the memory region. @mem should be writable and offset + size should be
  17981. less than the maxsize of @mem.
  17982. #GST_MEMORY_FLAG_ZERO_PREFIXED and #GST_MEMORY_FLAG_ZERO_PADDED will be
  17983. cleared when offset or padding is increased respectively.</doc>
  17984. <return-value transfer-ownership="none">
  17985. <type name="none" c:type="void"/>
  17986. </return-value>
  17987. <parameters>
  17988. <instance-parameter name="mem" transfer-ownership="none">
  17989. <doc xml:space="preserve">a #GstMemory</doc>
  17990. <type name="Memory" c:type="GstMemory*"/>
  17991. </instance-parameter>
  17992. <parameter name="offset" transfer-ownership="none">
  17993. <doc xml:space="preserve">a new offset</doc>
  17994. <type name="gssize" c:type="gssize"/>
  17995. </parameter>
  17996. <parameter name="size" transfer-ownership="none">
  17997. <doc xml:space="preserve">a new size</doc>
  17998. <type name="gsize" c:type="gsize"/>
  17999. </parameter>
  18000. </parameters>
  18001. </method>
  18002. <method name="share" c:identifier="gst_memory_share">
  18003. <doc xml:space="preserve">Return a shared copy of @size bytes from @mem starting from @offset. No
  18004. memory copy is performed and the memory region is simply shared. The result
  18005. is guaranteed to be non-writable. @size can be set to -1 to return a shared
  18006. copy from @offset to the end of the memory region.</doc>
  18007. <return-value transfer-ownership="full">
  18008. <doc xml:space="preserve">a new #GstMemory.</doc>
  18009. <type name="Memory" c:type="GstMemory*"/>
  18010. </return-value>
  18011. <parameters>
  18012. <instance-parameter name="mem" transfer-ownership="none">
  18013. <doc xml:space="preserve">a #GstMemory</doc>
  18014. <type name="Memory" c:type="GstMemory*"/>
  18015. </instance-parameter>
  18016. <parameter name="offset" transfer-ownership="none">
  18017. <doc xml:space="preserve">offset to share from</doc>
  18018. <type name="gssize" c:type="gssize"/>
  18019. </parameter>
  18020. <parameter name="size" transfer-ownership="none">
  18021. <doc xml:space="preserve">size to share, or -1 to share to the end of the memory region</doc>
  18022. <type name="gssize" c:type="gssize"/>
  18023. </parameter>
  18024. </parameters>
  18025. </method>
  18026. <method name="unmap" c:identifier="gst_memory_unmap">
  18027. <doc xml:space="preserve">Release the memory obtained with gst_memory_map()</doc>
  18028. <return-value transfer-ownership="none">
  18029. <type name="none" c:type="void"/>
  18030. </return-value>
  18031. <parameters>
  18032. <instance-parameter name="mem" transfer-ownership="none">
  18033. <doc xml:space="preserve">a #GstMemory</doc>
  18034. <type name="Memory" c:type="GstMemory*"/>
  18035. </instance-parameter>
  18036. <parameter name="info" transfer-ownership="none">
  18037. <doc xml:space="preserve">a #GstMapInfo</doc>
  18038. <type name="MapInfo" c:type="GstMapInfo*"/>
  18039. </parameter>
  18040. </parameters>
  18041. </method>
  18042. </record>
  18043. <callback name="MemoryCopyFunction" c:type="GstMemoryCopyFunction">
  18044. <doc xml:space="preserve">Copy @size bytes from @mem starting at @offset and return them wrapped in a
  18045. new GstMemory object.
  18046. If @size is set to -1, all bytes starting at @offset are copied.</doc>
  18047. <return-value transfer-ownership="full">
  18048. <doc xml:space="preserve">a new #GstMemory object wrapping a copy of the requested region in
  18049. @mem.</doc>
  18050. <type name="Memory" c:type="GstMemory*"/>
  18051. </return-value>
  18052. <parameters>
  18053. <parameter name="mem" transfer-ownership="none">
  18054. <doc xml:space="preserve">a #GstMemory</doc>
  18055. <type name="Memory" c:type="GstMemory*"/>
  18056. </parameter>
  18057. <parameter name="offset" transfer-ownership="none">
  18058. <doc xml:space="preserve">an offset</doc>
  18059. <type name="gssize" c:type="gssize"/>
  18060. </parameter>
  18061. <parameter name="size" transfer-ownership="none">
  18062. <doc xml:space="preserve">a size or -1</doc>
  18063. <type name="gssize" c:type="gssize"/>
  18064. </parameter>
  18065. </parameters>
  18066. </callback>
  18067. <bitfield name="MemoryFlags"
  18068. glib:type-name="GstMemoryFlags"
  18069. glib:get-type="gst_memory_flags_get_type"
  18070. c:type="GstMemoryFlags">
  18071. <doc xml:space="preserve">Flags for wrapped memory.</doc>
  18072. <member name="readonly"
  18073. value="2"
  18074. c:identifier="GST_MEMORY_FLAG_READONLY"
  18075. glib:nick="readonly">
  18076. <doc xml:space="preserve">memory is readonly. It is not allowed to map the
  18077. memory with #GST_MAP_WRITE.</doc>
  18078. </member>
  18079. <member name="no_share"
  18080. value="16"
  18081. c:identifier="GST_MEMORY_FLAG_NO_SHARE"
  18082. glib:nick="no-share">
  18083. <doc xml:space="preserve">memory must not be shared. Copies will have to be
  18084. made when this memory needs to be shared between buffers.</doc>
  18085. </member>
  18086. <member name="zero_prefixed"
  18087. value="32"
  18088. c:identifier="GST_MEMORY_FLAG_ZERO_PREFIXED"
  18089. glib:nick="zero-prefixed">
  18090. <doc xml:space="preserve">the memory prefix is filled with 0 bytes</doc>
  18091. </member>
  18092. <member name="zero_padded"
  18093. value="64"
  18094. c:identifier="GST_MEMORY_FLAG_ZERO_PADDED"
  18095. glib:nick="zero-padded">
  18096. <doc xml:space="preserve">the memory padding is filled with 0 bytes</doc>
  18097. </member>
  18098. <member name="physically_contiguous"
  18099. value="128"
  18100. c:identifier="GST_MEMORY_FLAG_PHYSICALLY_CONTIGUOUS"
  18101. glib:nick="physically-contiguous">
  18102. <doc xml:space="preserve">the memory is physically contiguous. (Since 1.2)</doc>
  18103. </member>
  18104. <member name="not_mappable"
  18105. value="256"
  18106. c:identifier="GST_MEMORY_FLAG_NOT_MAPPABLE"
  18107. glib:nick="not-mappable">
  18108. <doc xml:space="preserve">the memory can't be mapped via gst_memory_map() without any preconditions. (Since 1.2)</doc>
  18109. </member>
  18110. <member name="last"
  18111. value="1048576"
  18112. c:identifier="GST_MEMORY_FLAG_LAST"
  18113. glib:nick="last">
  18114. <doc xml:space="preserve">first flag that can be used for custom purposes</doc>
  18115. </member>
  18116. </bitfield>
  18117. <callback name="MemoryIsSpanFunction" c:type="GstMemoryIsSpanFunction">
  18118. <doc xml:space="preserve">Check if @mem1 and @mem2 occupy contiguous memory and return the offset of
  18119. @mem1 in the parent buffer in @offset.</doc>
  18120. <return-value transfer-ownership="none">
  18121. <doc xml:space="preserve">%TRUE if @mem1 and @mem2 are in contiguous memory.</doc>
  18122. <type name="gboolean" c:type="gboolean"/>
  18123. </return-value>
  18124. <parameters>
  18125. <parameter name="mem1" transfer-ownership="none">
  18126. <doc xml:space="preserve">a #GstMemory</doc>
  18127. <type name="Memory" c:type="GstMemory*"/>
  18128. </parameter>
  18129. <parameter name="mem2" transfer-ownership="none">
  18130. <doc xml:space="preserve">a #GstMemory</doc>
  18131. <type name="Memory" c:type="GstMemory*"/>
  18132. </parameter>
  18133. <parameter name="offset" transfer-ownership="none">
  18134. <doc xml:space="preserve">a result offset</doc>
  18135. <type name="gsize" c:type="gsize*"/>
  18136. </parameter>
  18137. </parameters>
  18138. </callback>
  18139. <callback name="MemoryMapFullFunction" c:type="GstMemoryMapFullFunction">
  18140. <doc xml:space="preserve">Get the memory of @mem that can be accessed according to the mode specified
  18141. in @info's flags. The function should return a pointer that contains at least
  18142. @maxsize bytes.</doc>
  18143. <return-value transfer-ownership="none" nullable="1">
  18144. <doc xml:space="preserve">a pointer to memory of which at least @maxsize bytes can be
  18145. accessed according to the access pattern in @info's flags.</doc>
  18146. <type name="gpointer" c:type="gpointer"/>
  18147. </return-value>
  18148. <parameters>
  18149. <parameter name="mem" transfer-ownership="none">
  18150. <doc xml:space="preserve">a #GstMemory</doc>
  18151. <type name="Memory" c:type="GstMemory*"/>
  18152. </parameter>
  18153. <parameter name="info" transfer-ownership="none">
  18154. <doc xml:space="preserve">the #GstMapInfo to map with</doc>
  18155. <type name="MapInfo" c:type="GstMapInfo*"/>
  18156. </parameter>
  18157. <parameter name="maxsize" transfer-ownership="none">
  18158. <doc xml:space="preserve">size to map</doc>
  18159. <type name="gsize" c:type="gsize"/>
  18160. </parameter>
  18161. </parameters>
  18162. </callback>
  18163. <callback name="MemoryMapFunction" c:type="GstMemoryMapFunction">
  18164. <doc xml:space="preserve">Get the memory of @mem that can be accessed according to the mode specified
  18165. in @flags. The function should return a pointer that contains at least
  18166. @maxsize bytes.</doc>
  18167. <return-value transfer-ownership="none" nullable="1">
  18168. <doc xml:space="preserve">a pointer to memory of which at least @maxsize bytes can be
  18169. accessed according to the access pattern in @flags.</doc>
  18170. <type name="gpointer" c:type="gpointer"/>
  18171. </return-value>
  18172. <parameters>
  18173. <parameter name="mem" transfer-ownership="none">
  18174. <doc xml:space="preserve">a #GstMemory</doc>
  18175. <type name="Memory" c:type="GstMemory*"/>
  18176. </parameter>
  18177. <parameter name="maxsize" transfer-ownership="none">
  18178. <doc xml:space="preserve">size to map</doc>
  18179. <type name="gsize" c:type="gsize"/>
  18180. </parameter>
  18181. <parameter name="flags" transfer-ownership="none">
  18182. <doc xml:space="preserve">access mode for the memory</doc>
  18183. <type name="MapFlags" c:type="GstMapFlags"/>
  18184. </parameter>
  18185. </parameters>
  18186. </callback>
  18187. <callback name="MemoryShareFunction" c:type="GstMemoryShareFunction">
  18188. <doc xml:space="preserve">Share @size bytes from @mem starting at @offset and return them wrapped in a
  18189. new GstMemory object. If @size is set to -1, all bytes starting at @offset are
  18190. shared. This function does not make a copy of the bytes in @mem.</doc>
  18191. <return-value transfer-ownership="full">
  18192. <doc xml:space="preserve">a new #GstMemory object sharing the requested region in @mem.</doc>
  18193. <type name="Memory" c:type="GstMemory*"/>
  18194. </return-value>
  18195. <parameters>
  18196. <parameter name="mem" transfer-ownership="none">
  18197. <doc xml:space="preserve">a #GstMemory</doc>
  18198. <type name="Memory" c:type="GstMemory*"/>
  18199. </parameter>
  18200. <parameter name="offset" transfer-ownership="none">
  18201. <doc xml:space="preserve">an offset</doc>
  18202. <type name="gssize" c:type="gssize"/>
  18203. </parameter>
  18204. <parameter name="size" transfer-ownership="none">
  18205. <doc xml:space="preserve">a size or -1</doc>
  18206. <type name="gssize" c:type="gssize"/>
  18207. </parameter>
  18208. </parameters>
  18209. </callback>
  18210. <callback name="MemoryUnmapFullFunction"
  18211. c:type="GstMemoryUnmapFullFunction">
  18212. <doc xml:space="preserve">Return the pointer previously retrieved with gst_memory_map() with @info.</doc>
  18213. <return-value transfer-ownership="none">
  18214. <type name="none" c:type="void"/>
  18215. </return-value>
  18216. <parameters>
  18217. <parameter name="mem" transfer-ownership="none">
  18218. <doc xml:space="preserve">a #GstMemory</doc>
  18219. <type name="Memory" c:type="GstMemory*"/>
  18220. </parameter>
  18221. <parameter name="info" transfer-ownership="none">
  18222. <doc xml:space="preserve">a #GstMapInfo</doc>
  18223. <type name="MapInfo" c:type="GstMapInfo*"/>
  18224. </parameter>
  18225. </parameters>
  18226. </callback>
  18227. <callback name="MemoryUnmapFunction" c:type="GstMemoryUnmapFunction">
  18228. <doc xml:space="preserve">Return the pointer previously retrieved with gst_memory_map().</doc>
  18229. <return-value transfer-ownership="none">
  18230. <type name="none" c:type="void"/>
  18231. </return-value>
  18232. <parameters>
  18233. <parameter name="mem" transfer-ownership="none">
  18234. <doc xml:space="preserve">a #GstMemory</doc>
  18235. <type name="Memory" c:type="GstMemory*"/>
  18236. </parameter>
  18237. </parameters>
  18238. </callback>
  18239. <record name="Message"
  18240. c:type="GstMessage"
  18241. glib:type-name="GstMessage"
  18242. glib:get-type="gst_message_get_type"
  18243. c:symbol-prefix="message">
  18244. <doc xml:space="preserve">Messages are implemented as a subclass of #GstMiniObject with a generic
  18245. #GstStructure as the content. This allows for writing custom messages without
  18246. requiring an API change while allowing a wide range of different types
  18247. of messages.
  18248. Messages are posted by objects in the pipeline and are passed to the
  18249. application using the #GstBus.
  18250. The basic use pattern of posting a message on a #GstBus is as follows:
  18251. |[&lt;!-- language="C" --&gt;
  18252. gst_bus_post (bus, gst_message_new_eos());
  18253. ]|
  18254. A #GstElement usually posts messages on the bus provided by the parent
  18255. container using gst_element_post_message().</doc>
  18256. <field name="mini_object" writable="1">
  18257. <doc xml:space="preserve">the parent structure</doc>
  18258. <type name="MiniObject" c:type="GstMiniObject"/>
  18259. </field>
  18260. <field name="type" writable="1">
  18261. <doc xml:space="preserve">the #GstMessageType of the message</doc>
  18262. <type name="MessageType" c:type="GstMessageType"/>
  18263. </field>
  18264. <field name="timestamp" writable="1">
  18265. <doc xml:space="preserve">the timestamp of the message</doc>
  18266. <type name="guint64" c:type="guint64"/>
  18267. </field>
  18268. <field name="src" writable="1">
  18269. <doc xml:space="preserve">the src of the message</doc>
  18270. <type name="Object" c:type="GstObject*"/>
  18271. </field>
  18272. <field name="seqnum" writable="1">
  18273. <doc xml:space="preserve">the sequence number of the message</doc>
  18274. <type name="guint32" c:type="guint32"/>
  18275. </field>
  18276. <field name="lock" readable="0" private="1">
  18277. <type name="GLib.Mutex" c:type="GMutex"/>
  18278. </field>
  18279. <field name="cond" readable="0" private="1">
  18280. <type name="GLib.Cond" c:type="GCond"/>
  18281. </field>
  18282. <constructor name="new_application"
  18283. c:identifier="gst_message_new_application">
  18284. <doc xml:space="preserve">Create a new application-typed message. GStreamer will never create these
  18285. messages; they are a gift from us to you. Enjoy.</doc>
  18286. <return-value transfer-ownership="full">
  18287. <doc xml:space="preserve">The new application message.
  18288. MT safe.</doc>
  18289. <type name="Message" c:type="GstMessage*"/>
  18290. </return-value>
  18291. <parameters>
  18292. <parameter name="src"
  18293. transfer-ownership="none"
  18294. nullable="1"
  18295. allow-none="1">
  18296. <doc xml:space="preserve">The object originating the message.</doc>
  18297. <type name="Object" c:type="GstObject*"/>
  18298. </parameter>
  18299. <parameter name="structure" transfer-ownership="full">
  18300. <doc xml:space="preserve">the structure for the message. The message
  18301. will take ownership of the structure.</doc>
  18302. <type name="Structure" c:type="GstStructure*"/>
  18303. </parameter>
  18304. </parameters>
  18305. </constructor>
  18306. <constructor name="new_async_done"
  18307. c:identifier="gst_message_new_async_done">
  18308. <doc xml:space="preserve">The message is posted when elements completed an ASYNC state change.
  18309. @running_time contains the time of the desired running_time when this
  18310. elements goes to PLAYING. A value of #GST_CLOCK_TIME_NONE for @running_time
  18311. means that the element has no clock interaction and thus doesn't care about
  18312. the running_time of the pipeline.</doc>
  18313. <return-value transfer-ownership="full">
  18314. <doc xml:space="preserve">The new async_done message.
  18315. MT safe.</doc>
  18316. <type name="Message" c:type="GstMessage*"/>
  18317. </return-value>
  18318. <parameters>
  18319. <parameter name="src"
  18320. transfer-ownership="none"
  18321. nullable="1"
  18322. allow-none="1">
  18323. <doc xml:space="preserve">The object originating the message.</doc>
  18324. <type name="Object" c:type="GstObject*"/>
  18325. </parameter>
  18326. <parameter name="running_time" transfer-ownership="none">
  18327. <doc xml:space="preserve">the desired running_time</doc>
  18328. <type name="ClockTime" c:type="GstClockTime"/>
  18329. </parameter>
  18330. </parameters>
  18331. </constructor>
  18332. <constructor name="new_async_start"
  18333. c:identifier="gst_message_new_async_start">
  18334. <doc xml:space="preserve">This message is posted by elements when they start an ASYNC state change.</doc>
  18335. <return-value transfer-ownership="full">
  18336. <doc xml:space="preserve">The new async_start message.
  18337. MT safe.</doc>
  18338. <type name="Message" c:type="GstMessage*"/>
  18339. </return-value>
  18340. <parameters>
  18341. <parameter name="src"
  18342. transfer-ownership="none"
  18343. nullable="1"
  18344. allow-none="1">
  18345. <doc xml:space="preserve">The object originating the message.</doc>
  18346. <type name="Object" c:type="GstObject*"/>
  18347. </parameter>
  18348. </parameters>
  18349. </constructor>
  18350. <constructor name="new_buffering"
  18351. c:identifier="gst_message_new_buffering">
  18352. <doc xml:space="preserve">Create a new buffering message. This message can be posted by an element that
  18353. needs to buffer data before it can continue processing. @percent should be a
  18354. value between 0 and 100. A value of 100 means that the buffering completed.
  18355. When @percent is &lt; 100 the application should PAUSE a PLAYING pipeline. When
  18356. @percent is 100, the application can set the pipeline (back) to PLAYING.
  18357. The application must be prepared to receive BUFFERING messages in the
  18358. PREROLLING state and may only set the pipeline to PLAYING after receiving a
  18359. message with @percent set to 100, which can happen after the pipeline
  18360. completed prerolling.
  18361. MT safe.</doc>
  18362. <return-value transfer-ownership="full">
  18363. <doc xml:space="preserve">The new buffering message.</doc>
  18364. <type name="Message" c:type="GstMessage*"/>
  18365. </return-value>
  18366. <parameters>
  18367. <parameter name="src"
  18368. transfer-ownership="none"
  18369. nullable="1"
  18370. allow-none="1">
  18371. <doc xml:space="preserve">The object originating the message.</doc>
  18372. <type name="Object" c:type="GstObject*"/>
  18373. </parameter>
  18374. <parameter name="percent" transfer-ownership="none">
  18375. <doc xml:space="preserve">The buffering percent</doc>
  18376. <type name="gint" c:type="gint"/>
  18377. </parameter>
  18378. </parameters>
  18379. </constructor>
  18380. <constructor name="new_clock_lost"
  18381. c:identifier="gst_message_new_clock_lost">
  18382. <doc xml:space="preserve">Create a clock lost message. This message is posted whenever the
  18383. clock is not valid anymore.
  18384. If this message is posted by the pipeline, the pipeline will
  18385. select a new clock again when it goes to PLAYING. It might therefore
  18386. be needed to set the pipeline to PAUSED and PLAYING again.</doc>
  18387. <return-value transfer-ownership="full">
  18388. <doc xml:space="preserve">The new clock lost message.
  18389. MT safe.</doc>
  18390. <type name="Message" c:type="GstMessage*"/>
  18391. </return-value>
  18392. <parameters>
  18393. <parameter name="src"
  18394. transfer-ownership="none"
  18395. nullable="1"
  18396. allow-none="1">
  18397. <doc xml:space="preserve">The object originating the message.</doc>
  18398. <type name="Object" c:type="GstObject*"/>
  18399. </parameter>
  18400. <parameter name="clock" transfer-ownership="none">
  18401. <doc xml:space="preserve">the clock that was lost</doc>
  18402. <type name="Clock" c:type="GstClock*"/>
  18403. </parameter>
  18404. </parameters>
  18405. </constructor>
  18406. <constructor name="new_clock_provide"
  18407. c:identifier="gst_message_new_clock_provide">
  18408. <doc xml:space="preserve">Create a clock provide message. This message is posted whenever an
  18409. element is ready to provide a clock or lost its ability to provide
  18410. a clock (maybe because it paused or became EOS).
  18411. This message is mainly used internally to manage the clock
  18412. selection.</doc>
  18413. <return-value transfer-ownership="full">
  18414. <doc xml:space="preserve">the new provide clock message.
  18415. MT safe.</doc>
  18416. <type name="Message" c:type="GstMessage*"/>
  18417. </return-value>
  18418. <parameters>
  18419. <parameter name="src"
  18420. transfer-ownership="none"
  18421. nullable="1"
  18422. allow-none="1">
  18423. <doc xml:space="preserve">The object originating the message.</doc>
  18424. <type name="Object" c:type="GstObject*"/>
  18425. </parameter>
  18426. <parameter name="clock" transfer-ownership="none">
  18427. <doc xml:space="preserve">the clock it provides</doc>
  18428. <type name="Clock" c:type="GstClock*"/>
  18429. </parameter>
  18430. <parameter name="ready" transfer-ownership="none">
  18431. <doc xml:space="preserve">%TRUE if the sender can provide a clock</doc>
  18432. <type name="gboolean" c:type="gboolean"/>
  18433. </parameter>
  18434. </parameters>
  18435. </constructor>
  18436. <constructor name="new_custom" c:identifier="gst_message_new_custom">
  18437. <doc xml:space="preserve">Create a new custom-typed message. This can be used for anything not
  18438. handled by other message-specific functions to pass a message to the
  18439. app. The structure field can be %NULL.</doc>
  18440. <return-value transfer-ownership="full">
  18441. <doc xml:space="preserve">The new message.
  18442. MT safe.</doc>
  18443. <type name="Message" c:type="GstMessage*"/>
  18444. </return-value>
  18445. <parameters>
  18446. <parameter name="type" transfer-ownership="none">
  18447. <doc xml:space="preserve">The #GstMessageType to distinguish messages</doc>
  18448. <type name="MessageType" c:type="GstMessageType"/>
  18449. </parameter>
  18450. <parameter name="src"
  18451. transfer-ownership="none"
  18452. nullable="1"
  18453. allow-none="1">
  18454. <doc xml:space="preserve">The object originating the message.</doc>
  18455. <type name="Object" c:type="GstObject*"/>
  18456. </parameter>
  18457. <parameter name="structure"
  18458. transfer-ownership="full"
  18459. nullable="1"
  18460. allow-none="1">
  18461. <doc xml:space="preserve">the structure for the
  18462. message. The message will take ownership of the structure.</doc>
  18463. <type name="Structure" c:type="GstStructure*"/>
  18464. </parameter>
  18465. </parameters>
  18466. </constructor>
  18467. <constructor name="new_device_added"
  18468. c:identifier="gst_message_new_device_added"
  18469. version="1.4">
  18470. <doc xml:space="preserve">Creates a new device-added message. The device-added message is produced by
  18471. #GstDeviceProvider or a #GstDeviceMonitor. They announce the appearance
  18472. of monitored devices.</doc>
  18473. <return-value transfer-ownership="full">
  18474. <doc xml:space="preserve">a newly allocated #GstMessage</doc>
  18475. <type name="Message" c:type="GstMessage*"/>
  18476. </return-value>
  18477. <parameters>
  18478. <parameter name="src" transfer-ownership="none">
  18479. <doc xml:space="preserve">The #GstObject that created the message</doc>
  18480. <type name="Object" c:type="GstObject*"/>
  18481. </parameter>
  18482. <parameter name="device" transfer-ownership="none">
  18483. <doc xml:space="preserve">The new #GstDevice</doc>
  18484. <type name="Device" c:type="GstDevice*"/>
  18485. </parameter>
  18486. </parameters>
  18487. </constructor>
  18488. <constructor name="new_device_removed"
  18489. c:identifier="gst_message_new_device_removed"
  18490. version="1.4">
  18491. <doc xml:space="preserve">Creates a new device-removed message. The device-removed message is produced
  18492. by #GstDeviceProvider or a #GstDeviceMonitor. They announce the
  18493. disappearance of monitored devices.</doc>
  18494. <return-value transfer-ownership="full">
  18495. <doc xml:space="preserve">a newly allocated #GstMessage</doc>
  18496. <type name="Message" c:type="GstMessage*"/>
  18497. </return-value>
  18498. <parameters>
  18499. <parameter name="src" transfer-ownership="none">
  18500. <doc xml:space="preserve">The #GstObject that created the message</doc>
  18501. <type name="Object" c:type="GstObject*"/>
  18502. </parameter>
  18503. <parameter name="device" transfer-ownership="none">
  18504. <doc xml:space="preserve">The removed #GstDevice</doc>
  18505. <type name="Device" c:type="GstDevice*"/>
  18506. </parameter>
  18507. </parameters>
  18508. </constructor>
  18509. <constructor name="new_duration_changed"
  18510. c:identifier="gst_message_new_duration_changed">
  18511. <doc xml:space="preserve">Create a new duration changed message. This message is posted by elements
  18512. that know the duration of a stream when the duration changes. This message
  18513. is received by bins and is used to calculate the total duration of a
  18514. pipeline. Elements may post a duration message with a duration of
  18515. GST_CLOCK_TIME_NONE to indicate that the duration has changed and the
  18516. cached duration should be discarded. The new duration can then be
  18517. retrieved via a query.</doc>
  18518. <return-value transfer-ownership="full">
  18519. <doc xml:space="preserve">The new duration-changed message.
  18520. MT safe.</doc>
  18521. <type name="Message" c:type="GstMessage*"/>
  18522. </return-value>
  18523. <parameters>
  18524. <parameter name="src"
  18525. transfer-ownership="none"
  18526. nullable="1"
  18527. allow-none="1">
  18528. <doc xml:space="preserve">The object originating the message.</doc>
  18529. <type name="Object" c:type="GstObject*"/>
  18530. </parameter>
  18531. </parameters>
  18532. </constructor>
  18533. <constructor name="new_element" c:identifier="gst_message_new_element">
  18534. <doc xml:space="preserve">Create a new element-specific message. This is meant as a generic way of
  18535. allowing one-way communication from an element to an application, for example
  18536. "the firewire cable was unplugged". The format of the message should be
  18537. documented in the element's documentation. The structure field can be %NULL.</doc>
  18538. <return-value transfer-ownership="full">
  18539. <doc xml:space="preserve">The new element message.
  18540. MT safe.</doc>
  18541. <type name="Message" c:type="GstMessage*"/>
  18542. </return-value>
  18543. <parameters>
  18544. <parameter name="src"
  18545. transfer-ownership="none"
  18546. nullable="1"
  18547. allow-none="1">
  18548. <doc xml:space="preserve">The object originating the message.</doc>
  18549. <type name="Object" c:type="GstObject*"/>
  18550. </parameter>
  18551. <parameter name="structure" transfer-ownership="full">
  18552. <doc xml:space="preserve">The structure for the
  18553. message. The message will take ownership of the structure.</doc>
  18554. <type name="Structure" c:type="GstStructure*"/>
  18555. </parameter>
  18556. </parameters>
  18557. </constructor>
  18558. <constructor name="new_eos" c:identifier="gst_message_new_eos">
  18559. <doc xml:space="preserve">Create a new eos message. This message is generated and posted in
  18560. the sink elements of a GstBin. The bin will only forward the EOS
  18561. message to the application if all sinks have posted an EOS message.</doc>
  18562. <return-value transfer-ownership="full">
  18563. <doc xml:space="preserve">The new eos message.
  18564. MT safe.</doc>
  18565. <type name="Message" c:type="GstMessage*"/>
  18566. </return-value>
  18567. <parameters>
  18568. <parameter name="src"
  18569. transfer-ownership="none"
  18570. nullable="1"
  18571. allow-none="1">
  18572. <doc xml:space="preserve">The object originating the message.</doc>
  18573. <type name="Object" c:type="GstObject*"/>
  18574. </parameter>
  18575. </parameters>
  18576. </constructor>
  18577. <constructor name="new_error" c:identifier="gst_message_new_error">
  18578. <doc xml:space="preserve">Create a new error message. The message will copy @error and
  18579. @debug. This message is posted by element when a fatal event
  18580. occurred. The pipeline will probably (partially) stop. The application
  18581. receiving this message should stop the pipeline.</doc>
  18582. <return-value transfer-ownership="full">
  18583. <doc xml:space="preserve">the new error message.
  18584. MT safe.</doc>
  18585. <type name="Message" c:type="GstMessage*"/>
  18586. </return-value>
  18587. <parameters>
  18588. <parameter name="src"
  18589. transfer-ownership="none"
  18590. nullable="1"
  18591. allow-none="1">
  18592. <doc xml:space="preserve">The object originating the message.</doc>
  18593. <type name="Object" c:type="GstObject*"/>
  18594. </parameter>
  18595. <parameter name="error" transfer-ownership="none">
  18596. <doc xml:space="preserve">The GError for this message.</doc>
  18597. <type name="GLib.Error" c:type="GError*"/>
  18598. </parameter>
  18599. <parameter name="debug" transfer-ownership="none">
  18600. <doc xml:space="preserve">A debugging string.</doc>
  18601. <type name="utf8" c:type="const gchar*"/>
  18602. </parameter>
  18603. </parameters>
  18604. </constructor>
  18605. <constructor name="new_have_context"
  18606. c:identifier="gst_message_new_have_context"
  18607. version="1.2">
  18608. <doc xml:space="preserve">This message is posted when an element has a new local #GstContext.</doc>
  18609. <return-value transfer-ownership="full">
  18610. <doc xml:space="preserve">The new have-context message.
  18611. MT safe.</doc>
  18612. <type name="Message" c:type="GstMessage*"/>
  18613. </return-value>
  18614. <parameters>
  18615. <parameter name="src"
  18616. transfer-ownership="none"
  18617. nullable="1"
  18618. allow-none="1">
  18619. <doc xml:space="preserve">The object originating the message.</doc>
  18620. <type name="Object" c:type="GstObject*"/>
  18621. </parameter>
  18622. <parameter name="context" transfer-ownership="full">
  18623. <doc xml:space="preserve">the context</doc>
  18624. <type name="Context" c:type="GstContext*"/>
  18625. </parameter>
  18626. </parameters>
  18627. </constructor>
  18628. <constructor name="new_info" c:identifier="gst_message_new_info">
  18629. <doc xml:space="preserve">Create a new info message. The message will make copies of @error and
  18630. @debug.
  18631. MT safe.</doc>
  18632. <return-value transfer-ownership="full">
  18633. <doc xml:space="preserve">the new info message.</doc>
  18634. <type name="Message" c:type="GstMessage*"/>
  18635. </return-value>
  18636. <parameters>
  18637. <parameter name="src"
  18638. transfer-ownership="none"
  18639. nullable="1"
  18640. allow-none="1">
  18641. <doc xml:space="preserve">The object originating the message.</doc>
  18642. <type name="Object" c:type="GstObject*"/>
  18643. </parameter>
  18644. <parameter name="error" transfer-ownership="none">
  18645. <doc xml:space="preserve">The GError for this message.</doc>
  18646. <type name="GLib.Error" c:type="GError*"/>
  18647. </parameter>
  18648. <parameter name="debug" transfer-ownership="none">
  18649. <doc xml:space="preserve">A debugging string.</doc>
  18650. <type name="utf8" c:type="const gchar*"/>
  18651. </parameter>
  18652. </parameters>
  18653. </constructor>
  18654. <constructor name="new_latency" c:identifier="gst_message_new_latency">
  18655. <doc xml:space="preserve">This message can be posted by elements when their latency requirements have
  18656. changed.</doc>
  18657. <return-value transfer-ownership="full">
  18658. <doc xml:space="preserve">The new latency message.
  18659. MT safe.</doc>
  18660. <type name="Message" c:type="GstMessage*"/>
  18661. </return-value>
  18662. <parameters>
  18663. <parameter name="src"
  18664. transfer-ownership="none"
  18665. nullable="1"
  18666. allow-none="1">
  18667. <doc xml:space="preserve">The object originating the message.</doc>
  18668. <type name="Object" c:type="GstObject*"/>
  18669. </parameter>
  18670. </parameters>
  18671. </constructor>
  18672. <constructor name="new_need_context"
  18673. c:identifier="gst_message_new_need_context"
  18674. version="1.2">
  18675. <doc xml:space="preserve">This message is posted when an element needs a specific #GstContext.</doc>
  18676. <return-value transfer-ownership="full">
  18677. <doc xml:space="preserve">The new need-context message.
  18678. MT safe.</doc>
  18679. <type name="Message" c:type="GstMessage*"/>
  18680. </return-value>
  18681. <parameters>
  18682. <parameter name="src"
  18683. transfer-ownership="none"
  18684. nullable="1"
  18685. allow-none="1">
  18686. <doc xml:space="preserve">The object originating the message.</doc>
  18687. <type name="Object" c:type="GstObject*"/>
  18688. </parameter>
  18689. <parameter name="context_type" transfer-ownership="none">
  18690. <doc xml:space="preserve">The context type that is needed</doc>
  18691. <type name="utf8" c:type="const gchar*"/>
  18692. </parameter>
  18693. </parameters>
  18694. </constructor>
  18695. <constructor name="new_new_clock"
  18696. c:identifier="gst_message_new_new_clock">
  18697. <doc xml:space="preserve">Create a new clock message. This message is posted whenever the
  18698. pipeline selects a new clock for the pipeline.</doc>
  18699. <return-value transfer-ownership="full">
  18700. <doc xml:space="preserve">The new new clock message.
  18701. MT safe.</doc>
  18702. <type name="Message" c:type="GstMessage*"/>
  18703. </return-value>
  18704. <parameters>
  18705. <parameter name="src"
  18706. transfer-ownership="none"
  18707. nullable="1"
  18708. allow-none="1">
  18709. <doc xml:space="preserve">The object originating the message.</doc>
  18710. <type name="Object" c:type="GstObject*"/>
  18711. </parameter>
  18712. <parameter name="clock" transfer-ownership="none">
  18713. <doc xml:space="preserve">the new selected clock</doc>
  18714. <type name="Clock" c:type="GstClock*"/>
  18715. </parameter>
  18716. </parameters>
  18717. </constructor>
  18718. <constructor name="new_progress" c:identifier="gst_message_new_progress">
  18719. <doc xml:space="preserve">Progress messages are posted by elements when they use an asynchronous task
  18720. to perform actions triggered by a state change.
  18721. @code contains a well defined string describing the action.
  18722. @test should contain a user visible string detailing the current action.</doc>
  18723. <return-value transfer-ownership="full">
  18724. <doc xml:space="preserve">The new qos message.</doc>
  18725. <type name="Message" c:type="GstMessage*"/>
  18726. </return-value>
  18727. <parameters>
  18728. <parameter name="src" transfer-ownership="none">
  18729. <doc xml:space="preserve">The object originating the message.</doc>
  18730. <type name="Object" c:type="GstObject*"/>
  18731. </parameter>
  18732. <parameter name="type" transfer-ownership="none">
  18733. <doc xml:space="preserve">a #GstProgressType</doc>
  18734. <type name="ProgressType" c:type="GstProgressType"/>
  18735. </parameter>
  18736. <parameter name="code" transfer-ownership="none">
  18737. <doc xml:space="preserve">a progress code</doc>
  18738. <type name="utf8" c:type="const gchar*"/>
  18739. </parameter>
  18740. <parameter name="text" transfer-ownership="none">
  18741. <doc xml:space="preserve">free, user visible text describing the progress</doc>
  18742. <type name="utf8" c:type="const gchar*"/>
  18743. </parameter>
  18744. </parameters>
  18745. </constructor>
  18746. <constructor name="new_qos" c:identifier="gst_message_new_qos">
  18747. <doc xml:space="preserve">A QOS message is posted on the bus whenever an element decides to drop a
  18748. buffer because of QoS reasons or whenever it changes its processing strategy
  18749. because of QoS reasons (quality adjustments such as processing at lower
  18750. accuracy).
  18751. This message can be posted by an element that performs synchronisation against the
  18752. clock (live) or it could be dropped by an element that performs QoS because of QOS
  18753. events received from a downstream element (!live).
  18754. @running_time, @stream_time, @timestamp, @duration should be set to the
  18755. respective running-time, stream-time, timestamp and duration of the (dropped)
  18756. buffer that generated the QoS event. Values can be left to
  18757. GST_CLOCK_TIME_NONE when unknown.</doc>
  18758. <return-value transfer-ownership="full">
  18759. <doc xml:space="preserve">The new qos message.
  18760. MT safe.</doc>
  18761. <type name="Message" c:type="GstMessage*"/>
  18762. </return-value>
  18763. <parameters>
  18764. <parameter name="src" transfer-ownership="none">
  18765. <doc xml:space="preserve">The object originating the message.</doc>
  18766. <type name="Object" c:type="GstObject*"/>
  18767. </parameter>
  18768. <parameter name="live" transfer-ownership="none">
  18769. <doc xml:space="preserve">if the message was generated by a live element</doc>
  18770. <type name="gboolean" c:type="gboolean"/>
  18771. </parameter>
  18772. <parameter name="running_time" transfer-ownership="none">
  18773. <doc xml:space="preserve">the running time of the buffer that generated the message</doc>
  18774. <type name="guint64" c:type="guint64"/>
  18775. </parameter>
  18776. <parameter name="stream_time" transfer-ownership="none">
  18777. <doc xml:space="preserve">the stream time of the buffer that generated the message</doc>
  18778. <type name="guint64" c:type="guint64"/>
  18779. </parameter>
  18780. <parameter name="timestamp" transfer-ownership="none">
  18781. <doc xml:space="preserve">the timestamps of the buffer that generated the message</doc>
  18782. <type name="guint64" c:type="guint64"/>
  18783. </parameter>
  18784. <parameter name="duration" transfer-ownership="none">
  18785. <doc xml:space="preserve">the duration of the buffer that generated the message</doc>
  18786. <type name="guint64" c:type="guint64"/>
  18787. </parameter>
  18788. </parameters>
  18789. </constructor>
  18790. <constructor name="new_request_state"
  18791. c:identifier="gst_message_new_request_state">
  18792. <doc xml:space="preserve">This message can be posted by elements when they want to have their state
  18793. changed. A typical use case would be an audio server that wants to pause the
  18794. pipeline because a higher priority stream is being played.</doc>
  18795. <return-value transfer-ownership="full">
  18796. <doc xml:space="preserve">the new request state message.
  18797. MT safe.</doc>
  18798. <type name="Message" c:type="GstMessage*"/>
  18799. </return-value>
  18800. <parameters>
  18801. <parameter name="src"
  18802. transfer-ownership="none"
  18803. nullable="1"
  18804. allow-none="1">
  18805. <doc xml:space="preserve">The object originating the message.</doc>
  18806. <type name="Object" c:type="GstObject*"/>
  18807. </parameter>
  18808. <parameter name="state" transfer-ownership="none">
  18809. <doc xml:space="preserve">The new requested state</doc>
  18810. <type name="State" c:type="GstState"/>
  18811. </parameter>
  18812. </parameters>
  18813. </constructor>
  18814. <constructor name="new_reset_time"
  18815. c:identifier="gst_message_new_reset_time">
  18816. <doc xml:space="preserve">This message is posted when the pipeline running-time should be reset to
  18817. @running_time, like after a flushing seek.</doc>
  18818. <return-value transfer-ownership="full">
  18819. <doc xml:space="preserve">The new reset_time message.
  18820. MT safe.</doc>
  18821. <type name="Message" c:type="GstMessage*"/>
  18822. </return-value>
  18823. <parameters>
  18824. <parameter name="src"
  18825. transfer-ownership="none"
  18826. nullable="1"
  18827. allow-none="1">
  18828. <doc xml:space="preserve">The object originating the message.</doc>
  18829. <type name="Object" c:type="GstObject*"/>
  18830. </parameter>
  18831. <parameter name="running_time" transfer-ownership="none">
  18832. <doc xml:space="preserve">the requested running-time</doc>
  18833. <type name="ClockTime" c:type="GstClockTime"/>
  18834. </parameter>
  18835. </parameters>
  18836. </constructor>
  18837. <constructor name="new_segment_done"
  18838. c:identifier="gst_message_new_segment_done">
  18839. <doc xml:space="preserve">Create a new segment done message. This message is posted by elements that
  18840. finish playback of a segment as a result of a segment seek. This message
  18841. is received by the application after all elements that posted a segment_start
  18842. have posted the segment_done.</doc>
  18843. <return-value transfer-ownership="full">
  18844. <doc xml:space="preserve">the new segment done message.
  18845. MT safe.</doc>
  18846. <type name="Message" c:type="GstMessage*"/>
  18847. </return-value>
  18848. <parameters>
  18849. <parameter name="src"
  18850. transfer-ownership="none"
  18851. nullable="1"
  18852. allow-none="1">
  18853. <doc xml:space="preserve">The object originating the message.</doc>
  18854. <type name="Object" c:type="GstObject*"/>
  18855. </parameter>
  18856. <parameter name="format" transfer-ownership="none">
  18857. <doc xml:space="preserve">The format of the position being done</doc>
  18858. <type name="Format" c:type="GstFormat"/>
  18859. </parameter>
  18860. <parameter name="position" transfer-ownership="none">
  18861. <doc xml:space="preserve">The position of the segment being done</doc>
  18862. <type name="gint64" c:type="gint64"/>
  18863. </parameter>
  18864. </parameters>
  18865. </constructor>
  18866. <constructor name="new_segment_start"
  18867. c:identifier="gst_message_new_segment_start">
  18868. <doc xml:space="preserve">Create a new segment message. This message is posted by elements that
  18869. start playback of a segment as a result of a segment seek. This message
  18870. is not received by the application but is used for maintenance reasons in
  18871. container elements.</doc>
  18872. <return-value transfer-ownership="full">
  18873. <doc xml:space="preserve">the new segment start message.
  18874. MT safe.</doc>
  18875. <type name="Message" c:type="GstMessage*"/>
  18876. </return-value>
  18877. <parameters>
  18878. <parameter name="src"
  18879. transfer-ownership="none"
  18880. nullable="1"
  18881. allow-none="1">
  18882. <doc xml:space="preserve">The object originating the message.</doc>
  18883. <type name="Object" c:type="GstObject*"/>
  18884. </parameter>
  18885. <parameter name="format" transfer-ownership="none">
  18886. <doc xml:space="preserve">The format of the position being played</doc>
  18887. <type name="Format" c:type="GstFormat"/>
  18888. </parameter>
  18889. <parameter name="position" transfer-ownership="none">
  18890. <doc xml:space="preserve">The position of the segment being played</doc>
  18891. <type name="gint64" c:type="gint64"/>
  18892. </parameter>
  18893. </parameters>
  18894. </constructor>
  18895. <constructor name="new_state_changed"
  18896. c:identifier="gst_message_new_state_changed">
  18897. <doc xml:space="preserve">Create a state change message. This message is posted whenever an element
  18898. changed its state.</doc>
  18899. <return-value transfer-ownership="full">
  18900. <doc xml:space="preserve">the new state change message.
  18901. MT safe.</doc>
  18902. <type name="Message" c:type="GstMessage*"/>
  18903. </return-value>
  18904. <parameters>
  18905. <parameter name="src"
  18906. transfer-ownership="none"
  18907. nullable="1"
  18908. allow-none="1">
  18909. <doc xml:space="preserve">The object originating the message.</doc>
  18910. <type name="Object" c:type="GstObject*"/>
  18911. </parameter>
  18912. <parameter name="oldstate" transfer-ownership="none">
  18913. <doc xml:space="preserve">the previous state</doc>
  18914. <type name="State" c:type="GstState"/>
  18915. </parameter>
  18916. <parameter name="newstate" transfer-ownership="none">
  18917. <doc xml:space="preserve">the new (current) state</doc>
  18918. <type name="State" c:type="GstState"/>
  18919. </parameter>
  18920. <parameter name="pending" transfer-ownership="none">
  18921. <doc xml:space="preserve">the pending (target) state</doc>
  18922. <type name="State" c:type="GstState"/>
  18923. </parameter>
  18924. </parameters>
  18925. </constructor>
  18926. <constructor name="new_state_dirty"
  18927. c:identifier="gst_message_new_state_dirty">
  18928. <doc xml:space="preserve">Create a state dirty message. This message is posted whenever an element
  18929. changed its state asynchronously and is used internally to update the
  18930. states of container objects.</doc>
  18931. <return-value transfer-ownership="full">
  18932. <doc xml:space="preserve">the new state dirty message.
  18933. MT safe.</doc>
  18934. <type name="Message" c:type="GstMessage*"/>
  18935. </return-value>
  18936. <parameters>
  18937. <parameter name="src"
  18938. transfer-ownership="none"
  18939. nullable="1"
  18940. allow-none="1">
  18941. <doc xml:space="preserve">The object originating the message</doc>
  18942. <type name="Object" c:type="GstObject*"/>
  18943. </parameter>
  18944. </parameters>
  18945. </constructor>
  18946. <constructor name="new_step_done"
  18947. c:identifier="gst_message_new_step_done">
  18948. <doc xml:space="preserve">This message is posted by elements when they complete a part, when @intermediate set
  18949. to %TRUE, or a complete step operation.
  18950. @duration will contain the amount of time (in GST_FORMAT_TIME) of the stepped
  18951. @amount of media in format @format.</doc>
  18952. <return-value transfer-ownership="full">
  18953. <doc xml:space="preserve">the new step_done message.
  18954. MT safe.</doc>
  18955. <type name="Message" c:type="GstMessage*"/>
  18956. </return-value>
  18957. <parameters>
  18958. <parameter name="src" transfer-ownership="none">
  18959. <doc xml:space="preserve">The object originating the message.</doc>
  18960. <type name="Object" c:type="GstObject*"/>
  18961. </parameter>
  18962. <parameter name="format" transfer-ownership="none">
  18963. <doc xml:space="preserve">the format of @amount</doc>
  18964. <type name="Format" c:type="GstFormat"/>
  18965. </parameter>
  18966. <parameter name="amount" transfer-ownership="none">
  18967. <doc xml:space="preserve">the amount of stepped data</doc>
  18968. <type name="guint64" c:type="guint64"/>
  18969. </parameter>
  18970. <parameter name="rate" transfer-ownership="none">
  18971. <doc xml:space="preserve">the rate of the stepped amount</doc>
  18972. <type name="gdouble" c:type="gdouble"/>
  18973. </parameter>
  18974. <parameter name="flush" transfer-ownership="none">
  18975. <doc xml:space="preserve">is this an flushing step</doc>
  18976. <type name="gboolean" c:type="gboolean"/>
  18977. </parameter>
  18978. <parameter name="intermediate" transfer-ownership="none">
  18979. <doc xml:space="preserve">is this an intermediate step</doc>
  18980. <type name="gboolean" c:type="gboolean"/>
  18981. </parameter>
  18982. <parameter name="duration" transfer-ownership="none">
  18983. <doc xml:space="preserve">the duration of the data</doc>
  18984. <type name="guint64" c:type="guint64"/>
  18985. </parameter>
  18986. <parameter name="eos" transfer-ownership="none">
  18987. <doc xml:space="preserve">the step caused EOS</doc>
  18988. <type name="gboolean" c:type="gboolean"/>
  18989. </parameter>
  18990. </parameters>
  18991. </constructor>
  18992. <constructor name="new_step_start"
  18993. c:identifier="gst_message_new_step_start">
  18994. <doc xml:space="preserve">This message is posted by elements when they accept or activate a new step
  18995. event for @amount in @format.
  18996. @active is set to %FALSE when the element accepted the new step event and has
  18997. queued it for execution in the streaming threads.
  18998. @active is set to %TRUE when the element has activated the step operation and
  18999. is now ready to start executing the step in the streaming thread. After this
  19000. message is emitted, the application can queue a new step operation in the
  19001. element.</doc>
  19002. <return-value transfer-ownership="full">
  19003. <doc xml:space="preserve">The new step_start message.
  19004. MT safe.</doc>
  19005. <type name="Message" c:type="GstMessage*"/>
  19006. </return-value>
  19007. <parameters>
  19008. <parameter name="src" transfer-ownership="none">
  19009. <doc xml:space="preserve">The object originating the message.</doc>
  19010. <type name="Object" c:type="GstObject*"/>
  19011. </parameter>
  19012. <parameter name="active" transfer-ownership="none">
  19013. <doc xml:space="preserve">if the step is active or queued</doc>
  19014. <type name="gboolean" c:type="gboolean"/>
  19015. </parameter>
  19016. <parameter name="format" transfer-ownership="none">
  19017. <doc xml:space="preserve">the format of @amount</doc>
  19018. <type name="Format" c:type="GstFormat"/>
  19019. </parameter>
  19020. <parameter name="amount" transfer-ownership="none">
  19021. <doc xml:space="preserve">the amount of stepped data</doc>
  19022. <type name="guint64" c:type="guint64"/>
  19023. </parameter>
  19024. <parameter name="rate" transfer-ownership="none">
  19025. <doc xml:space="preserve">the rate of the stepped amount</doc>
  19026. <type name="gdouble" c:type="gdouble"/>
  19027. </parameter>
  19028. <parameter name="flush" transfer-ownership="none">
  19029. <doc xml:space="preserve">is this an flushing step</doc>
  19030. <type name="gboolean" c:type="gboolean"/>
  19031. </parameter>
  19032. <parameter name="intermediate" transfer-ownership="none">
  19033. <doc xml:space="preserve">is this an intermediate step</doc>
  19034. <type name="gboolean" c:type="gboolean"/>
  19035. </parameter>
  19036. </parameters>
  19037. </constructor>
  19038. <constructor name="new_stream_start"
  19039. c:identifier="gst_message_new_stream_start">
  19040. <doc xml:space="preserve">Create a new stream_start message. This message is generated and posted in
  19041. the sink elements of a GstBin. The bin will only forward the STREAM_START
  19042. message to the application if all sinks have posted an STREAM_START message.</doc>
  19043. <return-value transfer-ownership="full">
  19044. <doc xml:space="preserve">The new stream_start message.
  19045. MT safe.</doc>
  19046. <type name="Message" c:type="GstMessage*"/>
  19047. </return-value>
  19048. <parameters>
  19049. <parameter name="src"
  19050. transfer-ownership="none"
  19051. nullable="1"
  19052. allow-none="1">
  19053. <doc xml:space="preserve">The object originating the message.</doc>
  19054. <type name="Object" c:type="GstObject*"/>
  19055. </parameter>
  19056. </parameters>
  19057. </constructor>
  19058. <constructor name="new_stream_status"
  19059. c:identifier="gst_message_new_stream_status">
  19060. <doc xml:space="preserve">Create a new stream status message. This message is posted when a streaming
  19061. thread is created/destroyed or when the state changed.</doc>
  19062. <return-value transfer-ownership="full">
  19063. <doc xml:space="preserve">the new stream status message.
  19064. MT safe.</doc>
  19065. <type name="Message" c:type="GstMessage*"/>
  19066. </return-value>
  19067. <parameters>
  19068. <parameter name="src" transfer-ownership="none">
  19069. <doc xml:space="preserve">The object originating the message.</doc>
  19070. <type name="Object" c:type="GstObject*"/>
  19071. </parameter>
  19072. <parameter name="type" transfer-ownership="none">
  19073. <doc xml:space="preserve">The stream status type.</doc>
  19074. <type name="StreamStatusType" c:type="GstStreamStatusType"/>
  19075. </parameter>
  19076. <parameter name="owner" transfer-ownership="none">
  19077. <doc xml:space="preserve">the owner element of @src.</doc>
  19078. <type name="Element" c:type="GstElement*"/>
  19079. </parameter>
  19080. </parameters>
  19081. </constructor>
  19082. <constructor name="new_structure_change"
  19083. c:identifier="gst_message_new_structure_change">
  19084. <doc xml:space="preserve">Create a new structure change message. This message is posted when the
  19085. structure of a pipeline is in the process of being changed, for example
  19086. when pads are linked or unlinked.
  19087. @src should be the sinkpad that unlinked or linked.</doc>
  19088. <return-value transfer-ownership="full">
  19089. <doc xml:space="preserve">the new structure change message.
  19090. MT safe.</doc>
  19091. <type name="Message" c:type="GstMessage*"/>
  19092. </return-value>
  19093. <parameters>
  19094. <parameter name="src"
  19095. transfer-ownership="none"
  19096. nullable="1"
  19097. allow-none="1">
  19098. <doc xml:space="preserve">The object originating the message.</doc>
  19099. <type name="Object" c:type="GstObject*"/>
  19100. </parameter>
  19101. <parameter name="type" transfer-ownership="none">
  19102. <doc xml:space="preserve">The change type.</doc>
  19103. <type name="StructureChangeType" c:type="GstStructureChangeType"/>
  19104. </parameter>
  19105. <parameter name="owner" transfer-ownership="none">
  19106. <doc xml:space="preserve">The owner element of @src.</doc>
  19107. <type name="Element" c:type="GstElement*"/>
  19108. </parameter>
  19109. <parameter name="busy" transfer-ownership="none">
  19110. <doc xml:space="preserve">Whether the structure change is busy.</doc>
  19111. <type name="gboolean" c:type="gboolean"/>
  19112. </parameter>
  19113. </parameters>
  19114. </constructor>
  19115. <constructor name="new_tag" c:identifier="gst_message_new_tag">
  19116. <doc xml:space="preserve">Create a new tag message. The message will take ownership of the tag list.
  19117. The message is posted by elements that discovered a new taglist.</doc>
  19118. <return-value transfer-ownership="full">
  19119. <doc xml:space="preserve">the new tag message.
  19120. MT safe.</doc>
  19121. <type name="Message" c:type="GstMessage*"/>
  19122. </return-value>
  19123. <parameters>
  19124. <parameter name="src"
  19125. transfer-ownership="none"
  19126. nullable="1"
  19127. allow-none="1">
  19128. <doc xml:space="preserve">The object originating the message.</doc>
  19129. <type name="Object" c:type="GstObject*"/>
  19130. </parameter>
  19131. <parameter name="tag_list" transfer-ownership="full">
  19132. <doc xml:space="preserve">the tag list for the message.</doc>
  19133. <type name="TagList" c:type="GstTagList*"/>
  19134. </parameter>
  19135. </parameters>
  19136. </constructor>
  19137. <constructor name="new_toc" c:identifier="gst_message_new_toc">
  19138. <doc xml:space="preserve">Create a new TOC message. The message is posted by elements
  19139. that discovered or updated a TOC.</doc>
  19140. <return-value transfer-ownership="full">
  19141. <doc xml:space="preserve">a new TOC message.
  19142. MT safe.</doc>
  19143. <type name="Message" c:type="GstMessage*"/>
  19144. </return-value>
  19145. <parameters>
  19146. <parameter name="src" transfer-ownership="none">
  19147. <doc xml:space="preserve">the object originating the message.</doc>
  19148. <type name="Object" c:type="GstObject*"/>
  19149. </parameter>
  19150. <parameter name="toc" transfer-ownership="none">
  19151. <doc xml:space="preserve">#GstToc structure for the message.</doc>
  19152. <type name="Toc" c:type="GstToc*"/>
  19153. </parameter>
  19154. <parameter name="updated" transfer-ownership="none">
  19155. <doc xml:space="preserve">whether TOC was updated or not.</doc>
  19156. <type name="gboolean" c:type="gboolean"/>
  19157. </parameter>
  19158. </parameters>
  19159. </constructor>
  19160. <constructor name="new_warning" c:identifier="gst_message_new_warning">
  19161. <doc xml:space="preserve">Create a new warning message. The message will make copies of @error and
  19162. @debug.</doc>
  19163. <return-value transfer-ownership="full">
  19164. <doc xml:space="preserve">The new warning message.
  19165. MT safe.</doc>
  19166. <type name="Message" c:type="GstMessage*"/>
  19167. </return-value>
  19168. <parameters>
  19169. <parameter name="src"
  19170. transfer-ownership="none"
  19171. nullable="1"
  19172. allow-none="1">
  19173. <doc xml:space="preserve">The object originating the message.</doc>
  19174. <type name="Object" c:type="GstObject*"/>
  19175. </parameter>
  19176. <parameter name="error" transfer-ownership="none">
  19177. <doc xml:space="preserve">The GError for this message.</doc>
  19178. <type name="GLib.Error" c:type="GError*"/>
  19179. </parameter>
  19180. <parameter name="debug" transfer-ownership="none">
  19181. <doc xml:space="preserve">A debugging string.</doc>
  19182. <type name="utf8" c:type="const gchar*"/>
  19183. </parameter>
  19184. </parameters>
  19185. </constructor>
  19186. <method name="get_seqnum" c:identifier="gst_message_get_seqnum">
  19187. <doc xml:space="preserve">Retrieve the sequence number of a message.
  19188. Messages have ever-incrementing sequence numbers, which may also be set
  19189. explicitly via gst_message_set_seqnum(). Sequence numbers are typically used
  19190. to indicate that a message corresponds to some other set of messages or
  19191. events, for example a SEGMENT_DONE message corresponding to a SEEK event. It
  19192. is considered good practice to make this correspondence when possible, though
  19193. it is not required.
  19194. Note that events and messages share the same sequence number incrementor;
  19195. two events or messages will never have the same sequence number unless
  19196. that correspondence was made explicitly.</doc>
  19197. <return-value transfer-ownership="none">
  19198. <doc xml:space="preserve">The message's sequence number.
  19199. MT safe.</doc>
  19200. <type name="guint32" c:type="guint32"/>
  19201. </return-value>
  19202. <parameters>
  19203. <instance-parameter name="message" transfer-ownership="none">
  19204. <doc xml:space="preserve">A #GstMessage.</doc>
  19205. <type name="Message" c:type="GstMessage*"/>
  19206. </instance-parameter>
  19207. </parameters>
  19208. </method>
  19209. <method name="get_stream_status_object"
  19210. c:identifier="gst_message_get_stream_status_object">
  19211. <doc xml:space="preserve">Extracts the object managing the streaming thread from @message.</doc>
  19212. <return-value transfer-ownership="none">
  19213. <doc xml:space="preserve">a GValue containing the object that manages the streaming thread.
  19214. This object is usually of type GstTask but other types can be added in the
  19215. future. The object remains valid as long as @message is valid.</doc>
  19216. <type name="GObject.Value" c:type="const GValue*"/>
  19217. </return-value>
  19218. <parameters>
  19219. <instance-parameter name="message" transfer-ownership="none">
  19220. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc>
  19221. <type name="Message" c:type="GstMessage*"/>
  19222. </instance-parameter>
  19223. </parameters>
  19224. </method>
  19225. <method name="get_structure" c:identifier="gst_message_get_structure">
  19226. <doc xml:space="preserve">Access the structure of the message.</doc>
  19227. <return-value transfer-ownership="none">
  19228. <doc xml:space="preserve">The structure of the message. The structure is
  19229. still owned by the message, which means that you should not free it and
  19230. that the pointer becomes invalid when you free the message.
  19231. MT safe.</doc>
  19232. <type name="Structure" c:type="const GstStructure*"/>
  19233. </return-value>
  19234. <parameters>
  19235. <instance-parameter name="message" transfer-ownership="none">
  19236. <doc xml:space="preserve">The #GstMessage.</doc>
  19237. <type name="Message" c:type="GstMessage*"/>
  19238. </instance-parameter>
  19239. </parameters>
  19240. </method>
  19241. <method name="has_name" c:identifier="gst_message_has_name">
  19242. <doc xml:space="preserve">Checks if @message has the given @name. This function is usually used to
  19243. check the name of a custom message.</doc>
  19244. <return-value transfer-ownership="none">
  19245. <doc xml:space="preserve">%TRUE if @name matches the name of the message structure.</doc>
  19246. <type name="gboolean" c:type="gboolean"/>
  19247. </return-value>
  19248. <parameters>
  19249. <instance-parameter name="message" transfer-ownership="none">
  19250. <doc xml:space="preserve">The #GstMessage.</doc>
  19251. <type name="Message" c:type="GstMessage*"/>
  19252. </instance-parameter>
  19253. <parameter name="name" transfer-ownership="none">
  19254. <doc xml:space="preserve">name to check</doc>
  19255. <type name="utf8" c:type="const gchar*"/>
  19256. </parameter>
  19257. </parameters>
  19258. </method>
  19259. <method name="parse_async_done"
  19260. c:identifier="gst_message_parse_async_done">
  19261. <doc xml:space="preserve">Extract the running_time from the async_done message.
  19262. MT safe.</doc>
  19263. <return-value transfer-ownership="none">
  19264. <type name="none" c:type="void"/>
  19265. </return-value>
  19266. <parameters>
  19267. <instance-parameter name="message" transfer-ownership="none">
  19268. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_ASYNC_DONE.</doc>
  19269. <type name="Message" c:type="GstMessage*"/>
  19270. </instance-parameter>
  19271. <parameter name="running_time"
  19272. direction="out"
  19273. caller-allocates="0"
  19274. transfer-ownership="full"
  19275. optional="1"
  19276. allow-none="1">
  19277. <doc xml:space="preserve">Result location for the running_time or %NULL</doc>
  19278. <type name="ClockTime" c:type="GstClockTime*"/>
  19279. </parameter>
  19280. </parameters>
  19281. </method>
  19282. <method name="parse_buffering"
  19283. c:identifier="gst_message_parse_buffering">
  19284. <doc xml:space="preserve">Extracts the buffering percent from the GstMessage. see also
  19285. gst_message_new_buffering().
  19286. MT safe.</doc>
  19287. <return-value transfer-ownership="none">
  19288. <type name="none" c:type="void"/>
  19289. </return-value>
  19290. <parameters>
  19291. <instance-parameter name="message" transfer-ownership="none">
  19292. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc>
  19293. <type name="Message" c:type="GstMessage*"/>
  19294. </instance-parameter>
  19295. <parameter name="percent"
  19296. direction="out"
  19297. caller-allocates="0"
  19298. transfer-ownership="full"
  19299. optional="1"
  19300. allow-none="1">
  19301. <doc xml:space="preserve">Return location for the percent.</doc>
  19302. <type name="gint" c:type="gint*"/>
  19303. </parameter>
  19304. </parameters>
  19305. </method>
  19306. <method name="parse_buffering_stats"
  19307. c:identifier="gst_message_parse_buffering_stats">
  19308. <doc xml:space="preserve">Extracts the buffering stats values from @message.</doc>
  19309. <return-value transfer-ownership="none">
  19310. <type name="none" c:type="void"/>
  19311. </return-value>
  19312. <parameters>
  19313. <instance-parameter name="message" transfer-ownership="none">
  19314. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc>
  19315. <type name="Message" c:type="GstMessage*"/>
  19316. </instance-parameter>
  19317. <parameter name="mode"
  19318. direction="out"
  19319. caller-allocates="0"
  19320. transfer-ownership="full"
  19321. optional="1"
  19322. allow-none="1">
  19323. <doc xml:space="preserve">a buffering mode, or %NULL</doc>
  19324. <type name="BufferingMode" c:type="GstBufferingMode*"/>
  19325. </parameter>
  19326. <parameter name="avg_in"
  19327. direction="out"
  19328. caller-allocates="0"
  19329. transfer-ownership="full"
  19330. optional="1"
  19331. allow-none="1">
  19332. <doc xml:space="preserve">the average input rate, or %NULL</doc>
  19333. <type name="gint" c:type="gint*"/>
  19334. </parameter>
  19335. <parameter name="avg_out"
  19336. direction="out"
  19337. caller-allocates="0"
  19338. transfer-ownership="full"
  19339. optional="1"
  19340. allow-none="1">
  19341. <doc xml:space="preserve">the average output rate, or %NULL</doc>
  19342. <type name="gint" c:type="gint*"/>
  19343. </parameter>
  19344. <parameter name="buffering_left"
  19345. direction="out"
  19346. caller-allocates="0"
  19347. transfer-ownership="full"
  19348. optional="1"
  19349. allow-none="1">
  19350. <doc xml:space="preserve">amount of buffering time left in
  19351. milliseconds, or %NULL</doc>
  19352. <type name="gint64" c:type="gint64*"/>
  19353. </parameter>
  19354. </parameters>
  19355. </method>
  19356. <method name="parse_clock_lost"
  19357. c:identifier="gst_message_parse_clock_lost">
  19358. <doc xml:space="preserve">Extracts the lost clock from the GstMessage.
  19359. The clock object returned remains valid until the message is freed.
  19360. MT safe.</doc>
  19361. <return-value transfer-ownership="none">
  19362. <type name="none" c:type="void"/>
  19363. </return-value>
  19364. <parameters>
  19365. <instance-parameter name="message" transfer-ownership="none">
  19366. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_CLOCK_LOST.</doc>
  19367. <type name="Message" c:type="GstMessage*"/>
  19368. </instance-parameter>
  19369. <parameter name="clock"
  19370. direction="out"
  19371. caller-allocates="0"
  19372. transfer-ownership="none"
  19373. optional="1"
  19374. allow-none="1">
  19375. <doc xml:space="preserve">a pointer to hold the lost clock</doc>
  19376. <type name="Clock" c:type="GstClock**"/>
  19377. </parameter>
  19378. </parameters>
  19379. </method>
  19380. <method name="parse_clock_provide"
  19381. c:identifier="gst_message_parse_clock_provide">
  19382. <doc xml:space="preserve">Extracts the clock and ready flag from the GstMessage.
  19383. The clock object returned remains valid until the message is freed.
  19384. MT safe.</doc>
  19385. <return-value transfer-ownership="none">
  19386. <type name="none" c:type="void"/>
  19387. </return-value>
  19388. <parameters>
  19389. <instance-parameter name="message" transfer-ownership="none">
  19390. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_CLOCK_PROVIDE.</doc>
  19391. <type name="Message" c:type="GstMessage*"/>
  19392. </instance-parameter>
  19393. <parameter name="clock"
  19394. direction="out"
  19395. caller-allocates="0"
  19396. transfer-ownership="none"
  19397. optional="1"
  19398. allow-none="1">
  19399. <doc xml:space="preserve">a pointer to hold a clock
  19400. object, or %NULL</doc>
  19401. <type name="Clock" c:type="GstClock**"/>
  19402. </parameter>
  19403. <parameter name="ready"
  19404. direction="out"
  19405. caller-allocates="0"
  19406. transfer-ownership="full"
  19407. optional="1"
  19408. allow-none="1">
  19409. <doc xml:space="preserve">a pointer to hold the ready flag, or %NULL</doc>
  19410. <type name="gboolean" c:type="gboolean*"/>
  19411. </parameter>
  19412. </parameters>
  19413. </method>
  19414. <method name="parse_context_type"
  19415. c:identifier="gst_message_parse_context_type"
  19416. version="1.2">
  19417. <doc xml:space="preserve">Parse a context type from an existing GST_MESSAGE_NEED_CONTEXT message.</doc>
  19418. <return-value transfer-ownership="none">
  19419. <doc xml:space="preserve">a #gboolean indicating if the parsing succeeded.</doc>
  19420. <type name="gboolean" c:type="gboolean"/>
  19421. </return-value>
  19422. <parameters>
  19423. <instance-parameter name="message" transfer-ownership="none">
  19424. <doc xml:space="preserve">a GST_MESSAGE_NEED_CONTEXT type message</doc>
  19425. <type name="Message" c:type="GstMessage*"/>
  19426. </instance-parameter>
  19427. <parameter name="context_type"
  19428. direction="out"
  19429. caller-allocates="0"
  19430. transfer-ownership="full"
  19431. optional="1"
  19432. allow-none="1">
  19433. <doc xml:space="preserve">the context type, or %NULL</doc>
  19434. <type name="utf8" c:type="const gchar**"/>
  19435. </parameter>
  19436. </parameters>
  19437. </method>
  19438. <method name="parse_device_added"
  19439. c:identifier="gst_message_parse_device_added"
  19440. version="1.4">
  19441. <doc xml:space="preserve">Parses a device-added message. The device-added message is produced by
  19442. #GstDeviceProvider or a #GstDeviceMonitor. It announces the appearance
  19443. of monitored devices.</doc>
  19444. <return-value transfer-ownership="none">
  19445. <type name="none" c:type="void"/>
  19446. </return-value>
  19447. <parameters>
  19448. <instance-parameter name="message" transfer-ownership="none">
  19449. <doc xml:space="preserve">a #GstMessage of type %GST_MESSAGE_DEVICE_ADDED</doc>
  19450. <type name="Message" c:type="GstMessage*"/>
  19451. </instance-parameter>
  19452. <parameter name="device"
  19453. direction="out"
  19454. caller-allocates="0"
  19455. transfer-ownership="none"
  19456. optional="1"
  19457. allow-none="1">
  19458. <doc xml:space="preserve">A location where to store a
  19459. pointer to the new #GstDevice, or %NULL</doc>
  19460. <type name="Device" c:type="GstDevice**"/>
  19461. </parameter>
  19462. </parameters>
  19463. </method>
  19464. <method name="parse_device_removed"
  19465. c:identifier="gst_message_parse_device_removed"
  19466. version="1.4">
  19467. <doc xml:space="preserve">Parses a device-removed message. The device-removed message is produced by
  19468. #GstDeviceProvider or a #GstDeviceMonitor. It announces the
  19469. disappearance of monitored devices.</doc>
  19470. <return-value transfer-ownership="none">
  19471. <type name="none" c:type="void"/>
  19472. </return-value>
  19473. <parameters>
  19474. <instance-parameter name="message" transfer-ownership="none">
  19475. <doc xml:space="preserve">a #GstMessage of type %GST_MESSAGE_DEVICE_REMOVED</doc>
  19476. <type name="Message" c:type="GstMessage*"/>
  19477. </instance-parameter>
  19478. <parameter name="device"
  19479. direction="out"
  19480. caller-allocates="0"
  19481. transfer-ownership="none"
  19482. optional="1"
  19483. allow-none="1">
  19484. <doc xml:space="preserve">A location where to store a
  19485. pointer to the removed #GstDevice, or %NULL</doc>
  19486. <type name="Device" c:type="GstDevice**"/>
  19487. </parameter>
  19488. </parameters>
  19489. </method>
  19490. <method name="parse_error" c:identifier="gst_message_parse_error">
  19491. <doc xml:space="preserve">Extracts the GError and debug string from the GstMessage. The values returned
  19492. in the output arguments are copies; the caller must free them when done.
  19493. Typical usage of this function might be:
  19494. |[&lt;!-- language="C" --&gt;
  19495. ...
  19496. switch (GST_MESSAGE_TYPE (msg)) {
  19497. case GST_MESSAGE_ERROR: {
  19498. GError *err = NULL;
  19499. gchar *dbg_info = NULL;
  19500. gst_message_parse_error (msg, &amp;amp;err, &amp;amp;dbg_info);
  19501. g_printerr ("ERROR from element %s: %s\n",
  19502. GST_OBJECT_NAME (msg-&gt;src), err-&gt;message);
  19503. g_printerr ("Debugging info: %s\n", (dbg_info) ? dbg_info : "none");
  19504. g_error_free (err);
  19505. g_free (dbg_info);
  19506. break;
  19507. }
  19508. ...
  19509. }
  19510. ...
  19511. ]|
  19512. MT safe.</doc>
  19513. <return-value transfer-ownership="none">
  19514. <type name="none" c:type="void"/>
  19515. </return-value>
  19516. <parameters>
  19517. <instance-parameter name="message" transfer-ownership="none">
  19518. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_ERROR.</doc>
  19519. <type name="Message" c:type="GstMessage*"/>
  19520. </instance-parameter>
  19521. <parameter name="gerror"
  19522. direction="out"
  19523. caller-allocates="0"
  19524. transfer-ownership="full"
  19525. optional="1"
  19526. allow-none="1">
  19527. <doc xml:space="preserve">location for the GError</doc>
  19528. <type name="GLib.Error" c:type="GError**"/>
  19529. </parameter>
  19530. <parameter name="debug"
  19531. direction="out"
  19532. caller-allocates="0"
  19533. transfer-ownership="full"
  19534. optional="1"
  19535. allow-none="1">
  19536. <doc xml:space="preserve">location for the debug message,
  19537. or %NULL</doc>
  19538. <type name="utf8" c:type="gchar**"/>
  19539. </parameter>
  19540. </parameters>
  19541. </method>
  19542. <method name="parse_group_id"
  19543. c:identifier="gst_message_parse_group_id"
  19544. version="1.2">
  19545. <doc xml:space="preserve">Extract the group from the STREAM_START message.</doc>
  19546. <return-value transfer-ownership="none">
  19547. <doc xml:space="preserve">%TRUE if the message had a group id set, %FALSE otherwise
  19548. MT safe.</doc>
  19549. <type name="gboolean" c:type="gboolean"/>
  19550. </return-value>
  19551. <parameters>
  19552. <instance-parameter name="message" transfer-ownership="none">
  19553. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_START.</doc>
  19554. <type name="Message" c:type="GstMessage*"/>
  19555. </instance-parameter>
  19556. <parameter name="group_id"
  19557. direction="out"
  19558. caller-allocates="0"
  19559. transfer-ownership="full"
  19560. optional="1"
  19561. allow-none="1">
  19562. <doc xml:space="preserve">Result location for the group id or
  19563. %NULL</doc>
  19564. <type name="guint" c:type="guint*"/>
  19565. </parameter>
  19566. </parameters>
  19567. </method>
  19568. <method name="parse_have_context"
  19569. c:identifier="gst_message_parse_have_context"
  19570. version="1.2">
  19571. <doc xml:space="preserve">Extract the context from the HAVE_CONTEXT message.
  19572. MT safe.</doc>
  19573. <return-value transfer-ownership="none">
  19574. <type name="none" c:type="void"/>
  19575. </return-value>
  19576. <parameters>
  19577. <instance-parameter name="message" transfer-ownership="none">
  19578. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_HAVE_CONTEXT.</doc>
  19579. <type name="Message" c:type="GstMessage*"/>
  19580. </instance-parameter>
  19581. <parameter name="context"
  19582. direction="out"
  19583. caller-allocates="0"
  19584. transfer-ownership="full"
  19585. optional="1"
  19586. allow-none="1">
  19587. <doc xml:space="preserve">Result location for the
  19588. context or %NULL</doc>
  19589. <type name="Context" c:type="GstContext**"/>
  19590. </parameter>
  19591. </parameters>
  19592. </method>
  19593. <method name="parse_info" c:identifier="gst_message_parse_info">
  19594. <doc xml:space="preserve">Extracts the GError and debug string from the GstMessage. The values returned
  19595. in the output arguments are copies; the caller must free them when done.
  19596. MT safe.</doc>
  19597. <return-value transfer-ownership="none">
  19598. <type name="none" c:type="void"/>
  19599. </return-value>
  19600. <parameters>
  19601. <instance-parameter name="message" transfer-ownership="none">
  19602. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_INFO.</doc>
  19603. <type name="Message" c:type="GstMessage*"/>
  19604. </instance-parameter>
  19605. <parameter name="gerror"
  19606. direction="out"
  19607. caller-allocates="0"
  19608. transfer-ownership="full"
  19609. optional="1"
  19610. allow-none="1">
  19611. <doc xml:space="preserve">location for the GError</doc>
  19612. <type name="GLib.Error" c:type="GError**"/>
  19613. </parameter>
  19614. <parameter name="debug"
  19615. direction="out"
  19616. caller-allocates="0"
  19617. transfer-ownership="full"
  19618. optional="1"
  19619. allow-none="1">
  19620. <doc xml:space="preserve">location for the debug message,
  19621. or %NULL</doc>
  19622. <type name="utf8" c:type="gchar**"/>
  19623. </parameter>
  19624. </parameters>
  19625. </method>
  19626. <method name="parse_new_clock"
  19627. c:identifier="gst_message_parse_new_clock">
  19628. <doc xml:space="preserve">Extracts the new clock from the GstMessage.
  19629. The clock object returned remains valid until the message is freed.
  19630. MT safe.</doc>
  19631. <return-value transfer-ownership="none">
  19632. <type name="none" c:type="void"/>
  19633. </return-value>
  19634. <parameters>
  19635. <instance-parameter name="message" transfer-ownership="none">
  19636. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_NEW_CLOCK.</doc>
  19637. <type name="Message" c:type="GstMessage*"/>
  19638. </instance-parameter>
  19639. <parameter name="clock"
  19640. direction="out"
  19641. caller-allocates="0"
  19642. transfer-ownership="none"
  19643. optional="1"
  19644. allow-none="1">
  19645. <doc xml:space="preserve">a pointer to hold the selected
  19646. new clock</doc>
  19647. <type name="Clock" c:type="GstClock**"/>
  19648. </parameter>
  19649. </parameters>
  19650. </method>
  19651. <method name="parse_progress" c:identifier="gst_message_parse_progress">
  19652. <doc xml:space="preserve">Parses the progress @type, @code and @text.</doc>
  19653. <return-value transfer-ownership="none">
  19654. <type name="none" c:type="void"/>
  19655. </return-value>
  19656. <parameters>
  19657. <instance-parameter name="message" transfer-ownership="none">
  19658. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_PROGRESS.</doc>
  19659. <type name="Message" c:type="GstMessage*"/>
  19660. </instance-parameter>
  19661. <parameter name="type"
  19662. direction="out"
  19663. caller-allocates="0"
  19664. transfer-ownership="full"
  19665. optional="1"
  19666. allow-none="1">
  19667. <doc xml:space="preserve">location for the type</doc>
  19668. <type name="ProgressType" c:type="GstProgressType*"/>
  19669. </parameter>
  19670. <parameter name="code"
  19671. direction="out"
  19672. caller-allocates="0"
  19673. transfer-ownership="full"
  19674. optional="1"
  19675. allow-none="1">
  19676. <doc xml:space="preserve">location for the code</doc>
  19677. <type name="utf8" c:type="gchar**"/>
  19678. </parameter>
  19679. <parameter name="text"
  19680. direction="out"
  19681. caller-allocates="0"
  19682. transfer-ownership="full"
  19683. optional="1"
  19684. allow-none="1">
  19685. <doc xml:space="preserve">location for the text</doc>
  19686. <type name="utf8" c:type="gchar**"/>
  19687. </parameter>
  19688. </parameters>
  19689. </method>
  19690. <method name="parse_qos" c:identifier="gst_message_parse_qos">
  19691. <doc xml:space="preserve">Extract the timestamps and live status from the QoS message.
  19692. The returned values give the running_time, stream_time, timestamp and
  19693. duration of the dropped buffer. Values of GST_CLOCK_TIME_NONE mean unknown
  19694. values.
  19695. MT safe.</doc>
  19696. <return-value transfer-ownership="none">
  19697. <type name="none" c:type="void"/>
  19698. </return-value>
  19699. <parameters>
  19700. <instance-parameter name="message" transfer-ownership="none">
  19701. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
  19702. <type name="Message" c:type="GstMessage*"/>
  19703. </instance-parameter>
  19704. <parameter name="live"
  19705. direction="out"
  19706. caller-allocates="0"
  19707. transfer-ownership="full"
  19708. optional="1"
  19709. allow-none="1">
  19710. <doc xml:space="preserve">if the message was generated by a live element</doc>
  19711. <type name="gboolean" c:type="gboolean*"/>
  19712. </parameter>
  19713. <parameter name="running_time"
  19714. direction="out"
  19715. caller-allocates="0"
  19716. transfer-ownership="full"
  19717. optional="1"
  19718. allow-none="1">
  19719. <doc xml:space="preserve">the running time of the buffer that
  19720. generated the message</doc>
  19721. <type name="guint64" c:type="guint64*"/>
  19722. </parameter>
  19723. <parameter name="stream_time"
  19724. direction="out"
  19725. caller-allocates="0"
  19726. transfer-ownership="full"
  19727. optional="1"
  19728. allow-none="1">
  19729. <doc xml:space="preserve">the stream time of the buffer that
  19730. generated the message</doc>
  19731. <type name="guint64" c:type="guint64*"/>
  19732. </parameter>
  19733. <parameter name="timestamp"
  19734. direction="out"
  19735. caller-allocates="0"
  19736. transfer-ownership="full"
  19737. optional="1"
  19738. allow-none="1">
  19739. <doc xml:space="preserve">the timestamps of the buffer that
  19740. generated the message</doc>
  19741. <type name="guint64" c:type="guint64*"/>
  19742. </parameter>
  19743. <parameter name="duration"
  19744. direction="out"
  19745. caller-allocates="0"
  19746. transfer-ownership="full"
  19747. optional="1"
  19748. allow-none="1">
  19749. <doc xml:space="preserve">the duration of the buffer that
  19750. generated the message</doc>
  19751. <type name="guint64" c:type="guint64*"/>
  19752. </parameter>
  19753. </parameters>
  19754. </method>
  19755. <method name="parse_qos_stats"
  19756. c:identifier="gst_message_parse_qos_stats">
  19757. <doc xml:space="preserve">Extract the QoS stats representing the history of the current continuous
  19758. pipeline playback period.
  19759. When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
  19760. invalid. Values of -1 for either @processed or @dropped mean unknown values.
  19761. MT safe.</doc>
  19762. <return-value transfer-ownership="none">
  19763. <type name="none" c:type="void"/>
  19764. </return-value>
  19765. <parameters>
  19766. <instance-parameter name="message" transfer-ownership="none">
  19767. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
  19768. <type name="Message" c:type="GstMessage*"/>
  19769. </instance-parameter>
  19770. <parameter name="format"
  19771. direction="out"
  19772. caller-allocates="0"
  19773. transfer-ownership="full"
  19774. optional="1"
  19775. allow-none="1">
  19776. <doc xml:space="preserve">Units of the 'processed' and 'dropped' fields.
  19777. Video sinks and video filters will use GST_FORMAT_BUFFERS (frames).
  19778. Audio sinks and audio filters will likely use GST_FORMAT_DEFAULT
  19779. (samples).</doc>
  19780. <type name="Format" c:type="GstFormat*"/>
  19781. </parameter>
  19782. <parameter name="processed"
  19783. direction="out"
  19784. caller-allocates="0"
  19785. transfer-ownership="full"
  19786. optional="1"
  19787. allow-none="1">
  19788. <doc xml:space="preserve">Total number of units correctly processed
  19789. since the last state change to READY or a flushing operation.</doc>
  19790. <type name="guint64" c:type="guint64*"/>
  19791. </parameter>
  19792. <parameter name="dropped"
  19793. direction="out"
  19794. caller-allocates="0"
  19795. transfer-ownership="full"
  19796. optional="1"
  19797. allow-none="1">
  19798. <doc xml:space="preserve">Total number of units dropped since the last
  19799. state change to READY or a flushing operation.</doc>
  19800. <type name="guint64" c:type="guint64*"/>
  19801. </parameter>
  19802. </parameters>
  19803. </method>
  19804. <method name="parse_qos_values"
  19805. c:identifier="gst_message_parse_qos_values">
  19806. <doc xml:space="preserve">Extract the QoS values that have been calculated/analysed from the QoS data
  19807. MT safe.</doc>
  19808. <return-value transfer-ownership="none">
  19809. <type name="none" c:type="void"/>
  19810. </return-value>
  19811. <parameters>
  19812. <instance-parameter name="message" transfer-ownership="none">
  19813. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
  19814. <type name="Message" c:type="GstMessage*"/>
  19815. </instance-parameter>
  19816. <parameter name="jitter"
  19817. direction="out"
  19818. caller-allocates="0"
  19819. transfer-ownership="full"
  19820. optional="1"
  19821. allow-none="1">
  19822. <doc xml:space="preserve">The difference of the running-time against
  19823. the deadline.</doc>
  19824. <type name="gint64" c:type="gint64*"/>
  19825. </parameter>
  19826. <parameter name="proportion"
  19827. direction="out"
  19828. caller-allocates="0"
  19829. transfer-ownership="full"
  19830. optional="1"
  19831. allow-none="1">
  19832. <doc xml:space="preserve">Long term prediction of the ideal rate
  19833. relative to normal rate to get optimal quality.</doc>
  19834. <type name="gdouble" c:type="gdouble*"/>
  19835. </parameter>
  19836. <parameter name="quality"
  19837. direction="out"
  19838. caller-allocates="0"
  19839. transfer-ownership="full"
  19840. optional="1"
  19841. allow-none="1">
  19842. <doc xml:space="preserve">An element dependent integer value that
  19843. specifies the current quality level of the element. The default
  19844. maximum quality is 1000000.</doc>
  19845. <type name="gint" c:type="gint*"/>
  19846. </parameter>
  19847. </parameters>
  19848. </method>
  19849. <method name="parse_request_state"
  19850. c:identifier="gst_message_parse_request_state">
  19851. <doc xml:space="preserve">Extract the requested state from the request_state message.
  19852. MT safe.</doc>
  19853. <return-value transfer-ownership="none">
  19854. <type name="none" c:type="void"/>
  19855. </return-value>
  19856. <parameters>
  19857. <instance-parameter name="message" transfer-ownership="none">
  19858. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_REQUEST_STATE.</doc>
  19859. <type name="Message" c:type="GstMessage*"/>
  19860. </instance-parameter>
  19861. <parameter name="state"
  19862. direction="out"
  19863. caller-allocates="0"
  19864. transfer-ownership="full"
  19865. optional="1"
  19866. allow-none="1">
  19867. <doc xml:space="preserve">Result location for the requested state or %NULL</doc>
  19868. <type name="State" c:type="GstState*"/>
  19869. </parameter>
  19870. </parameters>
  19871. </method>
  19872. <method name="parse_reset_time"
  19873. c:identifier="gst_message_parse_reset_time">
  19874. <doc xml:space="preserve">Extract the running-time from the RESET_TIME message.
  19875. MT safe.</doc>
  19876. <return-value transfer-ownership="none">
  19877. <type name="none" c:type="void"/>
  19878. </return-value>
  19879. <parameters>
  19880. <instance-parameter name="message" transfer-ownership="none">
  19881. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_RESET_TIME.</doc>
  19882. <type name="Message" c:type="GstMessage*"/>
  19883. </instance-parameter>
  19884. <parameter name="running_time"
  19885. direction="out"
  19886. caller-allocates="0"
  19887. transfer-ownership="full"
  19888. optional="1"
  19889. allow-none="1">
  19890. <doc xml:space="preserve">Result location for the running_time or
  19891. %NULL</doc>
  19892. <type name="ClockTime" c:type="GstClockTime*"/>
  19893. </parameter>
  19894. </parameters>
  19895. </method>
  19896. <method name="parse_segment_done"
  19897. c:identifier="gst_message_parse_segment_done">
  19898. <doc xml:space="preserve">Extracts the position and format from the segment done message.
  19899. MT safe.</doc>
  19900. <return-value transfer-ownership="none">
  19901. <type name="none" c:type="void"/>
  19902. </return-value>
  19903. <parameters>
  19904. <instance-parameter name="message" transfer-ownership="none">
  19905. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_SEGMENT_DONE.</doc>
  19906. <type name="Message" c:type="GstMessage*"/>
  19907. </instance-parameter>
  19908. <parameter name="format"
  19909. direction="out"
  19910. caller-allocates="0"
  19911. transfer-ownership="full"
  19912. optional="1"
  19913. allow-none="1">
  19914. <doc xml:space="preserve">Result location for the format, or %NULL</doc>
  19915. <type name="Format" c:type="GstFormat*"/>
  19916. </parameter>
  19917. <parameter name="position"
  19918. direction="out"
  19919. caller-allocates="0"
  19920. transfer-ownership="full"
  19921. optional="1"
  19922. allow-none="1">
  19923. <doc xml:space="preserve">Result location for the position, or %NULL</doc>
  19924. <type name="gint64" c:type="gint64*"/>
  19925. </parameter>
  19926. </parameters>
  19927. </method>
  19928. <method name="parse_segment_start"
  19929. c:identifier="gst_message_parse_segment_start">
  19930. <doc xml:space="preserve">Extracts the position and format from the segment start message.
  19931. MT safe.</doc>
  19932. <return-value transfer-ownership="none">
  19933. <type name="none" c:type="void"/>
  19934. </return-value>
  19935. <parameters>
  19936. <instance-parameter name="message" transfer-ownership="none">
  19937. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_SEGMENT_START.</doc>
  19938. <type name="Message" c:type="GstMessage*"/>
  19939. </instance-parameter>
  19940. <parameter name="format"
  19941. direction="out"
  19942. caller-allocates="0"
  19943. transfer-ownership="full"
  19944. optional="1"
  19945. allow-none="1">
  19946. <doc xml:space="preserve">Result location for the format, or %NULL</doc>
  19947. <type name="Format" c:type="GstFormat*"/>
  19948. </parameter>
  19949. <parameter name="position"
  19950. direction="out"
  19951. caller-allocates="0"
  19952. transfer-ownership="full"
  19953. optional="1"
  19954. allow-none="1">
  19955. <doc xml:space="preserve">Result location for the position, or %NULL</doc>
  19956. <type name="gint64" c:type="gint64*"/>
  19957. </parameter>
  19958. </parameters>
  19959. </method>
  19960. <method name="parse_state_changed"
  19961. c:identifier="gst_message_parse_state_changed">
  19962. <doc xml:space="preserve">Extracts the old and new states from the GstMessage.
  19963. Typical usage of this function might be:
  19964. |[&lt;!-- language="C" --&gt;
  19965. ...
  19966. switch (GST_MESSAGE_TYPE (msg)) {
  19967. case GST_MESSAGE_STATE_CHANGED: {
  19968. GstState old_state, new_state;
  19969. gst_message_parse_state_changed (msg, &amp;amp;old_state, &amp;amp;new_state, NULL);
  19970. g_print ("Element %s changed state from %s to %s.\n",
  19971. GST_OBJECT_NAME (msg-&gt;src),
  19972. gst_element_state_get_name (old_state),
  19973. gst_element_state_get_name (new_state));
  19974. break;
  19975. }
  19976. ...
  19977. }
  19978. ...
  19979. ]|
  19980. MT safe.</doc>
  19981. <return-value transfer-ownership="none">
  19982. <type name="none" c:type="void"/>
  19983. </return-value>
  19984. <parameters>
  19985. <instance-parameter name="message" transfer-ownership="none">
  19986. <doc xml:space="preserve">a valid #GstMessage of type GST_MESSAGE_STATE_CHANGED</doc>
  19987. <type name="Message" c:type="GstMessage*"/>
  19988. </instance-parameter>
  19989. <parameter name="oldstate"
  19990. direction="out"
  19991. caller-allocates="0"
  19992. transfer-ownership="full"
  19993. optional="1"
  19994. allow-none="1">
  19995. <doc xml:space="preserve">the previous state, or %NULL</doc>
  19996. <type name="State" c:type="GstState*"/>
  19997. </parameter>
  19998. <parameter name="newstate"
  19999. direction="out"
  20000. caller-allocates="0"
  20001. transfer-ownership="full"
  20002. optional="1"
  20003. allow-none="1">
  20004. <doc xml:space="preserve">the new (current) state, or %NULL</doc>
  20005. <type name="State" c:type="GstState*"/>
  20006. </parameter>
  20007. <parameter name="pending"
  20008. direction="out"
  20009. caller-allocates="0"
  20010. transfer-ownership="full"
  20011. optional="1"
  20012. allow-none="1">
  20013. <doc xml:space="preserve">the pending (target) state, or %NULL</doc>
  20014. <type name="State" c:type="GstState*"/>
  20015. </parameter>
  20016. </parameters>
  20017. </method>
  20018. <method name="parse_step_done"
  20019. c:identifier="gst_message_parse_step_done">
  20020. <doc xml:space="preserve">Extract the values the step_done message.
  20021. MT safe.</doc>
  20022. <return-value transfer-ownership="none">
  20023. <type name="none" c:type="void"/>
  20024. </return-value>
  20025. <parameters>
  20026. <instance-parameter name="message" transfer-ownership="none">
  20027. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STEP_DONE.</doc>
  20028. <type name="Message" c:type="GstMessage*"/>
  20029. </instance-parameter>
  20030. <parameter name="format"
  20031. direction="out"
  20032. caller-allocates="0"
  20033. transfer-ownership="full"
  20034. optional="1"
  20035. allow-none="1">
  20036. <doc xml:space="preserve">result location for the format</doc>
  20037. <type name="Format" c:type="GstFormat*"/>
  20038. </parameter>
  20039. <parameter name="amount"
  20040. direction="out"
  20041. caller-allocates="0"
  20042. transfer-ownership="full"
  20043. optional="1"
  20044. allow-none="1">
  20045. <doc xml:space="preserve">result location for the amount</doc>
  20046. <type name="guint64" c:type="guint64*"/>
  20047. </parameter>
  20048. <parameter name="rate"
  20049. direction="out"
  20050. caller-allocates="0"
  20051. transfer-ownership="full"
  20052. optional="1"
  20053. allow-none="1">
  20054. <doc xml:space="preserve">result location for the rate</doc>
  20055. <type name="gdouble" c:type="gdouble*"/>
  20056. </parameter>
  20057. <parameter name="flush"
  20058. direction="out"
  20059. caller-allocates="0"
  20060. transfer-ownership="full"
  20061. optional="1"
  20062. allow-none="1">
  20063. <doc xml:space="preserve">result location for the flush flag</doc>
  20064. <type name="gboolean" c:type="gboolean*"/>
  20065. </parameter>
  20066. <parameter name="intermediate"
  20067. direction="out"
  20068. caller-allocates="0"
  20069. transfer-ownership="full"
  20070. optional="1"
  20071. allow-none="1">
  20072. <doc xml:space="preserve">result location for the intermediate flag</doc>
  20073. <type name="gboolean" c:type="gboolean*"/>
  20074. </parameter>
  20075. <parameter name="duration"
  20076. direction="out"
  20077. caller-allocates="0"
  20078. transfer-ownership="full"
  20079. optional="1"
  20080. allow-none="1">
  20081. <doc xml:space="preserve">result location for the duration</doc>
  20082. <type name="guint64" c:type="guint64*"/>
  20083. </parameter>
  20084. <parameter name="eos"
  20085. direction="out"
  20086. caller-allocates="0"
  20087. transfer-ownership="full"
  20088. optional="1"
  20089. allow-none="1">
  20090. <doc xml:space="preserve">result location for the EOS flag</doc>
  20091. <type name="gboolean" c:type="gboolean*"/>
  20092. </parameter>
  20093. </parameters>
  20094. </method>
  20095. <method name="parse_step_start"
  20096. c:identifier="gst_message_parse_step_start">
  20097. <doc xml:space="preserve">Extract the values from step_start message.
  20098. MT safe.</doc>
  20099. <return-value transfer-ownership="none">
  20100. <type name="none" c:type="void"/>
  20101. </return-value>
  20102. <parameters>
  20103. <instance-parameter name="message" transfer-ownership="none">
  20104. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STEP_DONE.</doc>
  20105. <type name="Message" c:type="GstMessage*"/>
  20106. </instance-parameter>
  20107. <parameter name="active"
  20108. direction="out"
  20109. caller-allocates="0"
  20110. transfer-ownership="full"
  20111. optional="1"
  20112. allow-none="1">
  20113. <doc xml:space="preserve">result location for the active flag</doc>
  20114. <type name="gboolean" c:type="gboolean*"/>
  20115. </parameter>
  20116. <parameter name="format"
  20117. direction="out"
  20118. caller-allocates="0"
  20119. transfer-ownership="full"
  20120. optional="1"
  20121. allow-none="1">
  20122. <doc xml:space="preserve">result location for the format</doc>
  20123. <type name="Format" c:type="GstFormat*"/>
  20124. </parameter>
  20125. <parameter name="amount"
  20126. direction="out"
  20127. caller-allocates="0"
  20128. transfer-ownership="full"
  20129. optional="1"
  20130. allow-none="1">
  20131. <doc xml:space="preserve">result location for the amount</doc>
  20132. <type name="guint64" c:type="guint64*"/>
  20133. </parameter>
  20134. <parameter name="rate"
  20135. direction="out"
  20136. caller-allocates="0"
  20137. transfer-ownership="full"
  20138. optional="1"
  20139. allow-none="1">
  20140. <doc xml:space="preserve">result location for the rate</doc>
  20141. <type name="gdouble" c:type="gdouble*"/>
  20142. </parameter>
  20143. <parameter name="flush"
  20144. direction="out"
  20145. caller-allocates="0"
  20146. transfer-ownership="full"
  20147. optional="1"
  20148. allow-none="1">
  20149. <doc xml:space="preserve">result location for the flush flag</doc>
  20150. <type name="gboolean" c:type="gboolean*"/>
  20151. </parameter>
  20152. <parameter name="intermediate"
  20153. direction="out"
  20154. caller-allocates="0"
  20155. transfer-ownership="full"
  20156. optional="1"
  20157. allow-none="1">
  20158. <doc xml:space="preserve">result location for the intermediate flag</doc>
  20159. <type name="gboolean" c:type="gboolean*"/>
  20160. </parameter>
  20161. </parameters>
  20162. </method>
  20163. <method name="parse_stream_status"
  20164. c:identifier="gst_message_parse_stream_status">
  20165. <doc xml:space="preserve">Extracts the stream status type and owner the GstMessage. The returned
  20166. owner remains valid for as long as the reference to @message is valid and
  20167. should thus not be unreffed.
  20168. MT safe.</doc>
  20169. <return-value transfer-ownership="none">
  20170. <type name="none" c:type="void"/>
  20171. </return-value>
  20172. <parameters>
  20173. <instance-parameter name="message" transfer-ownership="none">
  20174. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc>
  20175. <type name="Message" c:type="GstMessage*"/>
  20176. </instance-parameter>
  20177. <parameter name="type"
  20178. direction="out"
  20179. caller-allocates="0"
  20180. transfer-ownership="full">
  20181. <doc xml:space="preserve">A pointer to hold the status type</doc>
  20182. <type name="StreamStatusType" c:type="GstStreamStatusType*"/>
  20183. </parameter>
  20184. <parameter name="owner"
  20185. direction="out"
  20186. caller-allocates="0"
  20187. transfer-ownership="none">
  20188. <doc xml:space="preserve">The owner element of the message source</doc>
  20189. <type name="Element" c:type="GstElement**"/>
  20190. </parameter>
  20191. </parameters>
  20192. </method>
  20193. <method name="parse_structure_change"
  20194. c:identifier="gst_message_parse_structure_change">
  20195. <doc xml:space="preserve">Extracts the change type and completion status from the GstMessage.
  20196. MT safe.</doc>
  20197. <return-value transfer-ownership="none">
  20198. <type name="none" c:type="void"/>
  20199. </return-value>
  20200. <parameters>
  20201. <instance-parameter name="message" transfer-ownership="none">
  20202. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STRUCTURE_CHANGE.</doc>
  20203. <type name="Message" c:type="GstMessage*"/>
  20204. </instance-parameter>
  20205. <parameter name="type"
  20206. direction="out"
  20207. caller-allocates="0"
  20208. transfer-ownership="full">
  20209. <doc xml:space="preserve">A pointer to hold the change type</doc>
  20210. <type name="StructureChangeType" c:type="GstStructureChangeType*"/>
  20211. </parameter>
  20212. <parameter name="owner"
  20213. direction="out"
  20214. caller-allocates="0"
  20215. transfer-ownership="none"
  20216. optional="1"
  20217. allow-none="1">
  20218. <doc xml:space="preserve">The owner element of the
  20219. message source</doc>
  20220. <type name="Element" c:type="GstElement**"/>
  20221. </parameter>
  20222. <parameter name="busy"
  20223. direction="out"
  20224. caller-allocates="0"
  20225. transfer-ownership="full"
  20226. optional="1"
  20227. allow-none="1">
  20228. <doc xml:space="preserve">a pointer to hold whether the change is in
  20229. progress or has been completed</doc>
  20230. <type name="gboolean" c:type="gboolean*"/>
  20231. </parameter>
  20232. </parameters>
  20233. </method>
  20234. <method name="parse_tag" c:identifier="gst_message_parse_tag">
  20235. <doc xml:space="preserve">Extracts the tag list from the GstMessage. The tag list returned in the
  20236. output argument is a copy; the caller must free it when done.
  20237. Typical usage of this function might be:
  20238. |[&lt;!-- language="C" --&gt;
  20239. ...
  20240. switch (GST_MESSAGE_TYPE (msg)) {
  20241. case GST_MESSAGE_TAG: {
  20242. GstTagList *tags = NULL;
  20243. gst_message_parse_tag (msg, &amp;amp;tags);
  20244. g_print ("Got tags from element %s\n", GST_OBJECT_NAME (msg-&gt;src));
  20245. handle_tags (tags);
  20246. gst_tag_list_unref (tags);
  20247. break;
  20248. }
  20249. ...
  20250. }
  20251. ...
  20252. ]|
  20253. MT safe.</doc>
  20254. <return-value transfer-ownership="none">
  20255. <type name="none" c:type="void"/>
  20256. </return-value>
  20257. <parameters>
  20258. <instance-parameter name="message" transfer-ownership="none">
  20259. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_TAG.</doc>
  20260. <type name="Message" c:type="GstMessage*"/>
  20261. </instance-parameter>
  20262. <parameter name="tag_list"
  20263. direction="out"
  20264. caller-allocates="0"
  20265. transfer-ownership="full">
  20266. <doc xml:space="preserve">return location for the tag-list.</doc>
  20267. <type name="TagList" c:type="GstTagList**"/>
  20268. </parameter>
  20269. </parameters>
  20270. </method>
  20271. <method name="parse_toc" c:identifier="gst_message_parse_toc">
  20272. <doc xml:space="preserve">Extract the TOC from the #GstMessage. The TOC returned in the
  20273. output argument is a copy; the caller must free it with
  20274. gst_toc_unref() when done.
  20275. MT safe.</doc>
  20276. <return-value transfer-ownership="none">
  20277. <type name="none" c:type="void"/>
  20278. </return-value>
  20279. <parameters>
  20280. <instance-parameter name="message" transfer-ownership="none">
  20281. <doc xml:space="preserve">a valid #GstMessage of type GST_MESSAGE_TOC.</doc>
  20282. <type name="Message" c:type="GstMessage*"/>
  20283. </instance-parameter>
  20284. <parameter name="toc"
  20285. direction="out"
  20286. caller-allocates="0"
  20287. transfer-ownership="full">
  20288. <doc xml:space="preserve">return location for the TOC.</doc>
  20289. <type name="Toc" c:type="GstToc**"/>
  20290. </parameter>
  20291. <parameter name="updated"
  20292. direction="out"
  20293. caller-allocates="0"
  20294. transfer-ownership="full">
  20295. <doc xml:space="preserve">return location for the updated flag.</doc>
  20296. <type name="gboolean" c:type="gboolean*"/>
  20297. </parameter>
  20298. </parameters>
  20299. </method>
  20300. <method name="parse_warning" c:identifier="gst_message_parse_warning">
  20301. <doc xml:space="preserve">Extracts the GError and debug string from the GstMessage. The values returned
  20302. in the output arguments are copies; the caller must free them when done.
  20303. MT safe.</doc>
  20304. <return-value transfer-ownership="none">
  20305. <type name="none" c:type="void"/>
  20306. </return-value>
  20307. <parameters>
  20308. <instance-parameter name="message" transfer-ownership="none">
  20309. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_WARNING.</doc>
  20310. <type name="Message" c:type="GstMessage*"/>
  20311. </instance-parameter>
  20312. <parameter name="gerror"
  20313. direction="out"
  20314. caller-allocates="0"
  20315. transfer-ownership="full"
  20316. optional="1"
  20317. allow-none="1">
  20318. <doc xml:space="preserve">location for the GError</doc>
  20319. <type name="GLib.Error" c:type="GError**"/>
  20320. </parameter>
  20321. <parameter name="debug"
  20322. direction="out"
  20323. caller-allocates="0"
  20324. transfer-ownership="full"
  20325. optional="1"
  20326. allow-none="1">
  20327. <doc xml:space="preserve">location for the debug message,
  20328. or %NULL</doc>
  20329. <type name="utf8" c:type="gchar**"/>
  20330. </parameter>
  20331. </parameters>
  20332. </method>
  20333. <method name="set_buffering_stats"
  20334. c:identifier="gst_message_set_buffering_stats">
  20335. <doc xml:space="preserve">Configures the buffering stats values in @message.</doc>
  20336. <return-value transfer-ownership="none">
  20337. <type name="none" c:type="void"/>
  20338. </return-value>
  20339. <parameters>
  20340. <instance-parameter name="message" transfer-ownership="none">
  20341. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_BUFFERING.</doc>
  20342. <type name="Message" c:type="GstMessage*"/>
  20343. </instance-parameter>
  20344. <parameter name="mode" transfer-ownership="none">
  20345. <doc xml:space="preserve">a buffering mode</doc>
  20346. <type name="BufferingMode" c:type="GstBufferingMode"/>
  20347. </parameter>
  20348. <parameter name="avg_in" transfer-ownership="none">
  20349. <doc xml:space="preserve">the average input rate</doc>
  20350. <type name="gint" c:type="gint"/>
  20351. </parameter>
  20352. <parameter name="avg_out" transfer-ownership="none">
  20353. <doc xml:space="preserve">the average output rate</doc>
  20354. <type name="gint" c:type="gint"/>
  20355. </parameter>
  20356. <parameter name="buffering_left" transfer-ownership="none">
  20357. <doc xml:space="preserve">amount of buffering time left in milliseconds</doc>
  20358. <type name="gint64" c:type="gint64"/>
  20359. </parameter>
  20360. </parameters>
  20361. </method>
  20362. <method name="set_group_id"
  20363. c:identifier="gst_message_set_group_id"
  20364. version="1.2">
  20365. <doc xml:space="preserve">Sets the group id on the stream-start message.
  20366. All streams that have the same group id are supposed to be played
  20367. together, i.e. all streams inside a container file should have the
  20368. same group id but different stream ids. The group id should change
  20369. each time the stream is started, resulting in different group ids
  20370. each time a file is played for example.
  20371. MT safe.</doc>
  20372. <return-value transfer-ownership="none">
  20373. <type name="none" c:type="void"/>
  20374. </return-value>
  20375. <parameters>
  20376. <instance-parameter name="message" transfer-ownership="none">
  20377. <doc xml:space="preserve">the message</doc>
  20378. <type name="Message" c:type="GstMessage*"/>
  20379. </instance-parameter>
  20380. <parameter name="group_id" transfer-ownership="none">
  20381. <doc xml:space="preserve">the group id</doc>
  20382. <type name="guint" c:type="guint"/>
  20383. </parameter>
  20384. </parameters>
  20385. </method>
  20386. <method name="set_qos_stats" c:identifier="gst_message_set_qos_stats">
  20387. <doc xml:space="preserve">Set the QoS stats representing the history of the current continuous pipeline
  20388. playback period.
  20389. When @format is @GST_FORMAT_UNDEFINED both @dropped and @processed are
  20390. invalid. Values of -1 for either @processed or @dropped mean unknown values.
  20391. MT safe.</doc>
  20392. <return-value transfer-ownership="none">
  20393. <type name="none" c:type="void"/>
  20394. </return-value>
  20395. <parameters>
  20396. <instance-parameter name="message" transfer-ownership="none">
  20397. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
  20398. <type name="Message" c:type="GstMessage*"/>
  20399. </instance-parameter>
  20400. <parameter name="format" transfer-ownership="none">
  20401. <doc xml:space="preserve">Units of the 'processed' and 'dropped' fields. Video sinks and video
  20402. filters will use GST_FORMAT_BUFFERS (frames). Audio sinks and audio filters
  20403. will likely use GST_FORMAT_DEFAULT (samples).</doc>
  20404. <type name="Format" c:type="GstFormat"/>
  20405. </parameter>
  20406. <parameter name="processed" transfer-ownership="none">
  20407. <doc xml:space="preserve">Total number of units correctly processed since the last state
  20408. change to READY or a flushing operation.</doc>
  20409. <type name="guint64" c:type="guint64"/>
  20410. </parameter>
  20411. <parameter name="dropped" transfer-ownership="none">
  20412. <doc xml:space="preserve">Total number of units dropped since the last state change to READY
  20413. or a flushing operation.</doc>
  20414. <type name="guint64" c:type="guint64"/>
  20415. </parameter>
  20416. </parameters>
  20417. </method>
  20418. <method name="set_qos_values" c:identifier="gst_message_set_qos_values">
  20419. <doc xml:space="preserve">Set the QoS values that have been calculated/analysed from the QoS data
  20420. MT safe.</doc>
  20421. <return-value transfer-ownership="none">
  20422. <type name="none" c:type="void"/>
  20423. </return-value>
  20424. <parameters>
  20425. <instance-parameter name="message" transfer-ownership="none">
  20426. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_QOS.</doc>
  20427. <type name="Message" c:type="GstMessage*"/>
  20428. </instance-parameter>
  20429. <parameter name="jitter" transfer-ownership="none">
  20430. <doc xml:space="preserve">The difference of the running-time against the deadline.</doc>
  20431. <type name="gint64" c:type="gint64"/>
  20432. </parameter>
  20433. <parameter name="proportion" transfer-ownership="none">
  20434. <doc xml:space="preserve">Long term prediction of the ideal rate relative to normal rate
  20435. to get optimal quality.</doc>
  20436. <type name="gdouble" c:type="gdouble"/>
  20437. </parameter>
  20438. <parameter name="quality" transfer-ownership="none">
  20439. <doc xml:space="preserve">An element dependent integer value that specifies the current
  20440. quality level of the element. The default maximum quality is 1000000.</doc>
  20441. <type name="gint" c:type="gint"/>
  20442. </parameter>
  20443. </parameters>
  20444. </method>
  20445. <method name="set_seqnum" c:identifier="gst_message_set_seqnum">
  20446. <doc xml:space="preserve">Set the sequence number of a message.
  20447. This function might be called by the creator of a message to indicate that
  20448. the message relates to other messages or events. See gst_message_get_seqnum()
  20449. for more information.
  20450. MT safe.</doc>
  20451. <return-value transfer-ownership="none">
  20452. <type name="none" c:type="void"/>
  20453. </return-value>
  20454. <parameters>
  20455. <instance-parameter name="message" transfer-ownership="none">
  20456. <doc xml:space="preserve">A #GstMessage.</doc>
  20457. <type name="Message" c:type="GstMessage*"/>
  20458. </instance-parameter>
  20459. <parameter name="seqnum" transfer-ownership="none">
  20460. <doc xml:space="preserve">A sequence number.</doc>
  20461. <type name="guint32" c:type="guint32"/>
  20462. </parameter>
  20463. </parameters>
  20464. </method>
  20465. <method name="set_stream_status_object"
  20466. c:identifier="gst_message_set_stream_status_object">
  20467. <doc xml:space="preserve">Configures the object handling the streaming thread. This is usually a
  20468. GstTask object but other objects might be added in the future.</doc>
  20469. <return-value transfer-ownership="none">
  20470. <type name="none" c:type="void"/>
  20471. </return-value>
  20472. <parameters>
  20473. <instance-parameter name="message" transfer-ownership="none">
  20474. <doc xml:space="preserve">A valid #GstMessage of type GST_MESSAGE_STREAM_STATUS.</doc>
  20475. <type name="Message" c:type="GstMessage*"/>
  20476. </instance-parameter>
  20477. <parameter name="object" transfer-ownership="none">
  20478. <doc xml:space="preserve">the object controlling the streaming</doc>
  20479. <type name="GObject.Value" c:type="const GValue*"/>
  20480. </parameter>
  20481. </parameters>
  20482. </method>
  20483. </record>
  20484. <bitfield name="MessageType"
  20485. glib:type-name="GstMessageType"
  20486. glib:get-type="gst_message_type_get_type"
  20487. c:type="GstMessageType">
  20488. <doc xml:space="preserve">The different message types that are available.</doc>
  20489. <member name="unknown"
  20490. value="0"
  20491. c:identifier="GST_MESSAGE_UNKNOWN"
  20492. glib:nick="unknown">
  20493. <doc xml:space="preserve">an undefined message</doc>
  20494. </member>
  20495. <member name="eos"
  20496. value="1"
  20497. c:identifier="GST_MESSAGE_EOS"
  20498. glib:nick="eos">
  20499. <doc xml:space="preserve">end-of-stream reached in a pipeline. The application will
  20500. only receive this message in the PLAYING state and every time it sets a
  20501. pipeline to PLAYING that is in the EOS state. The application can perform a
  20502. flushing seek in the pipeline, which will undo the EOS state again.</doc>
  20503. </member>
  20504. <member name="error"
  20505. value="2"
  20506. c:identifier="GST_MESSAGE_ERROR"
  20507. glib:nick="error">
  20508. <doc xml:space="preserve">an error occurred. When the application receives an error
  20509. message it should stop playback of the pipeline and not assume that more
  20510. data will be played.</doc>
  20511. </member>
  20512. <member name="warning"
  20513. value="4"
  20514. c:identifier="GST_MESSAGE_WARNING"
  20515. glib:nick="warning">
  20516. <doc xml:space="preserve">a warning occurred.</doc>
  20517. </member>
  20518. <member name="info"
  20519. value="8"
  20520. c:identifier="GST_MESSAGE_INFO"
  20521. glib:nick="info">
  20522. <doc xml:space="preserve">an info message occurred</doc>
  20523. </member>
  20524. <member name="tag"
  20525. value="16"
  20526. c:identifier="GST_MESSAGE_TAG"
  20527. glib:nick="tag">
  20528. <doc xml:space="preserve">a tag was found.</doc>
  20529. </member>
  20530. <member name="buffering"
  20531. value="32"
  20532. c:identifier="GST_MESSAGE_BUFFERING"
  20533. glib:nick="buffering">
  20534. <doc xml:space="preserve">the pipeline is buffering. When the application
  20535. receives a buffering message in the PLAYING state for a non-live pipeline it
  20536. must PAUSE the pipeline until the buffering completes, when the percentage
  20537. field in the message is 100%. For live pipelines, no action must be
  20538. performed and the buffering percentage can be used to inform the user about
  20539. the progress.</doc>
  20540. </member>
  20541. <member name="state_changed"
  20542. value="64"
  20543. c:identifier="GST_MESSAGE_STATE_CHANGED"
  20544. glib:nick="state-changed">
  20545. <doc xml:space="preserve">a state change happened</doc>
  20546. </member>
  20547. <member name="state_dirty"
  20548. value="128"
  20549. c:identifier="GST_MESSAGE_STATE_DIRTY"
  20550. glib:nick="state-dirty">
  20551. <doc xml:space="preserve">an element changed state in a streaming thread.
  20552. This message is deprecated.</doc>
  20553. </member>
  20554. <member name="step_done"
  20555. value="256"
  20556. c:identifier="GST_MESSAGE_STEP_DONE"
  20557. glib:nick="step-done">
  20558. <doc xml:space="preserve">a stepping operation finished.</doc>
  20559. </member>
  20560. <member name="clock_provide"
  20561. value="512"
  20562. c:identifier="GST_MESSAGE_CLOCK_PROVIDE"
  20563. glib:nick="clock-provide">
  20564. <doc xml:space="preserve">an element notifies its capability of providing
  20565. a clock. This message is used internally and
  20566. never forwarded to the application.</doc>
  20567. </member>
  20568. <member name="clock_lost"
  20569. value="1024"
  20570. c:identifier="GST_MESSAGE_CLOCK_LOST"
  20571. glib:nick="clock-lost">
  20572. <doc xml:space="preserve">The current clock as selected by the pipeline became
  20573. unusable. The pipeline will select a new clock on
  20574. the next PLAYING state change. The application
  20575. should set the pipeline to PAUSED and back to
  20576. PLAYING when this message is received.</doc>
  20577. </member>
  20578. <member name="new_clock"
  20579. value="2048"
  20580. c:identifier="GST_MESSAGE_NEW_CLOCK"
  20581. glib:nick="new-clock">
  20582. <doc xml:space="preserve">a new clock was selected in the pipeline.</doc>
  20583. </member>
  20584. <member name="structure_change"
  20585. value="4096"
  20586. c:identifier="GST_MESSAGE_STRUCTURE_CHANGE"
  20587. glib:nick="structure-change">
  20588. <doc xml:space="preserve">the structure of the pipeline changed. This
  20589. message is used internally and never forwarded to the application.</doc>
  20590. </member>
  20591. <member name="stream_status"
  20592. value="8192"
  20593. c:identifier="GST_MESSAGE_STREAM_STATUS"
  20594. glib:nick="stream-status">
  20595. <doc xml:space="preserve">status about a stream, emitted when it starts,
  20596. stops, errors, etc..</doc>
  20597. </member>
  20598. <member name="application"
  20599. value="16384"
  20600. c:identifier="GST_MESSAGE_APPLICATION"
  20601. glib:nick="application">
  20602. <doc xml:space="preserve">message posted by the application, possibly
  20603. via an application-specific element.</doc>
  20604. </member>
  20605. <member name="element"
  20606. value="32768"
  20607. c:identifier="GST_MESSAGE_ELEMENT"
  20608. glib:nick="element">
  20609. <doc xml:space="preserve">element-specific message, see the specific element's
  20610. documentation</doc>
  20611. </member>
  20612. <member name="segment_start"
  20613. value="65536"
  20614. c:identifier="GST_MESSAGE_SEGMENT_START"
  20615. glib:nick="segment-start">
  20616. <doc xml:space="preserve">pipeline started playback of a segment. This
  20617. message is used internally and never forwarded to the application.</doc>
  20618. </member>
  20619. <member name="segment_done"
  20620. value="131072"
  20621. c:identifier="GST_MESSAGE_SEGMENT_DONE"
  20622. glib:nick="segment-done">
  20623. <doc xml:space="preserve">pipeline completed playback of a segment. This
  20624. message is forwarded to the application after all elements that posted
  20625. @GST_MESSAGE_SEGMENT_START posted a GST_MESSAGE_SEGMENT_DONE message.</doc>
  20626. </member>
  20627. <member name="duration_changed"
  20628. value="262144"
  20629. c:identifier="GST_MESSAGE_DURATION_CHANGED"
  20630. glib:nick="duration-changed">
  20631. <doc xml:space="preserve">The duration of a pipeline changed. The
  20632. application can get the new duration with a duration query.</doc>
  20633. </member>
  20634. <member name="latency"
  20635. value="524288"
  20636. c:identifier="GST_MESSAGE_LATENCY"
  20637. glib:nick="latency">
  20638. <doc xml:space="preserve">Posted by elements when their latency changes. The
  20639. application should recalculate and distribute a new latency.</doc>
  20640. </member>
  20641. <member name="async_start"
  20642. value="1048576"
  20643. c:identifier="GST_MESSAGE_ASYNC_START"
  20644. glib:nick="async-start">
  20645. <doc xml:space="preserve">Posted by elements when they start an ASYNC
  20646. #GstStateChange. This message is not forwarded to the application but is used
  20647. internally.</doc>
  20648. </member>
  20649. <member name="async_done"
  20650. value="2097152"
  20651. c:identifier="GST_MESSAGE_ASYNC_DONE"
  20652. glib:nick="async-done">
  20653. <doc xml:space="preserve">Posted by elements when they complete an ASYNC
  20654. #GstStateChange. The application will only receive this message from the toplevel
  20655. pipeline.</doc>
  20656. </member>
  20657. <member name="request_state"
  20658. value="4194304"
  20659. c:identifier="GST_MESSAGE_REQUEST_STATE"
  20660. glib:nick="request-state">
  20661. <doc xml:space="preserve">Posted by elements when they want the pipeline to
  20662. change state. This message is a suggestion to the application which can
  20663. decide to perform the state change on (part of) the pipeline.</doc>
  20664. </member>
  20665. <member name="step_start"
  20666. value="8388608"
  20667. c:identifier="GST_MESSAGE_STEP_START"
  20668. glib:nick="step-start">
  20669. <doc xml:space="preserve">A stepping operation was started.</doc>
  20670. </member>
  20671. <member name="qos"
  20672. value="16777216"
  20673. c:identifier="GST_MESSAGE_QOS"
  20674. glib:nick="qos">
  20675. <doc xml:space="preserve">A buffer was dropped or an element changed its processing
  20676. strategy for Quality of Service reasons.</doc>
  20677. </member>
  20678. <member name="progress"
  20679. value="33554432"
  20680. c:identifier="GST_MESSAGE_PROGRESS"
  20681. glib:nick="progress">
  20682. <doc xml:space="preserve">A progress message.</doc>
  20683. </member>
  20684. <member name="toc"
  20685. value="67108864"
  20686. c:identifier="GST_MESSAGE_TOC"
  20687. glib:nick="toc">
  20688. <doc xml:space="preserve">A new table of contents (TOC) was found or previously found TOC
  20689. was updated.</doc>
  20690. </member>
  20691. <member name="reset_time"
  20692. value="134217728"
  20693. c:identifier="GST_MESSAGE_RESET_TIME"
  20694. glib:nick="reset-time">
  20695. <doc xml:space="preserve">Message to request resetting the pipeline's
  20696. running time from the pipeline. This is an internal message which
  20697. applications will likely never receive.</doc>
  20698. </member>
  20699. <member name="stream_start"
  20700. value="268435456"
  20701. c:identifier="GST_MESSAGE_STREAM_START"
  20702. glib:nick="stream-start">
  20703. <doc xml:space="preserve">Message indicating start of a new stream. Useful
  20704. e.g. when using playbin in gapless playback mode, to get notified when
  20705. the next title actually starts playing (which will be some time after
  20706. the URI for the next title has been set).</doc>
  20707. </member>
  20708. <member name="need_context"
  20709. value="536870912"
  20710. c:identifier="GST_MESSAGE_NEED_CONTEXT"
  20711. glib:nick="need-context">
  20712. <doc xml:space="preserve">Message indicating that an element wants a specific context (Since 1.2)</doc>
  20713. </member>
  20714. <member name="have_context"
  20715. value="1073741824"
  20716. c:identifier="GST_MESSAGE_HAVE_CONTEXT"
  20717. glib:nick="have-context">
  20718. <doc xml:space="preserve">Message indicating that an element created a context (Since 1.2)</doc>
  20719. </member>
  20720. <member name="extended"
  20721. value="2147483648"
  20722. c:identifier="GST_MESSAGE_EXTENDED"
  20723. glib:nick="extended">
  20724. <doc xml:space="preserve">Message is an extended message type (see below).
  20725. These extended message IDs can't be used directly with mask-based API
  20726. like gst_bus_poll() or gst_bus_timed_pop_filtered(), but you can still
  20727. filter for GST_MESSAGE_EXTENDED and then check the result for the
  20728. specific type. (Since 1.4)</doc>
  20729. </member>
  20730. <member name="device_added"
  20731. value="2147483649"
  20732. c:identifier="GST_MESSAGE_DEVICE_ADDED"
  20733. glib:nick="device-added">
  20734. <doc xml:space="preserve">Message indicating a #GstDevice was added to
  20735. a #GstDeviceProvider (Since 1.4)</doc>
  20736. </member>
  20737. <member name="device_removed"
  20738. value="2147483650"
  20739. c:identifier="GST_MESSAGE_DEVICE_REMOVED"
  20740. glib:nick="device-removed">
  20741. <doc xml:space="preserve">Message indicating a #GstDevice was removed
  20742. from a #GstDeviceProvider (Since 1.4)</doc>
  20743. </member>
  20744. <member name="any"
  20745. value="4294967295"
  20746. c:identifier="GST_MESSAGE_ANY"
  20747. glib:nick="any">
  20748. <doc xml:space="preserve">mask for all of the above messages.</doc>
  20749. </member>
  20750. <function name="get_name" c:identifier="gst_message_type_get_name">
  20751. <doc xml:space="preserve">Get a printable name for the given message type. Do not modify or free.</doc>
  20752. <return-value transfer-ownership="none">
  20753. <doc xml:space="preserve">a reference to the static name of the message.</doc>
  20754. <type name="utf8" c:type="const gchar*"/>
  20755. </return-value>
  20756. <parameters>
  20757. <parameter name="type" transfer-ownership="none">
  20758. <doc xml:space="preserve">the message type</doc>
  20759. <type name="MessageType" c:type="GstMessageType"/>
  20760. </parameter>
  20761. </parameters>
  20762. </function>
  20763. <function name="to_quark" c:identifier="gst_message_type_to_quark">
  20764. <doc xml:space="preserve">Get the unique quark for the given message type.</doc>
  20765. <return-value transfer-ownership="none">
  20766. <doc xml:space="preserve">the quark associated with the message type</doc>
  20767. <type name="GLib.Quark" c:type="GQuark"/>
  20768. </return-value>
  20769. <parameters>
  20770. <parameter name="type" transfer-ownership="none">
  20771. <doc xml:space="preserve">the message type</doc>
  20772. <type name="MessageType" c:type="GstMessageType"/>
  20773. </parameter>
  20774. </parameters>
  20775. </function>
  20776. </bitfield>
  20777. <record name="Meta" c:type="GstMeta">
  20778. <doc xml:space="preserve">The #GstMeta structure should be included as the first member of a #GstBuffer
  20779. metadata structure. The structure defines the API of the metadata and should
  20780. be accessible to all elements using the metadata.
  20781. A metadata API is registered with gst_meta_api_type_register() which takes a
  20782. name for the metadata API and some tags associated with the metadata.
  20783. With gst_meta_api_type_has_tag() one can check if a certain metadata API
  20784. contains a given tag.
  20785. Multiple implementations of a metadata API can be registered.
  20786. To implement a metadata API, gst_meta_register() should be used. This
  20787. function takes all parameters needed to create, free and transform metadata
  20788. along with the size of the metadata. The function returns a #GstMetaInfo
  20789. structure that contains the information for the implementation of the API.
  20790. A specific implementation can be retrieved by name with gst_meta_get_info().
  20791. See #GstBuffer for how the metadata can be added, retrieved and removed from
  20792. buffers.</doc>
  20793. <field name="flags" writable="1">
  20794. <doc xml:space="preserve">extra flags for the metadata</doc>
  20795. <type name="MetaFlags" c:type="GstMetaFlags"/>
  20796. </field>
  20797. <field name="info" writable="1">
  20798. <doc xml:space="preserve">pointer to the #GstMetaInfo</doc>
  20799. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  20800. </field>
  20801. <function name="api_type_get_tags"
  20802. c:identifier="gst_meta_api_type_get_tags"
  20803. version="1.2">
  20804. <return-value transfer-ownership="none">
  20805. <doc xml:space="preserve">an array of tags as strings.</doc>
  20806. <array c:type="gchar**">
  20807. <type name="utf8"/>
  20808. </array>
  20809. </return-value>
  20810. <parameters>
  20811. <parameter name="api" transfer-ownership="none">
  20812. <doc xml:space="preserve">an API</doc>
  20813. <type name="GType" c:type="GType"/>
  20814. </parameter>
  20815. </parameters>
  20816. </function>
  20817. <function name="api_type_has_tag"
  20818. c:identifier="gst_meta_api_type_has_tag">
  20819. <doc xml:space="preserve">Check if @api was registered with @tag.</doc>
  20820. <return-value transfer-ownership="none">
  20821. <doc xml:space="preserve">%TRUE if @api was registered with @tag.</doc>
  20822. <type name="gboolean" c:type="gboolean"/>
  20823. </return-value>
  20824. <parameters>
  20825. <parameter name="api" transfer-ownership="none">
  20826. <doc xml:space="preserve">an API</doc>
  20827. <type name="GType" c:type="GType"/>
  20828. </parameter>
  20829. <parameter name="tag" transfer-ownership="none">
  20830. <doc xml:space="preserve">the tag to check</doc>
  20831. <type name="GLib.Quark" c:type="GQuark"/>
  20832. </parameter>
  20833. </parameters>
  20834. </function>
  20835. <function name="api_type_register"
  20836. c:identifier="gst_meta_api_type_register">
  20837. <doc xml:space="preserve">Register and return a GType for the @api and associate it with
  20838. @tags.</doc>
  20839. <return-value transfer-ownership="none">
  20840. <doc xml:space="preserve">a unique GType for @api.</doc>
  20841. <type name="GType" c:type="GType"/>
  20842. </return-value>
  20843. <parameters>
  20844. <parameter name="api" transfer-ownership="none">
  20845. <doc xml:space="preserve">an API to register</doc>
  20846. <type name="utf8" c:type="const gchar*"/>
  20847. </parameter>
  20848. <parameter name="tags" transfer-ownership="none">
  20849. <doc xml:space="preserve">tags for @api</doc>
  20850. <type name="utf8" c:type="const gchar**"/>
  20851. </parameter>
  20852. </parameters>
  20853. </function>
  20854. <function name="get_info" c:identifier="gst_meta_get_info">
  20855. <doc xml:space="preserve">Lookup a previously registered meta info structure by its implementation name
  20856. @impl.</doc>
  20857. <return-value transfer-ownership="none" nullable="1">
  20858. <doc xml:space="preserve">a #GstMetaInfo with @impl, or
  20859. %NULL when no such metainfo exists.</doc>
  20860. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  20861. </return-value>
  20862. <parameters>
  20863. <parameter name="impl" transfer-ownership="none">
  20864. <doc xml:space="preserve">the name</doc>
  20865. <type name="utf8" c:type="const gchar*"/>
  20866. </parameter>
  20867. </parameters>
  20868. </function>
  20869. <function name="register" c:identifier="gst_meta_register">
  20870. <doc xml:space="preserve">Register a new #GstMeta implementation.
  20871. The same @info can be retrieved later with gst_meta_get_info() by using
  20872. @impl as the key.</doc>
  20873. <return-value transfer-ownership="none">
  20874. <doc xml:space="preserve">a #GstMetaInfo that can be used to access metadata.</doc>
  20875. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  20876. </return-value>
  20877. <parameters>
  20878. <parameter name="api" transfer-ownership="none">
  20879. <doc xml:space="preserve">the type of the #GstMeta API</doc>
  20880. <type name="GType" c:type="GType"/>
  20881. </parameter>
  20882. <parameter name="impl" transfer-ownership="none">
  20883. <doc xml:space="preserve">the name of the #GstMeta implementation</doc>
  20884. <type name="utf8" c:type="const gchar*"/>
  20885. </parameter>
  20886. <parameter name="size" transfer-ownership="none">
  20887. <doc xml:space="preserve">the size of the #GstMeta structure</doc>
  20888. <type name="gsize" c:type="gsize"/>
  20889. </parameter>
  20890. <parameter name="init_func" transfer-ownership="none" scope="async">
  20891. <doc xml:space="preserve">a #GstMetaInitFunction</doc>
  20892. <type name="MetaInitFunction" c:type="GstMetaInitFunction"/>
  20893. </parameter>
  20894. <parameter name="free_func" transfer-ownership="none" scope="async">
  20895. <doc xml:space="preserve">a #GstMetaFreeFunction</doc>
  20896. <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/>
  20897. </parameter>
  20898. <parameter name="transform_func"
  20899. transfer-ownership="none"
  20900. scope="async">
  20901. <doc xml:space="preserve">a #GstMetaTransformFunction</doc>
  20902. <type name="MetaTransformFunction"
  20903. c:type="GstMetaTransformFunction"/>
  20904. </parameter>
  20905. </parameters>
  20906. </function>
  20907. </record>
  20908. <bitfield name="MetaFlags"
  20909. glib:type-name="GstMetaFlags"
  20910. glib:get-type="gst_meta_flags_get_type"
  20911. c:type="GstMetaFlags">
  20912. <doc xml:space="preserve">Extra metadata flags.</doc>
  20913. <member name="none"
  20914. value="0"
  20915. c:identifier="GST_META_FLAG_NONE"
  20916. glib:nick="none">
  20917. <doc xml:space="preserve">no flags</doc>
  20918. </member>
  20919. <member name="readonly"
  20920. value="1"
  20921. c:identifier="GST_META_FLAG_READONLY"
  20922. glib:nick="readonly">
  20923. <doc xml:space="preserve">metadata should not be modified</doc>
  20924. </member>
  20925. <member name="pooled"
  20926. value="2"
  20927. c:identifier="GST_META_FLAG_POOLED"
  20928. glib:nick="pooled">
  20929. <doc xml:space="preserve">metadata is managed by a bufferpool</doc>
  20930. </member>
  20931. <member name="locked"
  20932. value="4"
  20933. c:identifier="GST_META_FLAG_LOCKED"
  20934. glib:nick="locked">
  20935. <doc xml:space="preserve">metadata should not be removed</doc>
  20936. </member>
  20937. <member name="last"
  20938. value="65536"
  20939. c:identifier="GST_META_FLAG_LAST"
  20940. glib:nick="last">
  20941. <doc xml:space="preserve">additional flags can be added starting from this flag.</doc>
  20942. </member>
  20943. </bitfield>
  20944. <callback name="MetaFreeFunction" c:type="GstMetaFreeFunction">
  20945. <doc xml:space="preserve">Function called when @meta is freed in @buffer.</doc>
  20946. <return-value transfer-ownership="none">
  20947. <type name="none" c:type="void"/>
  20948. </return-value>
  20949. <parameters>
  20950. <parameter name="meta" transfer-ownership="none">
  20951. <doc xml:space="preserve">a #GstMeta</doc>
  20952. <type name="Meta" c:type="GstMeta*"/>
  20953. </parameter>
  20954. <parameter name="buffer" transfer-ownership="none">
  20955. <doc xml:space="preserve">a #GstBuffer</doc>
  20956. <type name="Buffer" c:type="GstBuffer*"/>
  20957. </parameter>
  20958. </parameters>
  20959. </callback>
  20960. <record name="MetaInfo" c:type="GstMetaInfo">
  20961. <doc xml:space="preserve">The #GstMetaInfo provides information about a specific metadata
  20962. structure.</doc>
  20963. <field name="api" writable="1">
  20964. <doc xml:space="preserve">tag identifying the metadata structure and api</doc>
  20965. <type name="GType" c:type="GType"/>
  20966. </field>
  20967. <field name="type" writable="1">
  20968. <doc xml:space="preserve">type identifying the implementor of the api</doc>
  20969. <type name="GType" c:type="GType"/>
  20970. </field>
  20971. <field name="size" writable="1">
  20972. <doc xml:space="preserve">size of the metadata</doc>
  20973. <type name="gsize" c:type="gsize"/>
  20974. </field>
  20975. <field name="init_func" writable="1">
  20976. <doc xml:space="preserve">function for initializing the metadata</doc>
  20977. <type name="MetaInitFunction" c:type="GstMetaInitFunction"/>
  20978. </field>
  20979. <field name="free_func" writable="1">
  20980. <doc xml:space="preserve">function for freeing the metadata</doc>
  20981. <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/>
  20982. </field>
  20983. <field name="transform_func" writable="1">
  20984. <doc xml:space="preserve">function for transforming the metadata</doc>
  20985. <type name="MetaTransformFunction" c:type="GstMetaTransformFunction"/>
  20986. </field>
  20987. <field name="_gst_reserved" readable="0" private="1">
  20988. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  20989. <type name="gpointer" c:type="gpointer"/>
  20990. </array>
  20991. </field>
  20992. </record>
  20993. <callback name="MetaInitFunction" c:type="GstMetaInitFunction">
  20994. <doc xml:space="preserve">Function called when @meta is initialized in @buffer.</doc>
  20995. <return-value transfer-ownership="none">
  20996. <type name="gboolean" c:type="gboolean"/>
  20997. </return-value>
  20998. <parameters>
  20999. <parameter name="meta" transfer-ownership="none">
  21000. <doc xml:space="preserve">a #GstMeta</doc>
  21001. <type name="Meta" c:type="GstMeta*"/>
  21002. </parameter>
  21003. <parameter name="params"
  21004. transfer-ownership="none"
  21005. nullable="1"
  21006. allow-none="1">
  21007. <doc xml:space="preserve">parameters passed to the init function</doc>
  21008. <type name="gpointer" c:type="gpointer"/>
  21009. </parameter>
  21010. <parameter name="buffer" transfer-ownership="none">
  21011. <doc xml:space="preserve">a #GstBuffer</doc>
  21012. <type name="Buffer" c:type="GstBuffer*"/>
  21013. </parameter>
  21014. </parameters>
  21015. </callback>
  21016. <record name="MetaTransformCopy" c:type="GstMetaTransformCopy">
  21017. <doc xml:space="preserve">Extra data passed to a "gst-copy" transform #GstMetaTransformFunction.</doc>
  21018. <field name="region" writable="1">
  21019. <doc xml:space="preserve">%TRUE if only region is copied</doc>
  21020. <type name="gboolean" c:type="gboolean"/>
  21021. </field>
  21022. <field name="offset" writable="1">
  21023. <doc xml:space="preserve">the offset to copy, 0 if @region is %FALSE, otherwise &gt; 0</doc>
  21024. <type name="gsize" c:type="gsize"/>
  21025. </field>
  21026. <field name="size" writable="1">
  21027. <doc xml:space="preserve">the size to copy, -1 or the buffer size when @region is %FALSE</doc>
  21028. <type name="gsize" c:type="gsize"/>
  21029. </field>
  21030. </record>
  21031. <callback name="MetaTransformFunction" c:type="GstMetaTransformFunction">
  21032. <doc xml:space="preserve">Function called for each @meta in @buffer as a result of performing a
  21033. transformation on @transbuf. Additional @type specific transform data
  21034. is passed to the function as @data.
  21035. Implementations should check the @type of the transform and parse
  21036. additional type specific fields in @data that should be used to update
  21037. the metadata on @transbuf.</doc>
  21038. <return-value transfer-ownership="none">
  21039. <doc xml:space="preserve">%TRUE if the transform could be performed</doc>
  21040. <type name="gboolean" c:type="gboolean"/>
  21041. </return-value>
  21042. <parameters>
  21043. <parameter name="transbuf" transfer-ownership="none">
  21044. <doc xml:space="preserve">a #GstBuffer</doc>
  21045. <type name="Buffer" c:type="GstBuffer*"/>
  21046. </parameter>
  21047. <parameter name="meta" transfer-ownership="none">
  21048. <doc xml:space="preserve">a #GstMeta</doc>
  21049. <type name="Meta" c:type="GstMeta*"/>
  21050. </parameter>
  21051. <parameter name="buffer" transfer-ownership="none">
  21052. <doc xml:space="preserve">a #GstBuffer</doc>
  21053. <type name="Buffer" c:type="GstBuffer*"/>
  21054. </parameter>
  21055. <parameter name="type" transfer-ownership="none">
  21056. <doc xml:space="preserve">the transform type</doc>
  21057. <type name="GLib.Quark" c:type="GQuark"/>
  21058. </parameter>
  21059. <parameter name="data"
  21060. transfer-ownership="none"
  21061. nullable="1"
  21062. allow-none="1">
  21063. <doc xml:space="preserve">transform specific data.</doc>
  21064. <type name="gpointer" c:type="gpointer"/>
  21065. </parameter>
  21066. </parameters>
  21067. </callback>
  21068. <record name="MiniObject" c:type="GstMiniObject">
  21069. <doc xml:space="preserve">#GstMiniObject is a simple structure that can be used to implement refcounted
  21070. types.
  21071. Subclasses will include #GstMiniObject as the first member in their structure
  21072. and then call gst_mini_object_init() to initialize the #GstMiniObject fields.
  21073. gst_mini_object_ref() and gst_mini_object_unref() increment and decrement the
  21074. refcount respectively. When the refcount of a mini-object reaches 0, the
  21075. dispose function is called first and when this returns %TRUE, the free
  21076. function of the miniobject is called.
  21077. A copy can be made with gst_mini_object_copy().
  21078. gst_mini_object_is_writable() will return %TRUE when the refcount of the
  21079. object is exactly 1, meaning the current caller has the only reference to the
  21080. object. gst_mini_object_make_writable() will return a writable version of the
  21081. object, which might be a new copy when the refcount was not 1.
  21082. Opaque data can be associated with a #GstMiniObject with
  21083. gst_mini_object_set_qdata() and gst_mini_object_get_qdata(). The data is
  21084. meant to be specific to the particular object and is not automatically copied
  21085. with gst_mini_object_copy() or similar methods.
  21086. A weak reference can be added and remove with gst_mini_object_weak_ref()
  21087. and gst_mini_object_weak_unref() respectively.</doc>
  21088. <field name="type" writable="1">
  21089. <doc xml:space="preserve">the GType of the object</doc>
  21090. <type name="GType" c:type="GType"/>
  21091. </field>
  21092. <field name="refcount" writable="1">
  21093. <doc xml:space="preserve">atomic refcount</doc>
  21094. <type name="gint" c:type="gint"/>
  21095. </field>
  21096. <field name="lockstate" writable="1">
  21097. <doc xml:space="preserve">atomic state of the locks</doc>
  21098. <type name="gint" c:type="gint"/>
  21099. </field>
  21100. <field name="flags" writable="1">
  21101. <doc xml:space="preserve">extra flags.</doc>
  21102. <type name="guint" c:type="guint"/>
  21103. </field>
  21104. <field name="copy" introspectable="0" writable="1">
  21105. <doc xml:space="preserve">a copy function</doc>
  21106. <type name="MiniObjectCopyFunction"
  21107. c:type="GstMiniObjectCopyFunction"/>
  21108. </field>
  21109. <field name="dispose" writable="1">
  21110. <doc xml:space="preserve">a dispose function</doc>
  21111. <type name="MiniObjectDisposeFunction"
  21112. c:type="GstMiniObjectDisposeFunction"/>
  21113. </field>
  21114. <field name="free" writable="1">
  21115. <doc xml:space="preserve">the free function</doc>
  21116. <type name="MiniObjectFreeFunction"
  21117. c:type="GstMiniObjectFreeFunction"/>
  21118. </field>
  21119. <field name="n_qdata" readable="0" private="1">
  21120. <type name="guint" c:type="guint"/>
  21121. </field>
  21122. <field name="qdata" readable="0" private="1">
  21123. <type name="gpointer" c:type="gpointer"/>
  21124. </field>
  21125. <method name="copy"
  21126. c:identifier="gst_mini_object_copy"
  21127. introspectable="0">
  21128. <doc xml:space="preserve">Creates a copy of the mini-object.
  21129. MT safe</doc>
  21130. <return-value transfer-ownership="full">
  21131. <doc xml:space="preserve">the new mini-object.</doc>
  21132. <type name="MiniObject" c:type="GstMiniObject*"/>
  21133. </return-value>
  21134. <parameters>
  21135. <instance-parameter name="mini_object" transfer-ownership="none">
  21136. <doc xml:space="preserve">the mini-object to copy</doc>
  21137. <type name="MiniObject" c:type="const GstMiniObject*"/>
  21138. </instance-parameter>
  21139. </parameters>
  21140. </method>
  21141. <method name="get_qdata" c:identifier="gst_mini_object_get_qdata">
  21142. <doc xml:space="preserve">This function gets back user data pointers stored via
  21143. gst_mini_object_set_qdata().</doc>
  21144. <return-value transfer-ownership="none" nullable="1">
  21145. <doc xml:space="preserve">The user data pointer set, or
  21146. %NULL</doc>
  21147. <type name="gpointer" c:type="gpointer"/>
  21148. </return-value>
  21149. <parameters>
  21150. <instance-parameter name="object" transfer-ownership="none">
  21151. <doc xml:space="preserve">The GstMiniObject to get a stored user data pointer from</doc>
  21152. <type name="MiniObject" c:type="GstMiniObject*"/>
  21153. </instance-parameter>
  21154. <parameter name="quark" transfer-ownership="none">
  21155. <doc xml:space="preserve">A #GQuark, naming the user data pointer</doc>
  21156. <type name="GLib.Quark" c:type="GQuark"/>
  21157. </parameter>
  21158. </parameters>
  21159. </method>
  21160. <method name="init"
  21161. c:identifier="gst_mini_object_init"
  21162. introspectable="0">
  21163. <doc xml:space="preserve">Initializes a mini-object with the desired type and copy/dispose/free
  21164. functions.</doc>
  21165. <return-value transfer-ownership="none">
  21166. <type name="none" c:type="void"/>
  21167. </return-value>
  21168. <parameters>
  21169. <instance-parameter name="mini_object" transfer-ownership="none">
  21170. <doc xml:space="preserve">a #GstMiniObject</doc>
  21171. <type name="MiniObject" c:type="GstMiniObject*"/>
  21172. </instance-parameter>
  21173. <parameter name="flags" transfer-ownership="none">
  21174. <doc xml:space="preserve">initial #GstMiniObjectFlags</doc>
  21175. <type name="guint" c:type="guint"/>
  21176. </parameter>
  21177. <parameter name="type" transfer-ownership="none">
  21178. <doc xml:space="preserve">the #GType of the mini-object to create</doc>
  21179. <type name="GType" c:type="GType"/>
  21180. </parameter>
  21181. <parameter name="copy_func"
  21182. transfer-ownership="none"
  21183. nullable="1"
  21184. allow-none="1">
  21185. <doc xml:space="preserve">the copy function, or %NULL</doc>
  21186. <type name="MiniObjectCopyFunction"
  21187. c:type="GstMiniObjectCopyFunction"/>
  21188. </parameter>
  21189. <parameter name="dispose_func"
  21190. transfer-ownership="none"
  21191. nullable="1"
  21192. allow-none="1">
  21193. <doc xml:space="preserve">the dispose function, or %NULL</doc>
  21194. <type name="MiniObjectDisposeFunction"
  21195. c:type="GstMiniObjectDisposeFunction"/>
  21196. </parameter>
  21197. <parameter name="free_func"
  21198. transfer-ownership="none"
  21199. nullable="1"
  21200. allow-none="1">
  21201. <doc xml:space="preserve">the free function or %NULL</doc>
  21202. <type name="MiniObjectFreeFunction"
  21203. c:type="GstMiniObjectFreeFunction"/>
  21204. </parameter>
  21205. </parameters>
  21206. </method>
  21207. <method name="is_writable" c:identifier="gst_mini_object_is_writable">
  21208. <doc xml:space="preserve">If @mini_object has the LOCKABLE flag set, check if the current EXCLUSIVE
  21209. lock on @object is the only one, this means that changes to the object will
  21210. not be visible to any other object.
  21211. If the LOCKABLE flag is not set, check if the refcount of @mini_object is
  21212. exactly 1, meaning that no other reference exists to the object and that the
  21213. object is therefore writable.
  21214. Modification of a mini-object should only be done after verifying that it
  21215. is writable.</doc>
  21216. <return-value transfer-ownership="none">
  21217. <doc xml:space="preserve">%TRUE if the object is writable.</doc>
  21218. <type name="gboolean" c:type="gboolean"/>
  21219. </return-value>
  21220. <parameters>
  21221. <instance-parameter name="mini_object" transfer-ownership="none">
  21222. <doc xml:space="preserve">the mini-object to check</doc>
  21223. <type name="MiniObject" c:type="const GstMiniObject*"/>
  21224. </instance-parameter>
  21225. </parameters>
  21226. </method>
  21227. <method name="lock" c:identifier="gst_mini_object_lock">
  21228. <doc xml:space="preserve">Lock the mini-object with the specified access mode in @flags.</doc>
  21229. <return-value transfer-ownership="none">
  21230. <doc xml:space="preserve">%TRUE if @object could be locked.</doc>
  21231. <type name="gboolean" c:type="gboolean"/>
  21232. </return-value>
  21233. <parameters>
  21234. <instance-parameter name="object" transfer-ownership="none">
  21235. <doc xml:space="preserve">the mini-object to lock</doc>
  21236. <type name="MiniObject" c:type="GstMiniObject*"/>
  21237. </instance-parameter>
  21238. <parameter name="flags" transfer-ownership="none">
  21239. <doc xml:space="preserve">#GstLockFlags</doc>
  21240. <type name="LockFlags" c:type="GstLockFlags"/>
  21241. </parameter>
  21242. </parameters>
  21243. </method>
  21244. <method name="make_writable"
  21245. c:identifier="gst_mini_object_make_writable"
  21246. introspectable="0">
  21247. <doc xml:space="preserve">Checks if a mini-object is writable. If not, a writable copy is made and
  21248. returned. This gives away the reference to the original mini object,
  21249. and returns a reference to the new object.
  21250. MT safe</doc>
  21251. <return-value transfer-ownership="full">
  21252. <doc xml:space="preserve">a mini-object (possibly the same pointer) that
  21253. is writable.</doc>
  21254. <type name="MiniObject" c:type="GstMiniObject*"/>
  21255. </return-value>
  21256. <parameters>
  21257. <instance-parameter name="mini_object" transfer-ownership="full">
  21258. <doc xml:space="preserve">the mini-object to make writable</doc>
  21259. <type name="MiniObject" c:type="GstMiniObject*"/>
  21260. </instance-parameter>
  21261. </parameters>
  21262. </method>
  21263. <method name="ref" c:identifier="gst_mini_object_ref" introspectable="0">
  21264. <doc xml:space="preserve">Increase the reference count of the mini-object.
  21265. Note that the refcount affects the writability
  21266. of @mini-object, see gst_mini_object_is_writable(). It is
  21267. important to note that keeping additional references to
  21268. GstMiniObject instances can potentially increase the number
  21269. of memcpy operations in a pipeline, especially if the miniobject
  21270. is a #GstBuffer.</doc>
  21271. <return-value transfer-ownership="full">
  21272. <doc xml:space="preserve">the mini-object.</doc>
  21273. <type name="MiniObject" c:type="GstMiniObject*"/>
  21274. </return-value>
  21275. <parameters>
  21276. <instance-parameter name="mini_object" transfer-ownership="none">
  21277. <doc xml:space="preserve">the mini-object</doc>
  21278. <type name="MiniObject" c:type="GstMiniObject*"/>
  21279. </instance-parameter>
  21280. </parameters>
  21281. </method>
  21282. <method name="set_qdata" c:identifier="gst_mini_object_set_qdata">
  21283. <doc xml:space="preserve">This sets an opaque, named pointer on a miniobject.
  21284. The name is specified through a #GQuark (retrieved e.g. via
  21285. g_quark_from_static_string()), and the pointer
  21286. can be gotten back from the @object with gst_mini_object_get_qdata()
  21287. until the @object is disposed.
  21288. Setting a previously set user data pointer, overrides (frees)
  21289. the old pointer set, using %NULL as pointer essentially
  21290. removes the data stored.
  21291. @destroy may be specified which is called with @data as argument
  21292. when the @object is disposed, or the data is being overwritten by
  21293. a call to gst_mini_object_set_qdata() with the same @quark.</doc>
  21294. <return-value transfer-ownership="none">
  21295. <type name="none" c:type="void"/>
  21296. </return-value>
  21297. <parameters>
  21298. <instance-parameter name="object" transfer-ownership="none">
  21299. <doc xml:space="preserve">a #GstMiniObject</doc>
  21300. <type name="MiniObject" c:type="GstMiniObject*"/>
  21301. </instance-parameter>
  21302. <parameter name="quark" transfer-ownership="none">
  21303. <doc xml:space="preserve">A #GQuark, naming the user data pointer</doc>
  21304. <type name="GLib.Quark" c:type="GQuark"/>
  21305. </parameter>
  21306. <parameter name="data"
  21307. transfer-ownership="none"
  21308. nullable="1"
  21309. allow-none="1">
  21310. <doc xml:space="preserve">An opaque user data pointer</doc>
  21311. <type name="gpointer" c:type="gpointer"/>
  21312. </parameter>
  21313. <parameter name="destroy" transfer-ownership="none" scope="async">
  21314. <doc xml:space="preserve">Function to invoke with @data as argument, when @data
  21315. needs to be freed</doc>
  21316. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  21317. </parameter>
  21318. </parameters>
  21319. </method>
  21320. <method name="steal_qdata" c:identifier="gst_mini_object_steal_qdata">
  21321. <doc xml:space="preserve">This function gets back user data pointers stored via gst_mini_object_set_qdata()
  21322. and removes the data from @object without invoking its destroy() function (if
  21323. any was set).</doc>
  21324. <return-value transfer-ownership="full" nullable="1">
  21325. <doc xml:space="preserve">The user data pointer set, or
  21326. %NULL</doc>
  21327. <type name="gpointer" c:type="gpointer"/>
  21328. </return-value>
  21329. <parameters>
  21330. <instance-parameter name="object" transfer-ownership="none">
  21331. <doc xml:space="preserve">The GstMiniObject to get a stored user data pointer from</doc>
  21332. <type name="MiniObject" c:type="GstMiniObject*"/>
  21333. </instance-parameter>
  21334. <parameter name="quark" transfer-ownership="none">
  21335. <doc xml:space="preserve">A #GQuark, naming the user data pointer</doc>
  21336. <type name="GLib.Quark" c:type="GQuark"/>
  21337. </parameter>
  21338. </parameters>
  21339. </method>
  21340. <method name="unlock" c:identifier="gst_mini_object_unlock">
  21341. <doc xml:space="preserve">Unlock the mini-object with the specified access mode in @flags.</doc>
  21342. <return-value transfer-ownership="none">
  21343. <type name="none" c:type="void"/>
  21344. </return-value>
  21345. <parameters>
  21346. <instance-parameter name="object" transfer-ownership="none">
  21347. <doc xml:space="preserve">the mini-object to unlock</doc>
  21348. <type name="MiniObject" c:type="GstMiniObject*"/>
  21349. </instance-parameter>
  21350. <parameter name="flags" transfer-ownership="none">
  21351. <doc xml:space="preserve">#GstLockFlags</doc>
  21352. <type name="LockFlags" c:type="GstLockFlags"/>
  21353. </parameter>
  21354. </parameters>
  21355. </method>
  21356. <method name="unref"
  21357. c:identifier="gst_mini_object_unref"
  21358. introspectable="0">
  21359. <doc xml:space="preserve">Decreases the reference count of the mini-object, possibly freeing
  21360. the mini-object.</doc>
  21361. <return-value transfer-ownership="none">
  21362. <type name="none" c:type="void"/>
  21363. </return-value>
  21364. <parameters>
  21365. <instance-parameter name="mini_object" transfer-ownership="none">
  21366. <doc xml:space="preserve">the mini-object</doc>
  21367. <type name="MiniObject" c:type="GstMiniObject*"/>
  21368. </instance-parameter>
  21369. </parameters>
  21370. </method>
  21371. <method name="weak_ref"
  21372. c:identifier="gst_mini_object_weak_ref"
  21373. introspectable="0">
  21374. <doc xml:space="preserve">Adds a weak reference callback to a mini object. Weak references are
  21375. used for notification when a mini object is finalized. They are called
  21376. "weak references" because they allow you to safely hold a pointer
  21377. to the mini object without calling gst_mini_object_ref()
  21378. (gst_mini_object_ref() adds a strong reference, that is, forces the object
  21379. to stay alive).</doc>
  21380. <return-value transfer-ownership="none">
  21381. <type name="none" c:type="void"/>
  21382. </return-value>
  21383. <parameters>
  21384. <instance-parameter name="object" transfer-ownership="none">
  21385. <doc xml:space="preserve">#GstMiniObject to reference weakly</doc>
  21386. <type name="MiniObject" c:type="GstMiniObject*"/>
  21387. </instance-parameter>
  21388. <parameter name="notify" transfer-ownership="none" closure="1">
  21389. <doc xml:space="preserve">callback to invoke before the mini object is freed</doc>
  21390. <type name="MiniObjectNotify" c:type="GstMiniObjectNotify"/>
  21391. </parameter>
  21392. <parameter name="data"
  21393. transfer-ownership="none"
  21394. nullable="1"
  21395. allow-none="1">
  21396. <doc xml:space="preserve">extra data to pass to notify</doc>
  21397. <type name="gpointer" c:type="gpointer"/>
  21398. </parameter>
  21399. </parameters>
  21400. </method>
  21401. <method name="weak_unref"
  21402. c:identifier="gst_mini_object_weak_unref"
  21403. introspectable="0">
  21404. <doc xml:space="preserve">Removes a weak reference callback from a mini object.</doc>
  21405. <return-value transfer-ownership="none">
  21406. <type name="none" c:type="void"/>
  21407. </return-value>
  21408. <parameters>
  21409. <instance-parameter name="object" transfer-ownership="none">
  21410. <doc xml:space="preserve">#GstMiniObject to remove a weak reference from</doc>
  21411. <type name="MiniObject" c:type="GstMiniObject*"/>
  21412. </instance-parameter>
  21413. <parameter name="notify" transfer-ownership="none" closure="1">
  21414. <doc xml:space="preserve">callback to search for</doc>
  21415. <type name="MiniObjectNotify" c:type="GstMiniObjectNotify"/>
  21416. </parameter>
  21417. <parameter name="data"
  21418. transfer-ownership="none"
  21419. nullable="1"
  21420. allow-none="1">
  21421. <doc xml:space="preserve">data to search for</doc>
  21422. <type name="gpointer" c:type="gpointer"/>
  21423. </parameter>
  21424. </parameters>
  21425. </method>
  21426. <function name="replace" c:identifier="gst_mini_object_replace">
  21427. <doc xml:space="preserve">Atomically modifies a pointer to point to a new mini-object.
  21428. The reference count of @olddata is decreased and the reference count of
  21429. @newdata is increased.
  21430. Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
  21431. <return-value transfer-ownership="none">
  21432. <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
  21433. <type name="gboolean" c:type="gboolean"/>
  21434. </return-value>
  21435. <parameters>
  21436. <parameter name="olddata"
  21437. direction="inout"
  21438. caller-allocates="0"
  21439. transfer-ownership="full"
  21440. nullable="1"
  21441. allow-none="1">
  21442. <doc xml:space="preserve">pointer to a pointer to a
  21443. mini-object to be replaced</doc>
  21444. <type name="MiniObject" c:type="GstMiniObject**"/>
  21445. </parameter>
  21446. <parameter name="newdata"
  21447. transfer-ownership="none"
  21448. nullable="1"
  21449. allow-none="1">
  21450. <doc xml:space="preserve">pointer to new mini-object</doc>
  21451. <type name="MiniObject" c:type="GstMiniObject*"/>
  21452. </parameter>
  21453. </parameters>
  21454. </function>
  21455. <function name="steal"
  21456. c:identifier="gst_mini_object_steal"
  21457. introspectable="0">
  21458. <doc xml:space="preserve">Replace the current #GstMiniObject pointer to by @olddata with %NULL and
  21459. return the old value.</doc>
  21460. <return-value>
  21461. <doc xml:space="preserve">the #GstMiniObject at @oldata</doc>
  21462. <type name="MiniObject" c:type="GstMiniObject*"/>
  21463. </return-value>
  21464. <parameters>
  21465. <parameter name="olddata"
  21466. direction="inout"
  21467. caller-allocates="0"
  21468. transfer-ownership="full">
  21469. <doc xml:space="preserve">pointer to a pointer to a mini-object to
  21470. be stolen</doc>
  21471. <type name="MiniObject" c:type="GstMiniObject**"/>
  21472. </parameter>
  21473. </parameters>
  21474. </function>
  21475. <function name="take" c:identifier="gst_mini_object_take">
  21476. <doc xml:space="preserve">Modifies a pointer to point to a new mini-object. The modification
  21477. is done atomically. This version is similar to gst_mini_object_replace()
  21478. except that it does not increase the refcount of @newdata and thus
  21479. takes ownership of @newdata.
  21480. Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
  21481. <return-value transfer-ownership="none">
  21482. <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
  21483. <type name="gboolean" c:type="gboolean"/>
  21484. </return-value>
  21485. <parameters>
  21486. <parameter name="olddata"
  21487. direction="inout"
  21488. caller-allocates="0"
  21489. transfer-ownership="full">
  21490. <doc xml:space="preserve">pointer to a pointer to a mini-object to
  21491. be replaced</doc>
  21492. <type name="MiniObject" c:type="GstMiniObject**"/>
  21493. </parameter>
  21494. <parameter name="newdata" transfer-ownership="none">
  21495. <doc xml:space="preserve">pointer to new mini-object</doc>
  21496. <type name="MiniObject" c:type="GstMiniObject*"/>
  21497. </parameter>
  21498. </parameters>
  21499. </function>
  21500. </record>
  21501. <callback name="MiniObjectCopyFunction"
  21502. c:type="GstMiniObjectCopyFunction"
  21503. introspectable="0">
  21504. <doc xml:space="preserve">Function prototype for methods to create copies of instances.</doc>
  21505. <return-value>
  21506. <doc xml:space="preserve">reference to cloned instance.</doc>
  21507. <type name="MiniObject" c:type="GstMiniObject*"/>
  21508. </return-value>
  21509. <parameters>
  21510. <parameter name="obj" transfer-ownership="none">
  21511. <doc xml:space="preserve">MiniObject to copy</doc>
  21512. <type name="MiniObject" c:type="const GstMiniObject*"/>
  21513. </parameter>
  21514. </parameters>
  21515. </callback>
  21516. <callback name="MiniObjectDisposeFunction"
  21517. c:type="GstMiniObjectDisposeFunction">
  21518. <doc xml:space="preserve">Function prototype for when a miniobject has lost its last refcount.
  21519. Implementation of the mini object are allowed to revive the
  21520. passed object by doing a gst_mini_object_ref(). If the object is not
  21521. revived after the dispose function, the function should return %TRUE
  21522. and the memory associated with the object is freed.</doc>
  21523. <return-value transfer-ownership="none">
  21524. <doc xml:space="preserve">%TRUE if the object should be cleaned up.</doc>
  21525. <type name="gboolean" c:type="gboolean"/>
  21526. </return-value>
  21527. <parameters>
  21528. <parameter name="obj" transfer-ownership="none">
  21529. <doc xml:space="preserve">MiniObject to dispose</doc>
  21530. <type name="MiniObject" c:type="GstMiniObject*"/>
  21531. </parameter>
  21532. </parameters>
  21533. </callback>
  21534. <bitfield name="MiniObjectFlags"
  21535. glib:type-name="GstMiniObjectFlags"
  21536. glib:get-type="gst_mini_object_flags_get_type"
  21537. c:type="GstMiniObjectFlags">
  21538. <doc xml:space="preserve">Flags for the mini object</doc>
  21539. <member name="lockable"
  21540. value="1"
  21541. c:identifier="GST_MINI_OBJECT_FLAG_LOCKABLE"
  21542. glib:nick="lockable">
  21543. <doc xml:space="preserve">the object can be locked and unlocked with
  21544. gst_mini_object_lock() and gst_mini_object_unlock().</doc>
  21545. </member>
  21546. <member name="lock_readonly"
  21547. value="2"
  21548. c:identifier="GST_MINI_OBJECT_FLAG_LOCK_READONLY"
  21549. glib:nick="lock-readonly">
  21550. <doc xml:space="preserve">the object is permanently locked in
  21551. READONLY mode. Only read locks can be performed on the object.</doc>
  21552. </member>
  21553. <member name="last"
  21554. value="16"
  21555. c:identifier="GST_MINI_OBJECT_FLAG_LAST"
  21556. glib:nick="last">
  21557. <doc xml:space="preserve">first flag that can be used by subclasses.</doc>
  21558. </member>
  21559. </bitfield>
  21560. <callback name="MiniObjectFreeFunction" c:type="GstMiniObjectFreeFunction">
  21561. <doc xml:space="preserve">Virtual function prototype for methods to free resources used by
  21562. mini-objects.</doc>
  21563. <return-value transfer-ownership="none">
  21564. <type name="none" c:type="void"/>
  21565. </return-value>
  21566. <parameters>
  21567. <parameter name="obj" transfer-ownership="none">
  21568. <doc xml:space="preserve">MiniObject to free</doc>
  21569. <type name="MiniObject" c:type="GstMiniObject*"/>
  21570. </parameter>
  21571. </parameters>
  21572. </callback>
  21573. <callback name="MiniObjectNotify" c:type="GstMiniObjectNotify">
  21574. <doc xml:space="preserve">A #GstMiniObjectNotify function can be added to a mini object as a
  21575. callback that gets triggered when gst_mini_object_unref() drops the
  21576. last ref and @obj is about to be freed.</doc>
  21577. <return-value transfer-ownership="none">
  21578. <type name="none" c:type="void"/>
  21579. </return-value>
  21580. <parameters>
  21581. <parameter name="user_data"
  21582. transfer-ownership="none"
  21583. nullable="1"
  21584. allow-none="1"
  21585. closure="0">
  21586. <doc xml:space="preserve">data that was provided when the notify was added</doc>
  21587. <type name="gpointer" c:type="gpointer"/>
  21588. </parameter>
  21589. <parameter name="obj" transfer-ownership="none">
  21590. <doc xml:space="preserve">the mini object</doc>
  21591. <type name="MiniObject" c:type="GstMiniObject*"/>
  21592. </parameter>
  21593. </parameters>
  21594. </callback>
  21595. <constant name="NSECOND" value="1" c:type="GST_NSECOND">
  21596. <doc xml:space="preserve">Constant that defines one GStreamer nanosecond</doc>
  21597. <type name="gint" c:type="gint"/>
  21598. </constant>
  21599. <class name="Object"
  21600. c:symbol-prefix="object"
  21601. c:type="GstObject"
  21602. parent="GObject.InitiallyUnowned"
  21603. abstract="1"
  21604. glib:type-name="GstObject"
  21605. glib:get-type="gst_object_get_type"
  21606. glib:type-struct="ObjectClass">
  21607. <doc xml:space="preserve">#GstObject provides a root for the object hierarchy tree filed in by the
  21608. GStreamer library. It is currently a thin wrapper on top of
  21609. #GInitiallyUnowned. It is an abstract class that is not very usable on its own.
  21610. #GstObject gives us basic refcounting, parenting functionality and locking.
  21611. Most of the functions are just extended for special GStreamer needs and can be
  21612. found under the same name in the base class of #GstObject which is #GObject
  21613. (e.g. g_object_ref() becomes gst_object_ref()).
  21614. Since #GstObject derives from #GInitiallyUnowned, it also inherits the
  21615. floating reference. Be aware that functions such as gst_bin_add() and
  21616. gst_element_add_pad() take ownership of the floating reference.
  21617. In contrast to #GObject instances, #GstObject adds a name property. The functions
  21618. gst_object_set_name() and gst_object_get_name() are used to set/get the name
  21619. of the object.
  21620. &lt;refsect2&gt;
  21621. &lt;title&gt;controlled properties&lt;/title&gt;
  21622. &lt;para&gt;
  21623. Controlled properties offers a lightweight way to adjust gobject properties
  21624. over stream-time. It works by using time-stamped value pairs that are queued
  21625. for element-properties. At run-time the elements continuously pull value
  21626. changes for the current stream-time.
  21627. What needs to be changed in a #GstElement?
  21628. Very little - it is just two steps to make a plugin controllable!
  21629. &lt;orderedlist&gt;
  21630. &lt;listitem&gt;&lt;para&gt;
  21631. mark gobject-properties paramspecs that make sense to be controlled,
  21632. by GST_PARAM_CONTROLLABLE.
  21633. &lt;/para&gt;&lt;/listitem&gt;
  21634. &lt;listitem&gt;&lt;para&gt;
  21635. when processing data (get, chain, loop function) at the beginning call
  21636. gst_object_sync_values(element,timestamp).
  21637. This will make the controller update all GObject properties that are
  21638. under its control with the current values based on the timestamp.
  21639. &lt;/para&gt;&lt;/listitem&gt;
  21640. &lt;/orderedlist&gt;
  21641. What needs to be done in applications?
  21642. Again it's not a lot to change.
  21643. &lt;orderedlist&gt;
  21644. &lt;listitem&gt;&lt;para&gt;
  21645. create a #GstControlSource.
  21646. csource = gst_interpolation_control_source_new ();
  21647. g_object_set (csource, "mode", GST_INTERPOLATION_MODE_LINEAR, NULL);
  21648. &lt;/para&gt;&lt;/listitem&gt;
  21649. &lt;listitem&gt;&lt;para&gt;
  21650. Attach the #GstControlSource on the controller to a property.
  21651. gst_object_add_control_binding (object, gst_direct_control_binding_new (object, "prop1", csource));
  21652. &lt;/para&gt;&lt;/listitem&gt;
  21653. &lt;listitem&gt;&lt;para&gt;
  21654. Set the control values
  21655. gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,0 * GST_SECOND, value1);
  21656. gst_timed_value_control_source_set ((GstTimedValueControlSource *)csource,1 * GST_SECOND, value2);
  21657. &lt;/para&gt;&lt;/listitem&gt;
  21658. &lt;listitem&gt;&lt;para&gt;
  21659. start your pipeline
  21660. &lt;/para&gt;&lt;/listitem&gt;
  21661. &lt;/orderedlist&gt;
  21662. &lt;/para&gt;
  21663. &lt;/refsect2&gt;</doc>
  21664. <function name="check_uniqueness"
  21665. c:identifier="gst_object_check_uniqueness">
  21666. <doc xml:space="preserve">Checks to see if there is any object named @name in @list. This function
  21667. does not do any locking of any kind. You might want to protect the
  21668. provided list with the lock of the owner of the list. This function
  21669. will lock each #GstObject in the list to compare the name, so be
  21670. careful when passing a list with a locked object.</doc>
  21671. <return-value transfer-ownership="none">
  21672. <doc xml:space="preserve">%TRUE if a #GstObject named @name does not appear in @list,
  21673. %FALSE if it does.
  21674. MT safe. Grabs and releases the LOCK of each object in the list.</doc>
  21675. <type name="gboolean" c:type="gboolean"/>
  21676. </return-value>
  21677. <parameters>
  21678. <parameter name="list" transfer-ownership="none">
  21679. <doc xml:space="preserve">a list of #GstObject to
  21680. check through</doc>
  21681. <type name="GLib.List" c:type="GList*">
  21682. <type name="Object"/>
  21683. </type>
  21684. </parameter>
  21685. <parameter name="name" transfer-ownership="none">
  21686. <doc xml:space="preserve">the name to search for</doc>
  21687. <type name="utf8" c:type="const gchar*"/>
  21688. </parameter>
  21689. </parameters>
  21690. </function>
  21691. <function name="default_deep_notify"
  21692. c:identifier="gst_object_default_deep_notify">
  21693. <doc xml:space="preserve">A default deep_notify signal callback for an object. The user data
  21694. should contain a pointer to an array of strings that should be excluded
  21695. from the notify. The default handler will print the new value of the property
  21696. using g_print.
  21697. MT safe. This function grabs and releases @object's LOCK for getting its
  21698. path string.</doc>
  21699. <return-value transfer-ownership="none">
  21700. <type name="none" c:type="void"/>
  21701. </return-value>
  21702. <parameters>
  21703. <parameter name="object" transfer-ownership="none">
  21704. <doc xml:space="preserve">the #GObject that signalled the notify.</doc>
  21705. <type name="GObject.Object" c:type="GObject*"/>
  21706. </parameter>
  21707. <parameter name="orig" transfer-ownership="none">
  21708. <doc xml:space="preserve">a #GstObject that initiated the notify.</doc>
  21709. <type name="Object" c:type="GstObject*"/>
  21710. </parameter>
  21711. <parameter name="pspec" transfer-ownership="none">
  21712. <doc xml:space="preserve">a #GParamSpec of the property.</doc>
  21713. <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
  21714. </parameter>
  21715. <parameter name="excluded_props"
  21716. transfer-ownership="none"
  21717. nullable="1"
  21718. allow-none="1">
  21719. <doc xml:space="preserve">
  21720. a set of user-specified properties to exclude or %NULL to show
  21721. all changes.</doc>
  21722. <array c:type="gchar**">
  21723. <type name="utf8"/>
  21724. </array>
  21725. </parameter>
  21726. </parameters>
  21727. </function>
  21728. <function name="ref_sink"
  21729. c:identifier="gst_object_ref_sink"
  21730. introspectable="0">
  21731. <doc xml:space="preserve">Increase the reference count of @object, and possibly remove the floating
  21732. reference, if @object has a floating reference.
  21733. In other words, if the object is floating, then this call "assumes ownership"
  21734. of the floating reference, converting it to a normal reference by clearing
  21735. the floating flag while leaving the reference count unchanged. If the object
  21736. is not floating, then this call adds a new normal reference increasing the
  21737. reference count by one.</doc>
  21738. <return-value transfer-ownership="none" nullable="1">
  21739. <type name="gpointer" c:type="gpointer"/>
  21740. </return-value>
  21741. <parameters>
  21742. <parameter name="object"
  21743. transfer-ownership="none"
  21744. nullable="1"
  21745. allow-none="1">
  21746. <doc xml:space="preserve">a #GstObject to sink</doc>
  21747. <type name="gpointer" c:type="gpointer"/>
  21748. </parameter>
  21749. </parameters>
  21750. </function>
  21751. <function name="replace" c:identifier="gst_object_replace">
  21752. <doc xml:space="preserve">Atomically modifies a pointer to point to a new object.
  21753. The reference count of @oldobj is decreased and the reference count of
  21754. @newobj is increased.
  21755. Either @newobj and the value pointed to by @oldobj may be %NULL.</doc>
  21756. <return-value transfer-ownership="none">
  21757. <doc xml:space="preserve">%TRUE if @newobj was different from @oldobj</doc>
  21758. <type name="gboolean" c:type="gboolean"/>
  21759. </return-value>
  21760. <parameters>
  21761. <parameter name="oldobj"
  21762. direction="inout"
  21763. caller-allocates="0"
  21764. transfer-ownership="full"
  21765. nullable="1"
  21766. allow-none="1">
  21767. <doc xml:space="preserve">pointer to a place of
  21768. a #GstObject to replace</doc>
  21769. <type name="Object" c:type="GstObject**"/>
  21770. </parameter>
  21771. <parameter name="newobj"
  21772. transfer-ownership="none"
  21773. nullable="1"
  21774. allow-none="1">
  21775. <doc xml:space="preserve">a new #GstObject</doc>
  21776. <type name="Object" c:type="GstObject*"/>
  21777. </parameter>
  21778. </parameters>
  21779. </function>
  21780. <virtual-method name="deep_notify">
  21781. <return-value transfer-ownership="none">
  21782. <type name="none" c:type="void"/>
  21783. </return-value>
  21784. <parameters>
  21785. <instance-parameter name="object" transfer-ownership="none">
  21786. <type name="Object" c:type="GstObject*"/>
  21787. </instance-parameter>
  21788. <parameter name="orig" transfer-ownership="none">
  21789. <type name="Object" c:type="GstObject*"/>
  21790. </parameter>
  21791. <parameter name="pspec" transfer-ownership="none">
  21792. <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
  21793. </parameter>
  21794. </parameters>
  21795. </virtual-method>
  21796. <method name="add_control_binding"
  21797. c:identifier="gst_object_add_control_binding">
  21798. <doc xml:space="preserve">Attach the #GstControlBinding to the object. If there already was a
  21799. #GstControlBinding for this property it will be replaced.
  21800. The @object will take ownership of the @binding.</doc>
  21801. <return-value transfer-ownership="none">
  21802. <doc xml:space="preserve">%FALSE if the given @binding has not been setup for this object or
  21803. has been setup for a non suitable property, %TRUE otherwise.</doc>
  21804. <type name="gboolean" c:type="gboolean"/>
  21805. </return-value>
  21806. <parameters>
  21807. <instance-parameter name="object" transfer-ownership="none">
  21808. <doc xml:space="preserve">the controller object</doc>
  21809. <type name="Object" c:type="GstObject*"/>
  21810. </instance-parameter>
  21811. <parameter name="binding" transfer-ownership="full">
  21812. <doc xml:space="preserve">the #GstControlBinding that should be used</doc>
  21813. <type name="ControlBinding" c:type="GstControlBinding*"/>
  21814. </parameter>
  21815. </parameters>
  21816. </method>
  21817. <method name="default_error" c:identifier="gst_object_default_error">
  21818. <doc xml:space="preserve">A default error function that uses g_printerr() to display the error message
  21819. and the optional debug sting..
  21820. The default handler will simply print the error string using g_print.</doc>
  21821. <return-value transfer-ownership="none">
  21822. <type name="none" c:type="void"/>
  21823. </return-value>
  21824. <parameters>
  21825. <instance-parameter name="source" transfer-ownership="none">
  21826. <doc xml:space="preserve">the #GstObject that initiated the error.</doc>
  21827. <type name="Object" c:type="GstObject*"/>
  21828. </instance-parameter>
  21829. <parameter name="error" transfer-ownership="none">
  21830. <doc xml:space="preserve">the GError.</doc>
  21831. <type name="GLib.Error" c:type="const GError*"/>
  21832. </parameter>
  21833. <parameter name="debug"
  21834. transfer-ownership="none"
  21835. nullable="1"
  21836. allow-none="1">
  21837. <doc xml:space="preserve">an additional debug information string, or %NULL</doc>
  21838. <type name="utf8" c:type="const gchar*"/>
  21839. </parameter>
  21840. </parameters>
  21841. </method>
  21842. <method name="get_control_binding"
  21843. c:identifier="gst_object_get_control_binding">
  21844. <doc xml:space="preserve">Gets the corresponding #GstControlBinding for the property. This should be
  21845. unreferenced again after use.</doc>
  21846. <return-value transfer-ownership="full" nullable="1">
  21847. <doc xml:space="preserve">the #GstControlBinding for
  21848. @property_name or %NULL if the property is not controlled.</doc>
  21849. <type name="ControlBinding" c:type="GstControlBinding*"/>
  21850. </return-value>
  21851. <parameters>
  21852. <instance-parameter name="object" transfer-ownership="none">
  21853. <doc xml:space="preserve">the object</doc>
  21854. <type name="Object" c:type="GstObject*"/>
  21855. </instance-parameter>
  21856. <parameter name="property_name" transfer-ownership="none">
  21857. <doc xml:space="preserve">name of the property</doc>
  21858. <type name="utf8" c:type="const gchar*"/>
  21859. </parameter>
  21860. </parameters>
  21861. </method>
  21862. <method name="get_control_rate"
  21863. c:identifier="gst_object_get_control_rate">
  21864. <doc xml:space="preserve">Obtain the control-rate for this @object. Audio processing #GstElement
  21865. objects will use this rate to sub-divide their processing loop and call
  21866. gst_object_sync_values() inbetween. The length of the processing segment
  21867. should be up to @control-rate nanoseconds.
  21868. If the @object is not under property control, this will return
  21869. %GST_CLOCK_TIME_NONE. This allows the element to avoid the sub-dividing.
  21870. The control-rate is not expected to change if the element is in
  21871. %GST_STATE_PAUSED or %GST_STATE_PLAYING.</doc>
  21872. <return-value transfer-ownership="none">
  21873. <doc xml:space="preserve">the control rate in nanoseconds</doc>
  21874. <type name="ClockTime" c:type="GstClockTime"/>
  21875. </return-value>
  21876. <parameters>
  21877. <instance-parameter name="object" transfer-ownership="none">
  21878. <doc xml:space="preserve">the object that has controlled properties</doc>
  21879. <type name="Object" c:type="GstObject*"/>
  21880. </instance-parameter>
  21881. </parameters>
  21882. </method>
  21883. <method name="get_g_value_array"
  21884. c:identifier="gst_object_get_g_value_array">
  21885. <doc xml:space="preserve">Gets a number of #GValues for the given controlled property starting at the
  21886. requested time. The array @values need to hold enough space for @n_values of
  21887. #GValue.
  21888. This function is useful if one wants to e.g. draw a graph of the control
  21889. curve or apply a control curve sample by sample.</doc>
  21890. <return-value transfer-ownership="none">
  21891. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  21892. <type name="gboolean" c:type="gboolean"/>
  21893. </return-value>
  21894. <parameters>
  21895. <instance-parameter name="object" transfer-ownership="none">
  21896. <doc xml:space="preserve">the object that has controlled properties</doc>
  21897. <type name="Object" c:type="GstObject*"/>
  21898. </instance-parameter>
  21899. <parameter name="property_name" transfer-ownership="none">
  21900. <doc xml:space="preserve">the name of the property to get</doc>
  21901. <type name="utf8" c:type="const gchar*"/>
  21902. </parameter>
  21903. <parameter name="timestamp" transfer-ownership="none">
  21904. <doc xml:space="preserve">the time that should be processed</doc>
  21905. <type name="ClockTime" c:type="GstClockTime"/>
  21906. </parameter>
  21907. <parameter name="interval" transfer-ownership="none">
  21908. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  21909. <type name="ClockTime" c:type="GstClockTime"/>
  21910. </parameter>
  21911. <parameter name="n_values" transfer-ownership="none">
  21912. <doc xml:space="preserve">the number of values</doc>
  21913. <type name="guint" c:type="guint"/>
  21914. </parameter>
  21915. <parameter name="values" transfer-ownership="none">
  21916. <doc xml:space="preserve">array to put control-values in</doc>
  21917. <type name="GObject.Value" c:type="GValue*"/>
  21918. </parameter>
  21919. </parameters>
  21920. </method>
  21921. <method name="get_name" c:identifier="gst_object_get_name">
  21922. <doc xml:space="preserve">Returns a copy of the name of @object.
  21923. Caller should g_free() the return value after usage.
  21924. For a nameless object, this returns %NULL, which you can safely g_free()
  21925. as well.
  21926. Free-function: g_free</doc>
  21927. <return-value transfer-ownership="full" nullable="1">
  21928. <doc xml:space="preserve">the name of @object. g_free()
  21929. after usage.
  21930. MT safe. This function grabs and releases @object's LOCK.</doc>
  21931. <type name="utf8" c:type="gchar*"/>
  21932. </return-value>
  21933. <parameters>
  21934. <instance-parameter name="object" transfer-ownership="none">
  21935. <doc xml:space="preserve">a #GstObject</doc>
  21936. <type name="Object" c:type="GstObject*"/>
  21937. </instance-parameter>
  21938. </parameters>
  21939. </method>
  21940. <method name="get_parent" c:identifier="gst_object_get_parent">
  21941. <doc xml:space="preserve">Returns the parent of @object. This function increases the refcount
  21942. of the parent object so you should gst_object_unref() it after usage.</doc>
  21943. <return-value transfer-ownership="full" nullable="1">
  21944. <doc xml:space="preserve">parent of @object, this can be
  21945. %NULL if @object has no parent. unref after usage.
  21946. MT safe. Grabs and releases @object's LOCK.</doc>
  21947. <type name="Object" c:type="GstObject*"/>
  21948. </return-value>
  21949. <parameters>
  21950. <instance-parameter name="object" transfer-ownership="none">
  21951. <doc xml:space="preserve">a #GstObject</doc>
  21952. <type name="Object" c:type="GstObject*"/>
  21953. </instance-parameter>
  21954. </parameters>
  21955. </method>
  21956. <method name="get_path_string" c:identifier="gst_object_get_path_string">
  21957. <doc xml:space="preserve">Generates a string describing the path of @object in
  21958. the object hierarchy. Only useful (or used) for debugging.
  21959. Free-function: g_free</doc>
  21960. <return-value transfer-ownership="full">
  21961. <doc xml:space="preserve">a string describing the path of @object. You must
  21962. g_free() the string after usage.
  21963. MT safe. Grabs and releases the #GstObject's LOCK for all objects
  21964. in the hierarchy.</doc>
  21965. <type name="utf8" c:type="gchar*"/>
  21966. </return-value>
  21967. <parameters>
  21968. <instance-parameter name="object" transfer-ownership="none">
  21969. <doc xml:space="preserve">a #GstObject</doc>
  21970. <type name="Object" c:type="GstObject*"/>
  21971. </instance-parameter>
  21972. </parameters>
  21973. </method>
  21974. <method name="get_value" c:identifier="gst_object_get_value">
  21975. <doc xml:space="preserve">Gets the value for the given controlled property at the requested time.</doc>
  21976. <return-value transfer-ownership="full" nullable="1">
  21977. <doc xml:space="preserve">the GValue of the property at the given time,
  21978. or %NULL if the property isn't controlled.</doc>
  21979. <type name="GObject.Value" c:type="GValue*"/>
  21980. </return-value>
  21981. <parameters>
  21982. <instance-parameter name="object" transfer-ownership="none">
  21983. <doc xml:space="preserve">the object that has controlled properties</doc>
  21984. <type name="Object" c:type="GstObject*"/>
  21985. </instance-parameter>
  21986. <parameter name="property_name" transfer-ownership="none">
  21987. <doc xml:space="preserve">the name of the property to get</doc>
  21988. <type name="utf8" c:type="const gchar*"/>
  21989. </parameter>
  21990. <parameter name="timestamp" transfer-ownership="none">
  21991. <doc xml:space="preserve">the time the control-change should be read from</doc>
  21992. <type name="ClockTime" c:type="GstClockTime"/>
  21993. </parameter>
  21994. </parameters>
  21995. </method>
  21996. <method name="get_value_array" c:identifier="gst_object_get_value_array">
  21997. <doc xml:space="preserve">Gets a number of values for the given controlled property starting at the
  21998. requested time. The array @values need to hold enough space for @n_values of
  21999. the same type as the objects property's type.
  22000. This function is useful if one wants to e.g. draw a graph of the control
  22001. curve or apply a control curve sample by sample.
  22002. The values are unboxed and ready to be used. The similar function
  22003. gst_object_get_g_value_array() returns the array as #GValues and is
  22004. better suites for bindings.</doc>
  22005. <return-value transfer-ownership="none">
  22006. <doc xml:space="preserve">%TRUE if the given array could be filled, %FALSE otherwise</doc>
  22007. <type name="gboolean" c:type="gboolean"/>
  22008. </return-value>
  22009. <parameters>
  22010. <instance-parameter name="object" transfer-ownership="none">
  22011. <doc xml:space="preserve">the object that has controlled properties</doc>
  22012. <type name="Object" c:type="GstObject*"/>
  22013. </instance-parameter>
  22014. <parameter name="property_name" transfer-ownership="none">
  22015. <doc xml:space="preserve">the name of the property to get</doc>
  22016. <type name="utf8" c:type="const gchar*"/>
  22017. </parameter>
  22018. <parameter name="timestamp" transfer-ownership="none">
  22019. <doc xml:space="preserve">the time that should be processed</doc>
  22020. <type name="ClockTime" c:type="GstClockTime"/>
  22021. </parameter>
  22022. <parameter name="interval" transfer-ownership="none">
  22023. <doc xml:space="preserve">the time spacing between subsequent values</doc>
  22024. <type name="ClockTime" c:type="GstClockTime"/>
  22025. </parameter>
  22026. <parameter name="n_values" transfer-ownership="none">
  22027. <doc xml:space="preserve">the number of values</doc>
  22028. <type name="guint" c:type="guint"/>
  22029. </parameter>
  22030. <parameter name="values"
  22031. transfer-ownership="none"
  22032. nullable="1"
  22033. allow-none="1">
  22034. <doc xml:space="preserve">array to put control-values in</doc>
  22035. <type name="gpointer" c:type="gpointer"/>
  22036. </parameter>
  22037. </parameters>
  22038. </method>
  22039. <method name="has_active_control_bindings"
  22040. c:identifier="gst_object_has_active_control_bindings">
  22041. <doc xml:space="preserve">Check if the @object has an active controlled properties.</doc>
  22042. <return-value transfer-ownership="none">
  22043. <doc xml:space="preserve">%TRUE if the object has active controlled properties</doc>
  22044. <type name="gboolean" c:type="gboolean"/>
  22045. </return-value>
  22046. <parameters>
  22047. <instance-parameter name="object" transfer-ownership="none">
  22048. <doc xml:space="preserve">the object that has controlled properties</doc>
  22049. <type name="Object" c:type="GstObject*"/>
  22050. </instance-parameter>
  22051. </parameters>
  22052. </method>
  22053. <method name="has_ancestor"
  22054. c:identifier="gst_object_has_ancestor"
  22055. deprecated="1">
  22056. <doc xml:space="preserve">Check if @object has an ancestor @ancestor somewhere up in
  22057. the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.</doc>
  22058. <doc-deprecated xml:space="preserve">Use gst_object_has_as_ancestor() instead.
  22059. MT safe. Grabs and releases @object's locks.</doc-deprecated>
  22060. <return-value transfer-ownership="none">
  22061. <doc xml:space="preserve">%TRUE if @ancestor is an ancestor of @object.</doc>
  22062. <type name="gboolean" c:type="gboolean"/>
  22063. </return-value>
  22064. <parameters>
  22065. <instance-parameter name="object" transfer-ownership="none">
  22066. <doc xml:space="preserve">a #GstObject to check</doc>
  22067. <type name="Object" c:type="GstObject*"/>
  22068. </instance-parameter>
  22069. <parameter name="ancestor" transfer-ownership="none">
  22070. <doc xml:space="preserve">a #GstObject to check as ancestor</doc>
  22071. <type name="Object" c:type="GstObject*"/>
  22072. </parameter>
  22073. </parameters>
  22074. </method>
  22075. <method name="has_as_ancestor" c:identifier="gst_object_has_as_ancestor">
  22076. <doc xml:space="preserve">Check if @object has an ancestor @ancestor somewhere up in
  22077. the hierarchy. One can e.g. check if a #GstElement is inside a #GstPipeline.</doc>
  22078. <return-value transfer-ownership="none">
  22079. <doc xml:space="preserve">%TRUE if @ancestor is an ancestor of @object.
  22080. MT safe. Grabs and releases @object's locks.</doc>
  22081. <type name="gboolean" c:type="gboolean"/>
  22082. </return-value>
  22083. <parameters>
  22084. <instance-parameter name="object" transfer-ownership="none">
  22085. <doc xml:space="preserve">a #GstObject to check</doc>
  22086. <type name="Object" c:type="GstObject*"/>
  22087. </instance-parameter>
  22088. <parameter name="ancestor" transfer-ownership="none">
  22089. <doc xml:space="preserve">a #GstObject to check as ancestor</doc>
  22090. <type name="Object" c:type="GstObject*"/>
  22091. </parameter>
  22092. </parameters>
  22093. </method>
  22094. <method name="has_as_parent"
  22095. c:identifier="gst_object_has_as_parent"
  22096. version="1.6">
  22097. <doc xml:space="preserve">Check if @parent is the parent of @object.
  22098. E.g. a #GstElement can check if it owns a given #GstPad.</doc>
  22099. <return-value transfer-ownership="none">
  22100. <doc xml:space="preserve">%FALSE if either @object or @parent is %NULL. %TRUE if @parent is
  22101. the parent of @object. Otherwise %FALSE.
  22102. MT safe. Grabs and releases @object's locks.</doc>
  22103. <type name="gboolean" c:type="gboolean"/>
  22104. </return-value>
  22105. <parameters>
  22106. <instance-parameter name="object" transfer-ownership="none">
  22107. <doc xml:space="preserve">a #GstObject to check</doc>
  22108. <type name="Object" c:type="GstObject*"/>
  22109. </instance-parameter>
  22110. <parameter name="parent" transfer-ownership="none">
  22111. <doc xml:space="preserve">a #GstObject to check as parent</doc>
  22112. <type name="Object" c:type="GstObject*"/>
  22113. </parameter>
  22114. </parameters>
  22115. </method>
  22116. <method name="ref" c:identifier="gst_object_ref">
  22117. <doc xml:space="preserve">Increments the reference count on @object. This function
  22118. does not take the lock on @object because it relies on
  22119. atomic refcounting.
  22120. This object returns the input parameter to ease writing
  22121. constructs like :
  22122. result = gst_object_ref (object-&gt;parent);</doc>
  22123. <return-value transfer-ownership="full">
  22124. <doc xml:space="preserve">A pointer to @object</doc>
  22125. <type name="Object" c:type="gpointer"/>
  22126. </return-value>
  22127. <parameters>
  22128. <instance-parameter name="object" transfer-ownership="none">
  22129. <doc xml:space="preserve">a #GstObject to reference</doc>
  22130. <type name="Object" c:type="gpointer"/>
  22131. </instance-parameter>
  22132. </parameters>
  22133. </method>
  22134. <method name="remove_control_binding"
  22135. c:identifier="gst_object_remove_control_binding">
  22136. <doc xml:space="preserve">Removes the corresponding #GstControlBinding. If it was the
  22137. last ref of the binding, it will be disposed.</doc>
  22138. <return-value transfer-ownership="none">
  22139. <doc xml:space="preserve">%TRUE if the binding could be removed.</doc>
  22140. <type name="gboolean" c:type="gboolean"/>
  22141. </return-value>
  22142. <parameters>
  22143. <instance-parameter name="object" transfer-ownership="none">
  22144. <doc xml:space="preserve">the object</doc>
  22145. <type name="Object" c:type="GstObject*"/>
  22146. </instance-parameter>
  22147. <parameter name="binding" transfer-ownership="none">
  22148. <doc xml:space="preserve">the binding</doc>
  22149. <type name="ControlBinding" c:type="GstControlBinding*"/>
  22150. </parameter>
  22151. </parameters>
  22152. </method>
  22153. <method name="set_control_binding_disabled"
  22154. c:identifier="gst_object_set_control_binding_disabled">
  22155. <doc xml:space="preserve">This function is used to disable the control bindings on a property for
  22156. some time, i.e. gst_object_sync_values() will do nothing for the
  22157. property.</doc>
  22158. <return-value transfer-ownership="none">
  22159. <type name="none" c:type="void"/>
  22160. </return-value>
  22161. <parameters>
  22162. <instance-parameter name="object" transfer-ownership="none">
  22163. <doc xml:space="preserve">the object that has controlled properties</doc>
  22164. <type name="Object" c:type="GstObject*"/>
  22165. </instance-parameter>
  22166. <parameter name="property_name" transfer-ownership="none">
  22167. <doc xml:space="preserve">property to disable</doc>
  22168. <type name="utf8" c:type="const gchar*"/>
  22169. </parameter>
  22170. <parameter name="disabled" transfer-ownership="none">
  22171. <doc xml:space="preserve">boolean that specifies whether to disable the controller
  22172. or not.</doc>
  22173. <type name="gboolean" c:type="gboolean"/>
  22174. </parameter>
  22175. </parameters>
  22176. </method>
  22177. <method name="set_control_bindings_disabled"
  22178. c:identifier="gst_object_set_control_bindings_disabled">
  22179. <doc xml:space="preserve">This function is used to disable all controlled properties of the @object for
  22180. some time, i.e. gst_object_sync_values() will do nothing.</doc>
  22181. <return-value transfer-ownership="none">
  22182. <type name="none" c:type="void"/>
  22183. </return-value>
  22184. <parameters>
  22185. <instance-parameter name="object" transfer-ownership="none">
  22186. <doc xml:space="preserve">the object that has controlled properties</doc>
  22187. <type name="Object" c:type="GstObject*"/>
  22188. </instance-parameter>
  22189. <parameter name="disabled" transfer-ownership="none">
  22190. <doc xml:space="preserve">boolean that specifies whether to disable the controller
  22191. or not.</doc>
  22192. <type name="gboolean" c:type="gboolean"/>
  22193. </parameter>
  22194. </parameters>
  22195. </method>
  22196. <method name="set_control_rate"
  22197. c:identifier="gst_object_set_control_rate">
  22198. <doc xml:space="preserve">Change the control-rate for this @object. Audio processing #GstElement
  22199. objects will use this rate to sub-divide their processing loop and call
  22200. gst_object_sync_values() inbetween. The length of the processing segment
  22201. should be up to @control-rate nanoseconds.
  22202. The control-rate should not change if the element is in %GST_STATE_PAUSED or
  22203. %GST_STATE_PLAYING.</doc>
  22204. <return-value transfer-ownership="none">
  22205. <type name="none" c:type="void"/>
  22206. </return-value>
  22207. <parameters>
  22208. <instance-parameter name="object" transfer-ownership="none">
  22209. <doc xml:space="preserve">the object that has controlled properties</doc>
  22210. <type name="Object" c:type="GstObject*"/>
  22211. </instance-parameter>
  22212. <parameter name="control_rate" transfer-ownership="none">
  22213. <doc xml:space="preserve">the new control-rate in nanoseconds.</doc>
  22214. <type name="ClockTime" c:type="GstClockTime"/>
  22215. </parameter>
  22216. </parameters>
  22217. </method>
  22218. <method name="set_name" c:identifier="gst_object_set_name">
  22219. <doc xml:space="preserve">Sets the name of @object, or gives @object a guaranteed unique
  22220. name (if @name is %NULL).
  22221. This function makes a copy of the provided name, so the caller
  22222. retains ownership of the name it sent.</doc>
  22223. <return-value transfer-ownership="none">
  22224. <doc xml:space="preserve">%TRUE if the name could be set. Since Objects that have
  22225. a parent cannot be renamed, this function returns %FALSE in those
  22226. cases.
  22227. MT safe. This function grabs and releases @object's LOCK.</doc>
  22228. <type name="gboolean" c:type="gboolean"/>
  22229. </return-value>
  22230. <parameters>
  22231. <instance-parameter name="object" transfer-ownership="none">
  22232. <doc xml:space="preserve">a #GstObject</doc>
  22233. <type name="Object" c:type="GstObject*"/>
  22234. </instance-parameter>
  22235. <parameter name="name"
  22236. transfer-ownership="none"
  22237. nullable="1"
  22238. allow-none="1">
  22239. <doc xml:space="preserve">new name of object</doc>
  22240. <type name="utf8" c:type="const gchar*"/>
  22241. </parameter>
  22242. </parameters>
  22243. </method>
  22244. <method name="set_parent" c:identifier="gst_object_set_parent">
  22245. <doc xml:space="preserve">Sets the parent of @object to @parent. The object's reference count will
  22246. be incremented, and any floating reference will be removed (see gst_object_ref_sink()).</doc>
  22247. <return-value transfer-ownership="none">
  22248. <doc xml:space="preserve">%TRUE if @parent could be set or %FALSE when @object
  22249. already had a parent or @object and @parent are the same.
  22250. MT safe. Grabs and releases @object's LOCK.</doc>
  22251. <type name="gboolean" c:type="gboolean"/>
  22252. </return-value>
  22253. <parameters>
  22254. <instance-parameter name="object" transfer-ownership="none">
  22255. <doc xml:space="preserve">a #GstObject</doc>
  22256. <type name="Object" c:type="GstObject*"/>
  22257. </instance-parameter>
  22258. <parameter name="parent" transfer-ownership="none">
  22259. <doc xml:space="preserve">new parent of object</doc>
  22260. <type name="Object" c:type="GstObject*"/>
  22261. </parameter>
  22262. </parameters>
  22263. </method>
  22264. <method name="suggest_next_sync"
  22265. c:identifier="gst_object_suggest_next_sync">
  22266. <doc xml:space="preserve">Returns a suggestion for timestamps where buffers should be split
  22267. to get best controller results.</doc>
  22268. <return-value transfer-ownership="none">
  22269. <doc xml:space="preserve">Returns the suggested timestamp or %GST_CLOCK_TIME_NONE
  22270. if no control-rate was set.</doc>
  22271. <type name="ClockTime" c:type="GstClockTime"/>
  22272. </return-value>
  22273. <parameters>
  22274. <instance-parameter name="object" transfer-ownership="none">
  22275. <doc xml:space="preserve">the object that has controlled properties</doc>
  22276. <type name="Object" c:type="GstObject*"/>
  22277. </instance-parameter>
  22278. </parameters>
  22279. </method>
  22280. <method name="sync_values" c:identifier="gst_object_sync_values">
  22281. <doc xml:space="preserve">Sets the properties of the object, according to the #GstControlSources that
  22282. (maybe) handle them and for the given timestamp.
  22283. If this function fails, it is most likely the application developers fault.
  22284. Most probably the control sources are not setup correctly.</doc>
  22285. <return-value transfer-ownership="none">
  22286. <doc xml:space="preserve">%TRUE if the controller values could be applied to the object
  22287. properties, %FALSE otherwise</doc>
  22288. <type name="gboolean" c:type="gboolean"/>
  22289. </return-value>
  22290. <parameters>
  22291. <instance-parameter name="object" transfer-ownership="none">
  22292. <doc xml:space="preserve">the object that has controlled properties</doc>
  22293. <type name="Object" c:type="GstObject*"/>
  22294. </instance-parameter>
  22295. <parameter name="timestamp" transfer-ownership="none">
  22296. <doc xml:space="preserve">the time that should be processed</doc>
  22297. <type name="ClockTime" c:type="GstClockTime"/>
  22298. </parameter>
  22299. </parameters>
  22300. </method>
  22301. <method name="unparent" c:identifier="gst_object_unparent">
  22302. <doc xml:space="preserve">Clear the parent of @object, removing the associated reference.
  22303. This function decreases the refcount of @object.
  22304. MT safe. Grabs and releases @object's lock.</doc>
  22305. <return-value transfer-ownership="none">
  22306. <type name="none" c:type="void"/>
  22307. </return-value>
  22308. <parameters>
  22309. <instance-parameter name="object" transfer-ownership="none">
  22310. <doc xml:space="preserve">a #GstObject to unparent</doc>
  22311. <type name="Object" c:type="GstObject*"/>
  22312. </instance-parameter>
  22313. </parameters>
  22314. </method>
  22315. <method name="unref" c:identifier="gst_object_unref">
  22316. <doc xml:space="preserve">Decrements the reference count on @object. If reference count hits
  22317. zero, destroy @object. This function does not take the lock
  22318. on @object as it relies on atomic refcounting.
  22319. The unref method should never be called with the LOCK held since
  22320. this might deadlock the dispose function.</doc>
  22321. <return-value transfer-ownership="none">
  22322. <type name="none" c:type="void"/>
  22323. </return-value>
  22324. <parameters>
  22325. <instance-parameter name="object" transfer-ownership="none">
  22326. <doc xml:space="preserve">a #GstObject to unreference</doc>
  22327. <type name="Object" c:type="gpointer"/>
  22328. </instance-parameter>
  22329. </parameters>
  22330. </method>
  22331. <property name="name"
  22332. writable="1"
  22333. construct="1"
  22334. transfer-ownership="none">
  22335. <type name="utf8" c:type="gchar*"/>
  22336. </property>
  22337. <property name="parent" writable="1" transfer-ownership="none">
  22338. <doc xml:space="preserve">The parent of the object. Please note, that when changing the 'parent'
  22339. property, we don't emit #GObject::notify and #GstObject::deep-notify
  22340. signals due to locking issues. In some cases one can use
  22341. #GstBin::element-added or #GstBin::element-removed signals on the parent to
  22342. achieve a similar effect.</doc>
  22343. <type name="Object"/>
  22344. </property>
  22345. <field name="object">
  22346. <type name="GObject.InitiallyUnowned" c:type="GInitiallyUnowned"/>
  22347. </field>
  22348. <field name="lock">
  22349. <doc xml:space="preserve">object LOCK</doc>
  22350. <type name="GLib.Mutex" c:type="GMutex"/>
  22351. </field>
  22352. <field name="name">
  22353. <doc xml:space="preserve">The name of the object</doc>
  22354. <type name="utf8" c:type="gchar*"/>
  22355. </field>
  22356. <field name="parent">
  22357. <doc xml:space="preserve">this object's parent, weak ref</doc>
  22358. <type name="Object" c:type="GstObject*"/>
  22359. </field>
  22360. <field name="flags">
  22361. <doc xml:space="preserve">flags for this object</doc>
  22362. <type name="guint32" c:type="guint32"/>
  22363. </field>
  22364. <field name="control_bindings" readable="0" private="1">
  22365. <type name="GLib.List" c:type="GList*">
  22366. <type name="gpointer" c:type="gpointer"/>
  22367. </type>
  22368. </field>
  22369. <field name="control_rate" readable="0" private="1">
  22370. <type name="guint64" c:type="guint64"/>
  22371. </field>
  22372. <field name="last_sync" readable="0" private="1">
  22373. <type name="guint64" c:type="guint64"/>
  22374. </field>
  22375. <field name="_gst_reserved" readable="0" private="1">
  22376. <type name="gpointer" c:type="gpointer"/>
  22377. </field>
  22378. <glib:signal name="deep-notify"
  22379. when="first"
  22380. no-recurse="1"
  22381. detailed="1"
  22382. no-hooks="1">
  22383. <doc xml:space="preserve">The deep notify signal is used to be notified of property changes. It is
  22384. typically attached to the toplevel bin to receive notifications from all
  22385. the elements contained in that bin.</doc>
  22386. <return-value transfer-ownership="none">
  22387. <type name="none" c:type="void"/>
  22388. </return-value>
  22389. <parameters>
  22390. <parameter name="prop_object" transfer-ownership="none">
  22391. <doc xml:space="preserve">the object that originated the signal</doc>
  22392. <type name="Object"/>
  22393. </parameter>
  22394. <parameter name="prop" transfer-ownership="none">
  22395. <doc xml:space="preserve">the property that changed</doc>
  22396. <type name="GObject.ParamSpec"/>
  22397. </parameter>
  22398. </parameters>
  22399. </glib:signal>
  22400. </class>
  22401. <record name="ObjectClass"
  22402. c:type="GstObjectClass"
  22403. glib:is-gtype-struct-for="Object">
  22404. <doc xml:space="preserve">GStreamer base object class.</doc>
  22405. <field name="parent_class">
  22406. <doc xml:space="preserve">parent</doc>
  22407. <type name="GObject.InitiallyUnownedClass"
  22408. c:type="GInitiallyUnownedClass"/>
  22409. </field>
  22410. <field name="path_string_separator">
  22411. <doc xml:space="preserve">separator used by gst_object_get_path_string()</doc>
  22412. <type name="utf8" c:type="const gchar*"/>
  22413. </field>
  22414. <field name="deep_notify">
  22415. <callback name="deep_notify">
  22416. <return-value transfer-ownership="none">
  22417. <type name="none" c:type="void"/>
  22418. </return-value>
  22419. <parameters>
  22420. <parameter name="object" transfer-ownership="none">
  22421. <type name="Object" c:type="GstObject*"/>
  22422. </parameter>
  22423. <parameter name="orig" transfer-ownership="none">
  22424. <type name="Object" c:type="GstObject*"/>
  22425. </parameter>
  22426. <parameter name="pspec" transfer-ownership="none">
  22427. <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
  22428. </parameter>
  22429. </parameters>
  22430. </callback>
  22431. </field>
  22432. <field name="_gst_reserved" readable="0" private="1">
  22433. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  22434. <type name="gpointer" c:type="gpointer"/>
  22435. </array>
  22436. </field>
  22437. </record>
  22438. <bitfield name="ObjectFlags"
  22439. glib:type-name="GstObjectFlags"
  22440. glib:get-type="gst_object_flags_get_type"
  22441. c:type="GstObjectFlags">
  22442. <doc xml:space="preserve">The standard flags that an gstobject may have.</doc>
  22443. <member name="last"
  22444. value="16"
  22445. c:identifier="GST_OBJECT_FLAG_LAST"
  22446. glib:nick="last">
  22447. <doc xml:space="preserve">subclasses can add additional flags starting from this flag</doc>
  22448. </member>
  22449. </bitfield>
  22450. <constant name="PARAM_CONTROLLABLE"
  22451. value="2"
  22452. c:type="GST_PARAM_CONTROLLABLE">
  22453. <doc xml:space="preserve">Use this flag on GObject properties to signal they can make sense to be.
  22454. controlled over time. This hint is used by the GstController.</doc>
  22455. <type name="gint" c:type="gint"/>
  22456. </constant>
  22457. <constant name="PARAM_MUTABLE_PAUSED"
  22458. value="8"
  22459. c:type="GST_PARAM_MUTABLE_PAUSED">
  22460. <doc xml:space="preserve">Use this flag on GObject properties of GstElements to indicate that
  22461. they can be changed when the element is in the PAUSED or lower state.
  22462. This flag implies GST_PARAM_MUTABLE_READY.</doc>
  22463. <type name="gint" c:type="gint"/>
  22464. </constant>
  22465. <constant name="PARAM_MUTABLE_PLAYING"
  22466. value="16"
  22467. c:type="GST_PARAM_MUTABLE_PLAYING">
  22468. <doc xml:space="preserve">Use this flag on GObject properties of GstElements to indicate that
  22469. they can be changed when the element is in the PLAYING or lower state.
  22470. This flag implies GST_PARAM_MUTABLE_PAUSED.</doc>
  22471. <type name="gint" c:type="gint"/>
  22472. </constant>
  22473. <constant name="PARAM_MUTABLE_READY"
  22474. value="4"
  22475. c:type="GST_PARAM_MUTABLE_READY">
  22476. <doc xml:space="preserve">Use this flag on GObject properties of GstElements to indicate that
  22477. they can be changed when the element is in the READY or lower state.</doc>
  22478. <type name="gint" c:type="gint"/>
  22479. </constant>
  22480. <constant name="PARAM_USER_SHIFT"
  22481. value="256"
  22482. c:type="GST_PARAM_USER_SHIFT">
  22483. <doc xml:space="preserve">Bits based on GST_PARAM_USER_SHIFT can be used by 3rd party applications.</doc>
  22484. <type name="gint" c:type="gint"/>
  22485. </constant>
  22486. <constant name="PROTECTION_SYSTEM_ID_CAPS_FIELD"
  22487. value="protection-system"
  22488. c:type="GST_PROTECTION_SYSTEM_ID_CAPS_FIELD"
  22489. version="1.6">
  22490. <doc xml:space="preserve">The field name in a GstCaps that is used to signal the UUID of the protection
  22491. system.</doc>
  22492. <type name="utf8" c:type="gchar*"/>
  22493. </constant>
  22494. <constant name="PTR_FORMAT" value="paA" c:type="GST_PTR_FORMAT">
  22495. <doc xml:space="preserve">printf format type used to debug GStreamer types.
  22496. This can only be used on types whose size is &gt;= sizeof(gpointer).</doc>
  22497. <type name="utf8" c:type="gchar*"/>
  22498. </constant>
  22499. <class name="Pad"
  22500. c:symbol-prefix="pad"
  22501. c:type="GstPad"
  22502. parent="Object"
  22503. glib:type-name="GstPad"
  22504. glib:get-type="gst_pad_get_type"
  22505. glib:type-struct="PadClass">
  22506. <doc xml:space="preserve">A #GstElement is linked to other elements via "pads", which are extremely
  22507. light-weight generic link points.
  22508. Pads have a #GstPadDirection, source pads produce data, sink pads consume
  22509. data.
  22510. Pads are typically created from a #GstPadTemplate with
  22511. gst_pad_new_from_template() and are then added to a #GstElement. This usually
  22512. happens when the element is created but it can also happen dynamically based
  22513. on the data that the element is processing or based on the pads that the
  22514. application requests.
  22515. Pads without pad templates can be created with gst_pad_new(),
  22516. which takes a direction and a name as an argument. If the name is %NULL,
  22517. then a guaranteed unique name will be assigned to it.
  22518. A #GstElement creating a pad will typically use the various
  22519. gst_pad_set_*_function() calls to register callbacks for events, queries or
  22520. dataflow on the pads.
  22521. gst_pad_get_parent() will retrieve the #GstElement that owns the pad.
  22522. After two pads are retrieved from an element by gst_element_get_static_pad(),
  22523. the pads can be linked with gst_pad_link(). (For quick links,
  22524. you can also use gst_element_link(), which will make the obvious
  22525. link for you if it's straightforward.). Pads can be unlinked again with
  22526. gst_pad_unlink(). gst_pad_get_peer() can be used to check what the pad is
  22527. linked to.
  22528. Before dataflow is possible on the pads, they need to be activated with
  22529. gst_pad_set_active().
  22530. gst_pad_query() and gst_pad_peer_query() can be used to query various
  22531. properties of the pad and the stream.
  22532. To send a #GstEvent on a pad, use gst_pad_send_event() and
  22533. gst_pad_push_event(). Some events will be sticky on the pad, meaning that
  22534. after they pass on the pad they can be queried later with
  22535. gst_pad_get_sticky_event() and gst_pad_sticky_events_foreach().
  22536. gst_pad_get_current_caps() and gst_pad_has_current_caps() are convenience
  22537. functions to query the current sticky CAPS event on a pad.
  22538. GstElements will use gst_pad_push() and gst_pad_pull_range() to push out
  22539. or pull in a buffer.
  22540. The dataflow, events and queries that happen on a pad can be monitored with
  22541. probes that can be installed with gst_pad_add_probe(). gst_pad_is_blocked()
  22542. can be used to check if a block probe is installed on the pad.
  22543. gst_pad_is_blocking() checks if the blocking probe is currently blocking the
  22544. pad. gst_pad_remove_probe() is used to remove a previously installed probe
  22545. and unblock blocking probes if any.
  22546. Pad have an offset that can be retrieved with gst_pad_get_offset(). This
  22547. offset will be applied to the running_time of all data passing over the pad.
  22548. gst_pad_set_offset() can be used to change the offset.
  22549. Convenience functions exist to start, pause and stop the task on a pad with
  22550. gst_pad_start_task(), gst_pad_pause_task() and gst_pad_stop_task()
  22551. respectively.</doc>
  22552. <constructor name="new" c:identifier="gst_pad_new">
  22553. <doc xml:space="preserve">Creates a new pad with the given name in the given direction.
  22554. If name is %NULL, a guaranteed unique name (across all pads)
  22555. will be assigned.
  22556. This function makes a copy of the name so you can safely free the name.</doc>
  22557. <return-value transfer-ownership="none" nullable="1">
  22558. <doc xml:space="preserve">a new #GstPad, or %NULL in
  22559. case of an error.
  22560. MT safe.</doc>
  22561. <type name="Pad" c:type="GstPad*"/>
  22562. </return-value>
  22563. <parameters>
  22564. <parameter name="name"
  22565. transfer-ownership="none"
  22566. nullable="1"
  22567. allow-none="1">
  22568. <doc xml:space="preserve">the name of the new pad.</doc>
  22569. <type name="utf8" c:type="const gchar*"/>
  22570. </parameter>
  22571. <parameter name="direction" transfer-ownership="none">
  22572. <doc xml:space="preserve">the #GstPadDirection of the pad.</doc>
  22573. <type name="PadDirection" c:type="GstPadDirection"/>
  22574. </parameter>
  22575. </parameters>
  22576. </constructor>
  22577. <constructor name="new_from_static_template"
  22578. c:identifier="gst_pad_new_from_static_template">
  22579. <doc xml:space="preserve">Creates a new pad with the given name from the given static template.
  22580. If name is %NULL, a guaranteed unique name (across all pads)
  22581. will be assigned.
  22582. This function makes a copy of the name so you can safely free the name.</doc>
  22583. <return-value transfer-ownership="none" nullable="1">
  22584. <doc xml:space="preserve">a new #GstPad, or %NULL in
  22585. case of an error.</doc>
  22586. <type name="Pad" c:type="GstPad*"/>
  22587. </return-value>
  22588. <parameters>
  22589. <parameter name="templ" transfer-ownership="none">
  22590. <doc xml:space="preserve">the #GstStaticPadTemplate to use</doc>
  22591. <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
  22592. </parameter>
  22593. <parameter name="name" transfer-ownership="none">
  22594. <doc xml:space="preserve">the name of the pad</doc>
  22595. <type name="utf8" c:type="const gchar*"/>
  22596. </parameter>
  22597. </parameters>
  22598. </constructor>
  22599. <constructor name="new_from_template"
  22600. c:identifier="gst_pad_new_from_template">
  22601. <doc xml:space="preserve">Creates a new pad with the given name from the given template.
  22602. If name is %NULL, a guaranteed unique name (across all pads)
  22603. will be assigned.
  22604. This function makes a copy of the name so you can safely free the name.</doc>
  22605. <return-value transfer-ownership="none" nullable="1">
  22606. <doc xml:space="preserve">a new #GstPad, or %NULL in
  22607. case of an error.</doc>
  22608. <type name="Pad" c:type="GstPad*"/>
  22609. </return-value>
  22610. <parameters>
  22611. <parameter name="templ" transfer-ownership="none">
  22612. <doc xml:space="preserve">the pad template to use</doc>
  22613. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  22614. </parameter>
  22615. <parameter name="name"
  22616. transfer-ownership="none"
  22617. nullable="1"
  22618. allow-none="1">
  22619. <doc xml:space="preserve">the name of the pad</doc>
  22620. <type name="utf8" c:type="const gchar*"/>
  22621. </parameter>
  22622. </parameters>
  22623. </constructor>
  22624. <function name="link_get_name"
  22625. c:identifier="gst_pad_link_get_name"
  22626. version="1.4">
  22627. <doc xml:space="preserve">Gets a string representing the given pad-link return.</doc>
  22628. <return-value transfer-ownership="none">
  22629. <doc xml:space="preserve">a static string with the name of the pad-link return.</doc>
  22630. <type name="utf8" c:type="const gchar*"/>
  22631. </return-value>
  22632. <parameters>
  22633. <parameter name="ret" transfer-ownership="none">
  22634. <doc xml:space="preserve">a #GstPadLinkReturn to get the name of.</doc>
  22635. <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
  22636. </parameter>
  22637. </parameters>
  22638. </function>
  22639. <virtual-method name="linked">
  22640. <return-value transfer-ownership="none">
  22641. <type name="none" c:type="void"/>
  22642. </return-value>
  22643. <parameters>
  22644. <instance-parameter name="pad" transfer-ownership="none">
  22645. <type name="Pad" c:type="GstPad*"/>
  22646. </instance-parameter>
  22647. <parameter name="peer" transfer-ownership="none">
  22648. <type name="Pad" c:type="GstPad*"/>
  22649. </parameter>
  22650. </parameters>
  22651. </virtual-method>
  22652. <virtual-method name="unlinked">
  22653. <return-value transfer-ownership="none">
  22654. <type name="none" c:type="void"/>
  22655. </return-value>
  22656. <parameters>
  22657. <instance-parameter name="pad" transfer-ownership="none">
  22658. <type name="Pad" c:type="GstPad*"/>
  22659. </instance-parameter>
  22660. <parameter name="peer" transfer-ownership="none">
  22661. <type name="Pad" c:type="GstPad*"/>
  22662. </parameter>
  22663. </parameters>
  22664. </virtual-method>
  22665. <method name="activate_mode" c:identifier="gst_pad_activate_mode">
  22666. <doc xml:space="preserve">Activates or deactivates the given pad in @mode via dispatching to the
  22667. pad's activatemodefunc. For use from within pad activation functions only.
  22668. If you don't know what this is, you probably don't want to call it.</doc>
  22669. <return-value transfer-ownership="none">
  22670. <doc xml:space="preserve">%TRUE if the operation was successful.
  22671. MT safe.</doc>
  22672. <type name="gboolean" c:type="gboolean"/>
  22673. </return-value>
  22674. <parameters>
  22675. <instance-parameter name="pad" transfer-ownership="none">
  22676. <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
  22677. <type name="Pad" c:type="GstPad*"/>
  22678. </instance-parameter>
  22679. <parameter name="mode" transfer-ownership="none">
  22680. <doc xml:space="preserve">the requested activation mode</doc>
  22681. <type name="PadMode" c:type="GstPadMode"/>
  22682. </parameter>
  22683. <parameter name="active" transfer-ownership="none">
  22684. <doc xml:space="preserve">whether or not the pad should be active.</doc>
  22685. <type name="gboolean" c:type="gboolean"/>
  22686. </parameter>
  22687. </parameters>
  22688. </method>
  22689. <method name="add_probe" c:identifier="gst_pad_add_probe">
  22690. <doc xml:space="preserve">Be notified of different states of pads. The provided callback is called for
  22691. every state that matches @mask.
  22692. Probes are called in groups: First GST_PAD_PROBE_TYPE_BLOCK probes are
  22693. called, then others, then finally GST_PAD_PROBE_TYPE_IDLE. The only
  22694. exception here are GST_PAD_PROBE_TYPE_IDLE probes that are called
  22695. immediately if the pad is already idle while calling gst_pad_add_probe().
  22696. In each of the groups, probes are called in the order in which they were
  22697. added.</doc>
  22698. <return-value transfer-ownership="none">
  22699. <doc xml:space="preserve">an id or 0 if no probe is pending. The id can be used to remove the
  22700. probe with gst_pad_remove_probe(). When using GST_PAD_PROBE_TYPE_IDLE it can
  22701. happen that the probe can be run immediately and if the probe returns
  22702. GST_PAD_PROBE_REMOVE this functions returns 0.
  22703. MT safe.</doc>
  22704. <type name="gulong" c:type="gulong"/>
  22705. </return-value>
  22706. <parameters>
  22707. <instance-parameter name="pad" transfer-ownership="none">
  22708. <doc xml:space="preserve">the #GstPad to add the probe to</doc>
  22709. <type name="Pad" c:type="GstPad*"/>
  22710. </instance-parameter>
  22711. <parameter name="mask" transfer-ownership="none">
  22712. <doc xml:space="preserve">the probe mask</doc>
  22713. <type name="PadProbeType" c:type="GstPadProbeType"/>
  22714. </parameter>
  22715. <parameter name="callback"
  22716. transfer-ownership="none"
  22717. scope="notified"
  22718. closure="2"
  22719. destroy="3">
  22720. <doc xml:space="preserve">#GstPadProbeCallback that will be called with notifications of
  22721. the pad state</doc>
  22722. <type name="PadProbeCallback" c:type="GstPadProbeCallback"/>
  22723. </parameter>
  22724. <parameter name="user_data"
  22725. transfer-ownership="none"
  22726. nullable="1"
  22727. allow-none="1">
  22728. <doc xml:space="preserve">user data passed to the callback</doc>
  22729. <type name="gpointer" c:type="gpointer"/>
  22730. </parameter>
  22731. <parameter name="destroy_data"
  22732. transfer-ownership="none"
  22733. scope="async">
  22734. <doc xml:space="preserve">#GDestroyNotify for user_data</doc>
  22735. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  22736. </parameter>
  22737. </parameters>
  22738. </method>
  22739. <method name="can_link" c:identifier="gst_pad_can_link">
  22740. <doc xml:space="preserve">Checks if the source pad and the sink pad are compatible so they can be
  22741. linked.</doc>
  22742. <return-value transfer-ownership="none">
  22743. <doc xml:space="preserve">%TRUE if the pads can be linked.</doc>
  22744. <type name="gboolean" c:type="gboolean"/>
  22745. </return-value>
  22746. <parameters>
  22747. <instance-parameter name="srcpad" transfer-ownership="none">
  22748. <doc xml:space="preserve">the source #GstPad.</doc>
  22749. <type name="Pad" c:type="GstPad*"/>
  22750. </instance-parameter>
  22751. <parameter name="sinkpad" transfer-ownership="none">
  22752. <doc xml:space="preserve">the sink #GstPad.</doc>
  22753. <type name="Pad" c:type="GstPad*"/>
  22754. </parameter>
  22755. </parameters>
  22756. </method>
  22757. <method name="chain" c:identifier="gst_pad_chain">
  22758. <doc xml:space="preserve">Chain a buffer to @pad.
  22759. The function returns #GST_FLOW_FLUSHING if the pad was flushing.
  22760. If the buffer type is not acceptable for @pad (as negotiated with a
  22761. preceding GST_EVENT_CAPS event), this function returns
  22762. #GST_FLOW_NOT_NEGOTIATED.
  22763. The function proceeds calling the chain function installed on @pad (see
  22764. gst_pad_set_chain_function()) and the return value of that function is
  22765. returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
  22766. chain function.
  22767. In all cases, success or failure, the caller loses its reference to @buffer
  22768. after calling this function.</doc>
  22769. <return-value transfer-ownership="none">
  22770. <doc xml:space="preserve">a #GstFlowReturn from the pad.
  22771. MT safe.</doc>
  22772. <type name="FlowReturn" c:type="GstFlowReturn"/>
  22773. </return-value>
  22774. <parameters>
  22775. <instance-parameter name="pad" transfer-ownership="none">
  22776. <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
  22777. <type name="Pad" c:type="GstPad*"/>
  22778. </instance-parameter>
  22779. <parameter name="buffer" transfer-ownership="full">
  22780. <doc xml:space="preserve">the #GstBuffer to send, return GST_FLOW_ERROR
  22781. if not.</doc>
  22782. <type name="Buffer" c:type="GstBuffer*"/>
  22783. </parameter>
  22784. </parameters>
  22785. </method>
  22786. <method name="chain_list" c:identifier="gst_pad_chain_list">
  22787. <doc xml:space="preserve">Chain a bufferlist to @pad.
  22788. The function returns #GST_FLOW_FLUSHING if the pad was flushing.
  22789. If @pad was not negotiated properly with a CAPS event, this function
  22790. returns #GST_FLOW_NOT_NEGOTIATED.
  22791. The function proceeds calling the chainlist function installed on @pad (see
  22792. gst_pad_set_chain_list_function()) and the return value of that function is
  22793. returned to the caller. #GST_FLOW_NOT_SUPPORTED is returned if @pad has no
  22794. chainlist function.
  22795. In all cases, success or failure, the caller loses its reference to @list
  22796. after calling this function.
  22797. MT safe.</doc>
  22798. <return-value transfer-ownership="none">
  22799. <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
  22800. <type name="FlowReturn" c:type="GstFlowReturn"/>
  22801. </return-value>
  22802. <parameters>
  22803. <instance-parameter name="pad" transfer-ownership="none">
  22804. <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
  22805. <type name="Pad" c:type="GstPad*"/>
  22806. </instance-parameter>
  22807. <parameter name="list" transfer-ownership="full">
  22808. <doc xml:space="preserve">the #GstBufferList to send, return GST_FLOW_ERROR
  22809. if not.</doc>
  22810. <type name="BufferList" c:type="GstBufferList*"/>
  22811. </parameter>
  22812. </parameters>
  22813. </method>
  22814. <method name="check_reconfigure"
  22815. c:identifier="gst_pad_check_reconfigure">
  22816. <doc xml:space="preserve">Check and clear the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
  22817. if the flag was set.</doc>
  22818. <return-value transfer-ownership="none">
  22819. <doc xml:space="preserve">%TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag was set on @pad.</doc>
  22820. <type name="gboolean" c:type="gboolean"/>
  22821. </return-value>
  22822. <parameters>
  22823. <instance-parameter name="pad" transfer-ownership="none">
  22824. <doc xml:space="preserve">the #GstPad to check</doc>
  22825. <type name="Pad" c:type="GstPad*"/>
  22826. </instance-parameter>
  22827. </parameters>
  22828. </method>
  22829. <method name="create_stream_id" c:identifier="gst_pad_create_stream_id">
  22830. <doc xml:space="preserve">Creates a stream-id for the source #GstPad @pad by combining the
  22831. upstream information with the optional @stream_id of the stream
  22832. of @pad. @pad must have a parent #GstElement and which must have zero
  22833. or one sinkpad. @stream_id can only be %NULL if the parent element
  22834. of @pad has only a single source pad.
  22835. This function generates an unique stream-id by getting the upstream
  22836. stream-start event stream ID and appending @stream_id to it. If the
  22837. element has no sinkpad it will generate an upstream stream-id by
  22838. doing an URI query on the element and in the worst case just uses
  22839. a random number. Source elements that don't implement the URI
  22840. handler interface should ideally generate a unique, deterministic
  22841. stream-id manually instead.
  22842. Since stream IDs are sorted alphabetically, any numbers in the
  22843. stream ID should be printed with a fixed number of characters,
  22844. preceded by 0's, such as by using the format \%03u instead of \%u.</doc>
  22845. <return-value transfer-ownership="full">
  22846. <doc xml:space="preserve">A stream-id for @pad. g_free() after usage.</doc>
  22847. <type name="utf8" c:type="gchar*"/>
  22848. </return-value>
  22849. <parameters>
  22850. <instance-parameter name="pad" transfer-ownership="none">
  22851. <doc xml:space="preserve">A source #GstPad</doc>
  22852. <type name="Pad" c:type="GstPad*"/>
  22853. </instance-parameter>
  22854. <parameter name="parent" transfer-ownership="none">
  22855. <doc xml:space="preserve">Parent #GstElement of @pad</doc>
  22856. <type name="Element" c:type="GstElement*"/>
  22857. </parameter>
  22858. <parameter name="stream_id"
  22859. transfer-ownership="none"
  22860. nullable="1"
  22861. allow-none="1">
  22862. <doc xml:space="preserve">The stream-id</doc>
  22863. <type name="utf8" c:type="const gchar*"/>
  22864. </parameter>
  22865. </parameters>
  22866. </method>
  22867. <method name="create_stream_id_printf"
  22868. c:identifier="gst_pad_create_stream_id_printf"
  22869. introspectable="0">
  22870. <doc xml:space="preserve">Creates a stream-id for the source #GstPad @pad by combining the
  22871. upstream information with the optional @stream_id of the stream
  22872. of @pad. @pad must have a parent #GstElement and which must have zero
  22873. or one sinkpad. @stream_id can only be %NULL if the parent element
  22874. of @pad has only a single source pad.
  22875. This function generates an unique stream-id by getting the upstream
  22876. stream-start event stream ID and appending @stream_id to it. If the
  22877. element has no sinkpad it will generate an upstream stream-id by
  22878. doing an URI query on the element and in the worst case just uses
  22879. a random number. Source elements that don't implement the URI
  22880. handler interface should ideally generate a unique, deterministic
  22881. stream-id manually instead.</doc>
  22882. <return-value transfer-ownership="full">
  22883. <doc xml:space="preserve">A stream-id for @pad. g_free() after usage.</doc>
  22884. <type name="utf8" c:type="gchar*"/>
  22885. </return-value>
  22886. <parameters>
  22887. <instance-parameter name="pad" transfer-ownership="none">
  22888. <doc xml:space="preserve">A source #GstPad</doc>
  22889. <type name="Pad" c:type="GstPad*"/>
  22890. </instance-parameter>
  22891. <parameter name="parent" transfer-ownership="none">
  22892. <doc xml:space="preserve">Parent #GstElement of @pad</doc>
  22893. <type name="Element" c:type="GstElement*"/>
  22894. </parameter>
  22895. <parameter name="stream_id"
  22896. transfer-ownership="none"
  22897. nullable="1"
  22898. allow-none="1">
  22899. <doc xml:space="preserve">The stream-id</doc>
  22900. <type name="utf8" c:type="const gchar*"/>
  22901. </parameter>
  22902. <parameter name="..." transfer-ownership="none">
  22903. <doc xml:space="preserve">parameters for the @stream_id format string</doc>
  22904. <varargs/>
  22905. </parameter>
  22906. </parameters>
  22907. </method>
  22908. <method name="create_stream_id_printf_valist"
  22909. c:identifier="gst_pad_create_stream_id_printf_valist"
  22910. introspectable="0">
  22911. <doc xml:space="preserve">Creates a stream-id for the source #GstPad @pad by combining the
  22912. upstream information with the optional @stream_id of the stream
  22913. of @pad. @pad must have a parent #GstElement and which must have zero
  22914. or one sinkpad. @stream_id can only be %NULL if the parent element
  22915. of @pad has only a single source pad.
  22916. This function generates an unique stream-id by getting the upstream
  22917. stream-start event stream ID and appending @stream_id to it. If the
  22918. element has no sinkpad it will generate an upstream stream-id by
  22919. doing an URI query on the element and in the worst case just uses
  22920. a random number. Source elements that don't implement the URI
  22921. handler interface should ideally generate a unique, deterministic
  22922. stream-id manually instead.</doc>
  22923. <return-value transfer-ownership="full">
  22924. <doc xml:space="preserve">A stream-id for @pad. g_free() after usage.</doc>
  22925. <type name="utf8" c:type="gchar*"/>
  22926. </return-value>
  22927. <parameters>
  22928. <instance-parameter name="pad" transfer-ownership="none">
  22929. <doc xml:space="preserve">A source #GstPad</doc>
  22930. <type name="Pad" c:type="GstPad*"/>
  22931. </instance-parameter>
  22932. <parameter name="parent" transfer-ownership="none">
  22933. <doc xml:space="preserve">Parent #GstElement of @pad</doc>
  22934. <type name="Element" c:type="GstElement*"/>
  22935. </parameter>
  22936. <parameter name="stream_id"
  22937. transfer-ownership="none"
  22938. nullable="1"
  22939. allow-none="1">
  22940. <doc xml:space="preserve">The stream-id</doc>
  22941. <type name="utf8" c:type="const gchar*"/>
  22942. </parameter>
  22943. <parameter name="var_args" transfer-ownership="none">
  22944. <doc xml:space="preserve">parameters for the @stream_id format string</doc>
  22945. <type name="va_list" c:type="va_list"/>
  22946. </parameter>
  22947. </parameters>
  22948. </method>
  22949. <method name="event_default" c:identifier="gst_pad_event_default">
  22950. <doc xml:space="preserve">Invokes the default event handler for the given pad.
  22951. The EOS event will pause the task associated with @pad before it is forwarded
  22952. to all internally linked pads,
  22953. The event is sent to all pads internally linked to @pad. This function
  22954. takes ownership of @event.</doc>
  22955. <return-value transfer-ownership="none">
  22956. <doc xml:space="preserve">%TRUE if the event was sent successfully.</doc>
  22957. <type name="gboolean" c:type="gboolean"/>
  22958. </return-value>
  22959. <parameters>
  22960. <instance-parameter name="pad" transfer-ownership="none">
  22961. <doc xml:space="preserve">a #GstPad to call the default event handler on.</doc>
  22962. <type name="Pad" c:type="GstPad*"/>
  22963. </instance-parameter>
  22964. <parameter name="parent"
  22965. transfer-ownership="none"
  22966. nullable="1"
  22967. allow-none="1">
  22968. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  22969. <type name="Object" c:type="GstObject*"/>
  22970. </parameter>
  22971. <parameter name="event" transfer-ownership="full">
  22972. <doc xml:space="preserve">the #GstEvent to handle.</doc>
  22973. <type name="Event" c:type="GstEvent*"/>
  22974. </parameter>
  22975. </parameters>
  22976. </method>
  22977. <method name="forward" c:identifier="gst_pad_forward">
  22978. <doc xml:space="preserve">Calls @forward for all internally linked pads of @pad. This function deals with
  22979. dynamically changing internal pads and will make sure that the @forward
  22980. function is only called once for each pad.
  22981. When @forward returns %TRUE, no further pads will be processed.</doc>
  22982. <return-value transfer-ownership="none">
  22983. <doc xml:space="preserve">%TRUE if one of the dispatcher functions returned %TRUE.</doc>
  22984. <type name="gboolean" c:type="gboolean"/>
  22985. </return-value>
  22986. <parameters>
  22987. <instance-parameter name="pad" transfer-ownership="none">
  22988. <doc xml:space="preserve">a #GstPad</doc>
  22989. <type name="Pad" c:type="GstPad*"/>
  22990. </instance-parameter>
  22991. <parameter name="forward"
  22992. transfer-ownership="none"
  22993. scope="call"
  22994. closure="1">
  22995. <doc xml:space="preserve">a #GstPadForwardFunction</doc>
  22996. <type name="PadForwardFunction" c:type="GstPadForwardFunction"/>
  22997. </parameter>
  22998. <parameter name="user_data"
  22999. transfer-ownership="none"
  23000. nullable="1"
  23001. allow-none="1">
  23002. <doc xml:space="preserve">user data passed to @forward</doc>
  23003. <type name="gpointer" c:type="gpointer"/>
  23004. </parameter>
  23005. </parameters>
  23006. </method>
  23007. <method name="get_allowed_caps" c:identifier="gst_pad_get_allowed_caps">
  23008. <doc xml:space="preserve">Gets the capabilities of the allowed media types that can flow through
  23009. @pad and its peer.
  23010. The allowed capabilities is calculated as the intersection of the results of
  23011. calling gst_pad_query_caps() on @pad and its peer. The caller owns a reference
  23012. on the resulting caps.</doc>
  23013. <return-value transfer-ownership="full" nullable="1">
  23014. <doc xml:space="preserve">the allowed #GstCaps of the
  23015. pad link. Unref the caps when you no longer need it. This
  23016. function returns %NULL when @pad has no peer.
  23017. MT safe.</doc>
  23018. <type name="Caps" c:type="GstCaps*"/>
  23019. </return-value>
  23020. <parameters>
  23021. <instance-parameter name="pad" transfer-ownership="none">
  23022. <doc xml:space="preserve">a #GstPad.</doc>
  23023. <type name="Pad" c:type="GstPad*"/>
  23024. </instance-parameter>
  23025. </parameters>
  23026. </method>
  23027. <method name="get_current_caps" c:identifier="gst_pad_get_current_caps">
  23028. <doc xml:space="preserve">Gets the capabilities currently configured on @pad with the last
  23029. #GST_EVENT_CAPS event.</doc>
  23030. <return-value transfer-ownership="full" nullable="1">
  23031. <doc xml:space="preserve">the current caps of the pad with
  23032. incremented ref-count or %NULL when pad has no caps. Unref after usage.</doc>
  23033. <type name="Caps" c:type="GstCaps*"/>
  23034. </return-value>
  23035. <parameters>
  23036. <instance-parameter name="pad" transfer-ownership="none">
  23037. <doc xml:space="preserve">a #GstPad to get the current capabilities of.</doc>
  23038. <type name="Pad" c:type="GstPad*"/>
  23039. </instance-parameter>
  23040. </parameters>
  23041. </method>
  23042. <method name="get_direction" c:identifier="gst_pad_get_direction">
  23043. <doc xml:space="preserve">Gets the direction of the pad. The direction of the pad is
  23044. decided at construction time so this function does not take
  23045. the LOCK.</doc>
  23046. <return-value transfer-ownership="none">
  23047. <doc xml:space="preserve">the #GstPadDirection of the pad.
  23048. MT safe.</doc>
  23049. <type name="PadDirection" c:type="GstPadDirection"/>
  23050. </return-value>
  23051. <parameters>
  23052. <instance-parameter name="pad" transfer-ownership="none">
  23053. <doc xml:space="preserve">a #GstPad to get the direction of.</doc>
  23054. <type name="Pad" c:type="GstPad*"/>
  23055. </instance-parameter>
  23056. </parameters>
  23057. </method>
  23058. <method name="get_element_private"
  23059. c:identifier="gst_pad_get_element_private">
  23060. <doc xml:space="preserve">Gets the private data of a pad.
  23061. No locking is performed in this function.</doc>
  23062. <return-value transfer-ownership="none" nullable="1">
  23063. <doc xml:space="preserve">a #gpointer to the private data.</doc>
  23064. <type name="gpointer" c:type="gpointer"/>
  23065. </return-value>
  23066. <parameters>
  23067. <instance-parameter name="pad" transfer-ownership="none">
  23068. <doc xml:space="preserve">the #GstPad to get the private data of.</doc>
  23069. <type name="Pad" c:type="GstPad*"/>
  23070. </instance-parameter>
  23071. </parameters>
  23072. </method>
  23073. <method name="get_last_flow_return"
  23074. c:identifier="gst_pad_get_last_flow_return"
  23075. version="1.4">
  23076. <doc xml:space="preserve">Gets the #GstFlowReturn return from the last data passed by this pad.</doc>
  23077. <return-value transfer-ownership="none">
  23078. <type name="FlowReturn" c:type="GstFlowReturn"/>
  23079. </return-value>
  23080. <parameters>
  23081. <instance-parameter name="pad" transfer-ownership="none">
  23082. <doc xml:space="preserve">the #GstPad</doc>
  23083. <type name="Pad" c:type="GstPad*"/>
  23084. </instance-parameter>
  23085. </parameters>
  23086. </method>
  23087. <method name="get_offset" c:identifier="gst_pad_get_offset">
  23088. <doc xml:space="preserve">Get the offset applied to the running time of @pad. @pad has to be a source
  23089. pad.</doc>
  23090. <return-value transfer-ownership="none">
  23091. <doc xml:space="preserve">the offset.</doc>
  23092. <type name="gint64" c:type="gint64"/>
  23093. </return-value>
  23094. <parameters>
  23095. <instance-parameter name="pad" transfer-ownership="none">
  23096. <doc xml:space="preserve">a #GstPad</doc>
  23097. <type name="Pad" c:type="GstPad*"/>
  23098. </instance-parameter>
  23099. </parameters>
  23100. </method>
  23101. <method name="get_pad_template" c:identifier="gst_pad_get_pad_template">
  23102. <doc xml:space="preserve">Gets the template for @pad.</doc>
  23103. <return-value transfer-ownership="full" nullable="1">
  23104. <doc xml:space="preserve">the #GstPadTemplate from which
  23105. this pad was instantiated, or %NULL if this pad has no
  23106. template. Unref after usage.</doc>
  23107. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  23108. </return-value>
  23109. <parameters>
  23110. <instance-parameter name="pad" transfer-ownership="none">
  23111. <doc xml:space="preserve">a #GstPad.</doc>
  23112. <type name="Pad" c:type="GstPad*"/>
  23113. </instance-parameter>
  23114. </parameters>
  23115. </method>
  23116. <method name="get_pad_template_caps"
  23117. c:identifier="gst_pad_get_pad_template_caps">
  23118. <doc xml:space="preserve">Gets the capabilities for @pad's template.</doc>
  23119. <return-value transfer-ownership="full">
  23120. <doc xml:space="preserve">the #GstCaps of this pad template.
  23121. Unref after usage.</doc>
  23122. <type name="Caps" c:type="GstCaps*"/>
  23123. </return-value>
  23124. <parameters>
  23125. <instance-parameter name="pad" transfer-ownership="none">
  23126. <doc xml:space="preserve">a #GstPad to get the template capabilities from.</doc>
  23127. <type name="Pad" c:type="GstPad*"/>
  23128. </instance-parameter>
  23129. </parameters>
  23130. </method>
  23131. <method name="get_parent_element"
  23132. c:identifier="gst_pad_get_parent_element">
  23133. <doc xml:space="preserve">Gets the parent of @pad, cast to a #GstElement. If a @pad has no parent or
  23134. its parent is not an element, return %NULL.</doc>
  23135. <return-value transfer-ownership="full" nullable="1">
  23136. <doc xml:space="preserve">the parent of the pad. The
  23137. caller has a reference on the parent, so unref when you're finished
  23138. with it.
  23139. MT safe.</doc>
  23140. <type name="Element" c:type="GstElement*"/>
  23141. </return-value>
  23142. <parameters>
  23143. <instance-parameter name="pad" transfer-ownership="none">
  23144. <doc xml:space="preserve">a pad</doc>
  23145. <type name="Pad" c:type="GstPad*"/>
  23146. </instance-parameter>
  23147. </parameters>
  23148. </method>
  23149. <method name="get_peer" c:identifier="gst_pad_get_peer">
  23150. <doc xml:space="preserve">Gets the peer of @pad. This function refs the peer pad so
  23151. you need to unref it after use.</doc>
  23152. <return-value transfer-ownership="full">
  23153. <doc xml:space="preserve">the peer #GstPad. Unref after usage.
  23154. MT safe.</doc>
  23155. <type name="Pad" c:type="GstPad*"/>
  23156. </return-value>
  23157. <parameters>
  23158. <instance-parameter name="pad" transfer-ownership="none">
  23159. <doc xml:space="preserve">a #GstPad to get the peer of.</doc>
  23160. <type name="Pad" c:type="GstPad*"/>
  23161. </instance-parameter>
  23162. </parameters>
  23163. </method>
  23164. <method name="get_range" c:identifier="gst_pad_get_range">
  23165. <doc xml:space="preserve">When @pad is flushing this function returns #GST_FLOW_FLUSHING
  23166. immediately and @buffer is %NULL.
  23167. Calls the getrange function of @pad, see #GstPadGetRangeFunction for a
  23168. description of a getrange function. If @pad has no getrange function
  23169. installed (see gst_pad_set_getrange_function()) this function returns
  23170. #GST_FLOW_NOT_SUPPORTED.
  23171. If @buffer points to a variable holding %NULL, a valid new #GstBuffer will be
  23172. placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
  23173. must be freed with gst_buffer_unref() after usage.
  23174. When @buffer points to a variable that points to a valid #GstBuffer, the
  23175. buffer will be filled with the result data when this function returns
  23176. #GST_FLOW_OK. If the provided buffer is larger than @size, only
  23177. @size bytes will be filled in the result buffer and its size will be updated
  23178. accordingly.
  23179. Note that less than @size bytes can be returned in @buffer when, for example,
  23180. an EOS condition is near or when @buffer is not large enough to hold @size
  23181. bytes. The caller should check the result buffer size to get the result size.
  23182. When this function returns any other result value than #GST_FLOW_OK, @buffer
  23183. will be unchanged.
  23184. This is a lowlevel function. Usually gst_pad_pull_range() is used.</doc>
  23185. <return-value transfer-ownership="none">
  23186. <doc xml:space="preserve">a #GstFlowReturn from the pad.
  23187. MT safe.</doc>
  23188. <type name="FlowReturn" c:type="GstFlowReturn"/>
  23189. </return-value>
  23190. <parameters>
  23191. <instance-parameter name="pad" transfer-ownership="none">
  23192. <doc xml:space="preserve">a src #GstPad, returns #GST_FLOW_ERROR if not.</doc>
  23193. <type name="Pad" c:type="GstPad*"/>
  23194. </instance-parameter>
  23195. <parameter name="offset" transfer-ownership="none">
  23196. <doc xml:space="preserve">The start offset of the buffer</doc>
  23197. <type name="guint64" c:type="guint64"/>
  23198. </parameter>
  23199. <parameter name="size" transfer-ownership="none">
  23200. <doc xml:space="preserve">The length of the buffer</doc>
  23201. <type name="guint" c:type="guint"/>
  23202. </parameter>
  23203. <parameter name="buffer"
  23204. direction="out"
  23205. caller-allocates="0"
  23206. transfer-ownership="full">
  23207. <doc xml:space="preserve">a pointer to hold the #GstBuffer,
  23208. returns #GST_FLOW_ERROR if %NULL.</doc>
  23209. <type name="Buffer" c:type="GstBuffer**"/>
  23210. </parameter>
  23211. </parameters>
  23212. </method>
  23213. <method name="get_sticky_event" c:identifier="gst_pad_get_sticky_event">
  23214. <doc xml:space="preserve">Returns a new reference of the sticky event of type @event_type
  23215. from the event.</doc>
  23216. <return-value transfer-ownership="full" nullable="1">
  23217. <doc xml:space="preserve">a #GstEvent of type
  23218. @event_type or %NULL when no event of @event_type was on
  23219. @pad. Unref after usage.</doc>
  23220. <type name="Event" c:type="GstEvent*"/>
  23221. </return-value>
  23222. <parameters>
  23223. <instance-parameter name="pad" transfer-ownership="none">
  23224. <doc xml:space="preserve">the #GstPad to get the event from.</doc>
  23225. <type name="Pad" c:type="GstPad*"/>
  23226. </instance-parameter>
  23227. <parameter name="event_type" transfer-ownership="none">
  23228. <doc xml:space="preserve">the #GstEventType that should be retrieved.</doc>
  23229. <type name="EventType" c:type="GstEventType"/>
  23230. </parameter>
  23231. <parameter name="idx" transfer-ownership="none">
  23232. <doc xml:space="preserve">the index of the event</doc>
  23233. <type name="guint" c:type="guint"/>
  23234. </parameter>
  23235. </parameters>
  23236. </method>
  23237. <method name="get_stream_id"
  23238. c:identifier="gst_pad_get_stream_id"
  23239. version="1.2">
  23240. <doc xml:space="preserve">Returns the current stream-id for the @pad, or %NULL if none has been
  23241. set yet, i.e. the pad has not received a stream-start event yet.
  23242. This is a convenience wrapper around gst_pad_get_sticky_event() and
  23243. gst_event_parse_stream_start().
  23244. The returned stream-id string should be treated as an opaque string, its
  23245. contents should not be interpreted.</doc>
  23246. <return-value transfer-ownership="full" nullable="1">
  23247. <doc xml:space="preserve">a newly-allocated copy of the stream-id for
  23248. @pad, or %NULL. g_free() the returned string when no longer
  23249. needed.</doc>
  23250. <type name="utf8" c:type="gchar*"/>
  23251. </return-value>
  23252. <parameters>
  23253. <instance-parameter name="pad" transfer-ownership="none">
  23254. <doc xml:space="preserve">A source #GstPad</doc>
  23255. <type name="Pad" c:type="GstPad*"/>
  23256. </instance-parameter>
  23257. </parameters>
  23258. </method>
  23259. <method name="has_current_caps" c:identifier="gst_pad_has_current_caps">
  23260. <doc xml:space="preserve">Check if @pad has caps set on it with a #GST_EVENT_CAPS event.</doc>
  23261. <return-value transfer-ownership="none">
  23262. <doc xml:space="preserve">%TRUE when @pad has caps associated with it.</doc>
  23263. <type name="gboolean" c:type="gboolean"/>
  23264. </return-value>
  23265. <parameters>
  23266. <instance-parameter name="pad" transfer-ownership="none">
  23267. <doc xml:space="preserve">a #GstPad to check</doc>
  23268. <type name="Pad" c:type="GstPad*"/>
  23269. </instance-parameter>
  23270. </parameters>
  23271. </method>
  23272. <method name="is_active" c:identifier="gst_pad_is_active">
  23273. <doc xml:space="preserve">Query if a pad is active</doc>
  23274. <return-value transfer-ownership="none">
  23275. <doc xml:space="preserve">%TRUE if the pad is active.
  23276. MT safe.</doc>
  23277. <type name="gboolean" c:type="gboolean"/>
  23278. </return-value>
  23279. <parameters>
  23280. <instance-parameter name="pad" transfer-ownership="none">
  23281. <doc xml:space="preserve">the #GstPad to query</doc>
  23282. <type name="Pad" c:type="GstPad*"/>
  23283. </instance-parameter>
  23284. </parameters>
  23285. </method>
  23286. <method name="is_blocked" c:identifier="gst_pad_is_blocked">
  23287. <doc xml:space="preserve">Checks if the pad is blocked or not. This function returns the
  23288. last requested state of the pad. It is not certain that the pad
  23289. is actually blocking at this point (see gst_pad_is_blocking()).</doc>
  23290. <return-value transfer-ownership="none">
  23291. <doc xml:space="preserve">%TRUE if the pad is blocked.
  23292. MT safe.</doc>
  23293. <type name="gboolean" c:type="gboolean"/>
  23294. </return-value>
  23295. <parameters>
  23296. <instance-parameter name="pad" transfer-ownership="none">
  23297. <doc xml:space="preserve">the #GstPad to query</doc>
  23298. <type name="Pad" c:type="GstPad*"/>
  23299. </instance-parameter>
  23300. </parameters>
  23301. </method>
  23302. <method name="is_blocking" c:identifier="gst_pad_is_blocking">
  23303. <doc xml:space="preserve">Checks if the pad is blocking or not. This is a guaranteed state
  23304. of whether the pad is actually blocking on a #GstBuffer or a #GstEvent.</doc>
  23305. <return-value transfer-ownership="none">
  23306. <doc xml:space="preserve">%TRUE if the pad is blocking.
  23307. MT safe.</doc>
  23308. <type name="gboolean" c:type="gboolean"/>
  23309. </return-value>
  23310. <parameters>
  23311. <instance-parameter name="pad" transfer-ownership="none">
  23312. <doc xml:space="preserve">the #GstPad to query</doc>
  23313. <type name="Pad" c:type="GstPad*"/>
  23314. </instance-parameter>
  23315. </parameters>
  23316. </method>
  23317. <method name="is_linked" c:identifier="gst_pad_is_linked">
  23318. <doc xml:space="preserve">Checks if a @pad is linked to another pad or not.</doc>
  23319. <return-value transfer-ownership="none">
  23320. <doc xml:space="preserve">%TRUE if the pad is linked, %FALSE otherwise.
  23321. MT safe.</doc>
  23322. <type name="gboolean" c:type="gboolean"/>
  23323. </return-value>
  23324. <parameters>
  23325. <instance-parameter name="pad" transfer-ownership="none">
  23326. <doc xml:space="preserve">pad to check</doc>
  23327. <type name="Pad" c:type="GstPad*"/>
  23328. </instance-parameter>
  23329. </parameters>
  23330. </method>
  23331. <method name="iterate_internal_links"
  23332. c:identifier="gst_pad_iterate_internal_links">
  23333. <doc xml:space="preserve">Gets an iterator for the pads to which the given pad is linked to inside
  23334. of the parent element.
  23335. Each #GstPad element yielded by the iterator will have its refcount increased,
  23336. so unref after use.
  23337. Free-function: gst_iterator_free</doc>
  23338. <return-value transfer-ownership="full" nullable="1">
  23339. <doc xml:space="preserve">a new #GstIterator of #GstPad
  23340. or %NULL when the pad does not have an iterator function
  23341. configured. Use gst_iterator_free() after usage.</doc>
  23342. <type name="Iterator" c:type="GstIterator*"/>
  23343. </return-value>
  23344. <parameters>
  23345. <instance-parameter name="pad" transfer-ownership="none">
  23346. <doc xml:space="preserve">the GstPad to get the internal links of.</doc>
  23347. <type name="Pad" c:type="GstPad*"/>
  23348. </instance-parameter>
  23349. </parameters>
  23350. </method>
  23351. <method name="iterate_internal_links_default"
  23352. c:identifier="gst_pad_iterate_internal_links_default">
  23353. <doc xml:space="preserve">Iterate the list of pads to which the given pad is linked to inside of
  23354. the parent element.
  23355. This is the default handler, and thus returns an iterator of all of the
  23356. pads inside the parent element with opposite direction.
  23357. The caller must free this iterator after use with gst_iterator_free().</doc>
  23358. <return-value transfer-ownership="full" nullable="1">
  23359. <doc xml:space="preserve">a #GstIterator of #GstPad, or %NULL if @pad
  23360. has no parent. Unref each returned pad with gst_object_unref().</doc>
  23361. <type name="Iterator" c:type="GstIterator*"/>
  23362. </return-value>
  23363. <parameters>
  23364. <instance-parameter name="pad" transfer-ownership="none">
  23365. <doc xml:space="preserve">the #GstPad to get the internal links of.</doc>
  23366. <type name="Pad" c:type="GstPad*"/>
  23367. </instance-parameter>
  23368. <parameter name="parent"
  23369. transfer-ownership="none"
  23370. nullable="1"
  23371. allow-none="1">
  23372. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  23373. <type name="Object" c:type="GstObject*"/>
  23374. </parameter>
  23375. </parameters>
  23376. </method>
  23377. <method name="link" c:identifier="gst_pad_link">
  23378. <doc xml:space="preserve">Links the source pad and the sink pad.</doc>
  23379. <return-value transfer-ownership="none">
  23380. <doc xml:space="preserve">A result code indicating if the connection worked or
  23381. what went wrong.
  23382. MT Safe.</doc>
  23383. <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
  23384. </return-value>
  23385. <parameters>
  23386. <instance-parameter name="srcpad" transfer-ownership="none">
  23387. <doc xml:space="preserve">the source #GstPad to link.</doc>
  23388. <type name="Pad" c:type="GstPad*"/>
  23389. </instance-parameter>
  23390. <parameter name="sinkpad" transfer-ownership="none">
  23391. <doc xml:space="preserve">the sink #GstPad to link.</doc>
  23392. <type name="Pad" c:type="GstPad*"/>
  23393. </parameter>
  23394. </parameters>
  23395. </method>
  23396. <method name="link_full" c:identifier="gst_pad_link_full">
  23397. <doc xml:space="preserve">Links the source pad and the sink pad.
  23398. This variant of #gst_pad_link provides a more granular control on the
  23399. checks being done when linking. While providing some considerable speedups
  23400. the caller of this method must be aware that wrong usage of those flags
  23401. can cause severe issues. Refer to the documentation of #GstPadLinkCheck
  23402. for more information.
  23403. MT Safe.</doc>
  23404. <return-value transfer-ownership="none">
  23405. <doc xml:space="preserve">A result code indicating if the connection worked or
  23406. what went wrong.</doc>
  23407. <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
  23408. </return-value>
  23409. <parameters>
  23410. <instance-parameter name="srcpad" transfer-ownership="none">
  23411. <doc xml:space="preserve">the source #GstPad to link.</doc>
  23412. <type name="Pad" c:type="GstPad*"/>
  23413. </instance-parameter>
  23414. <parameter name="sinkpad" transfer-ownership="none">
  23415. <doc xml:space="preserve">the sink #GstPad to link.</doc>
  23416. <type name="Pad" c:type="GstPad*"/>
  23417. </parameter>
  23418. <parameter name="flags" transfer-ownership="none">
  23419. <doc xml:space="preserve">the checks to validate when linking</doc>
  23420. <type name="PadLinkCheck" c:type="GstPadLinkCheck"/>
  23421. </parameter>
  23422. </parameters>
  23423. </method>
  23424. <method name="mark_reconfigure" c:identifier="gst_pad_mark_reconfigure">
  23425. <doc xml:space="preserve">Mark a pad for needing reconfiguration. The next call to
  23426. gst_pad_check_reconfigure() will return %TRUE after this call.</doc>
  23427. <return-value transfer-ownership="none">
  23428. <type name="none" c:type="void"/>
  23429. </return-value>
  23430. <parameters>
  23431. <instance-parameter name="pad" transfer-ownership="none">
  23432. <doc xml:space="preserve">the #GstPad to mark</doc>
  23433. <type name="Pad" c:type="GstPad*"/>
  23434. </instance-parameter>
  23435. </parameters>
  23436. </method>
  23437. <method name="needs_reconfigure"
  23438. c:identifier="gst_pad_needs_reconfigure">
  23439. <doc xml:space="preserve">Check the #GST_PAD_FLAG_NEED_RECONFIGURE flag on @pad and return %TRUE
  23440. if the flag was set.</doc>
  23441. <return-value transfer-ownership="none">
  23442. <doc xml:space="preserve">%TRUE is the GST_PAD_FLAG_NEED_RECONFIGURE flag is set on @pad.</doc>
  23443. <type name="gboolean" c:type="gboolean"/>
  23444. </return-value>
  23445. <parameters>
  23446. <instance-parameter name="pad" transfer-ownership="none">
  23447. <doc xml:space="preserve">the #GstPad to check</doc>
  23448. <type name="Pad" c:type="GstPad*"/>
  23449. </instance-parameter>
  23450. </parameters>
  23451. </method>
  23452. <method name="pause_task" c:identifier="gst_pad_pause_task">
  23453. <doc xml:space="preserve">Pause the task of @pad. This function will also wait until the
  23454. function executed by the task is finished if this function is not
  23455. called from the task function.</doc>
  23456. <return-value transfer-ownership="none">
  23457. <doc xml:space="preserve">a %TRUE if the task could be paused or %FALSE when the pad
  23458. has no task.</doc>
  23459. <type name="gboolean" c:type="gboolean"/>
  23460. </return-value>
  23461. <parameters>
  23462. <instance-parameter name="pad" transfer-ownership="none">
  23463. <doc xml:space="preserve">the #GstPad to pause the task of</doc>
  23464. <type name="Pad" c:type="GstPad*"/>
  23465. </instance-parameter>
  23466. </parameters>
  23467. </method>
  23468. <method name="peer_query" c:identifier="gst_pad_peer_query">
  23469. <doc xml:space="preserve">Performs gst_pad_query() on the peer of @pad.
  23470. The caller is responsible for both the allocation and deallocation of
  23471. the query structure.</doc>
  23472. <return-value transfer-ownership="none">
  23473. <doc xml:space="preserve">%TRUE if the query could be performed. This function returns %FALSE
  23474. if @pad has no peer.</doc>
  23475. <type name="gboolean" c:type="gboolean"/>
  23476. </return-value>
  23477. <parameters>
  23478. <instance-parameter name="pad" transfer-ownership="none">
  23479. <doc xml:space="preserve">a #GstPad to invoke the peer query on.</doc>
  23480. <type name="Pad" c:type="GstPad*"/>
  23481. </instance-parameter>
  23482. <parameter name="query" transfer-ownership="none">
  23483. <doc xml:space="preserve">the #GstQuery to perform.</doc>
  23484. <type name="Query" c:type="GstQuery*"/>
  23485. </parameter>
  23486. </parameters>
  23487. </method>
  23488. <method name="peer_query_accept_caps"
  23489. c:identifier="gst_pad_peer_query_accept_caps">
  23490. <doc xml:space="preserve">Check if the peer of @pad accepts @caps. If @pad has no peer, this function
  23491. returns %TRUE.</doc>
  23492. <return-value transfer-ownership="none">
  23493. <doc xml:space="preserve">%TRUE if the peer of @pad can accept the caps or @pad has no peer.</doc>
  23494. <type name="gboolean" c:type="gboolean"/>
  23495. </return-value>
  23496. <parameters>
  23497. <instance-parameter name="pad" transfer-ownership="none">
  23498. <doc xml:space="preserve">a #GstPad to check the peer of</doc>
  23499. <type name="Pad" c:type="GstPad*"/>
  23500. </instance-parameter>
  23501. <parameter name="caps" transfer-ownership="none">
  23502. <doc xml:space="preserve">a #GstCaps to check on the pad</doc>
  23503. <type name="Caps" c:type="GstCaps*"/>
  23504. </parameter>
  23505. </parameters>
  23506. </method>
  23507. <method name="peer_query_caps" c:identifier="gst_pad_peer_query_caps">
  23508. <doc xml:space="preserve">Gets the capabilities of the peer connected to this pad. Similar to
  23509. gst_pad_query_caps().
  23510. When called on srcpads @filter contains the caps that
  23511. upstream could produce in the order preferred by upstream. When
  23512. called on sinkpads @filter contains the caps accepted by
  23513. downstream in the preferred order. @filter might be %NULL but
  23514. if it is not %NULL the returned caps will be a subset of @filter.</doc>
  23515. <return-value transfer-ownership="full">
  23516. <doc xml:space="preserve">the caps of the peer pad with incremented
  23517. ref-count. When there is no peer pad, this function returns @filter or,
  23518. when @filter is %NULL, ANY caps.</doc>
  23519. <type name="Caps" c:type="GstCaps*"/>
  23520. </return-value>
  23521. <parameters>
  23522. <instance-parameter name="pad" transfer-ownership="none">
  23523. <doc xml:space="preserve">a #GstPad to get the capabilities of.</doc>
  23524. <type name="Pad" c:type="GstPad*"/>
  23525. </instance-parameter>
  23526. <parameter name="filter"
  23527. transfer-ownership="none"
  23528. nullable="1"
  23529. allow-none="1">
  23530. <doc xml:space="preserve">a #GstCaps filter, or %NULL.</doc>
  23531. <type name="Caps" c:type="GstCaps*"/>
  23532. </parameter>
  23533. </parameters>
  23534. </method>
  23535. <method name="peer_query_convert"
  23536. c:identifier="gst_pad_peer_query_convert">
  23537. <doc xml:space="preserve">Queries the peer pad of a given sink pad to convert @src_val in @src_format
  23538. to @dest_format.</doc>
  23539. <return-value transfer-ownership="none">
  23540. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23541. <type name="gboolean" c:type="gboolean"/>
  23542. </return-value>
  23543. <parameters>
  23544. <instance-parameter name="pad" transfer-ownership="none">
  23545. <doc xml:space="preserve">a #GstPad, on whose peer pad to invoke the convert query on.
  23546. Must be a sink pad.</doc>
  23547. <type name="Pad" c:type="GstPad*"/>
  23548. </instance-parameter>
  23549. <parameter name="src_format" transfer-ownership="none">
  23550. <doc xml:space="preserve">a #GstFormat to convert from.</doc>
  23551. <type name="Format" c:type="GstFormat"/>
  23552. </parameter>
  23553. <parameter name="src_val" transfer-ownership="none">
  23554. <doc xml:space="preserve">a value to convert.</doc>
  23555. <type name="gint64" c:type="gint64"/>
  23556. </parameter>
  23557. <parameter name="dest_format" transfer-ownership="none">
  23558. <doc xml:space="preserve">the #GstFormat to convert to.</doc>
  23559. <type name="Format" c:type="GstFormat"/>
  23560. </parameter>
  23561. <parameter name="dest_val"
  23562. direction="out"
  23563. caller-allocates="0"
  23564. transfer-ownership="full">
  23565. <doc xml:space="preserve">a pointer to the result.</doc>
  23566. <type name="gint64" c:type="gint64*"/>
  23567. </parameter>
  23568. </parameters>
  23569. </method>
  23570. <method name="peer_query_duration"
  23571. c:identifier="gst_pad_peer_query_duration">
  23572. <doc xml:space="preserve">Queries the peer pad of a given sink pad for the total stream duration.</doc>
  23573. <return-value transfer-ownership="none">
  23574. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23575. <type name="gboolean" c:type="gboolean"/>
  23576. </return-value>
  23577. <parameters>
  23578. <instance-parameter name="pad" transfer-ownership="none">
  23579. <doc xml:space="preserve">a #GstPad on whose peer pad to invoke the duration query on.
  23580. Must be a sink pad.</doc>
  23581. <type name="Pad" c:type="GstPad*"/>
  23582. </instance-parameter>
  23583. <parameter name="format" transfer-ownership="none">
  23584. <doc xml:space="preserve">the #GstFormat requested</doc>
  23585. <type name="Format" c:type="GstFormat"/>
  23586. </parameter>
  23587. <parameter name="duration"
  23588. direction="out"
  23589. caller-allocates="0"
  23590. transfer-ownership="full"
  23591. optional="1"
  23592. allow-none="1">
  23593. <doc xml:space="preserve">a location in which to store the total
  23594. duration, or %NULL.</doc>
  23595. <type name="gint64" c:type="gint64*"/>
  23596. </parameter>
  23597. </parameters>
  23598. </method>
  23599. <method name="peer_query_position"
  23600. c:identifier="gst_pad_peer_query_position">
  23601. <doc xml:space="preserve">Queries the peer of a given sink pad for the stream position.</doc>
  23602. <return-value transfer-ownership="none">
  23603. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23604. <type name="gboolean" c:type="gboolean"/>
  23605. </return-value>
  23606. <parameters>
  23607. <instance-parameter name="pad" transfer-ownership="none">
  23608. <doc xml:space="preserve">a #GstPad on whose peer to invoke the position query on.
  23609. Must be a sink pad.</doc>
  23610. <type name="Pad" c:type="GstPad*"/>
  23611. </instance-parameter>
  23612. <parameter name="format" transfer-ownership="none">
  23613. <doc xml:space="preserve">the #GstFormat requested</doc>
  23614. <type name="Format" c:type="GstFormat"/>
  23615. </parameter>
  23616. <parameter name="cur"
  23617. direction="out"
  23618. caller-allocates="0"
  23619. transfer-ownership="full"
  23620. optional="1"
  23621. allow-none="1">
  23622. <doc xml:space="preserve">a location in which to store the current
  23623. position, or %NULL.</doc>
  23624. <type name="gint64" c:type="gint64*"/>
  23625. </parameter>
  23626. </parameters>
  23627. </method>
  23628. <method name="proxy_query_accept_caps"
  23629. c:identifier="gst_pad_proxy_query_accept_caps">
  23630. <doc xml:space="preserve">Checks if all internally linked pads of @pad accepts the caps in @query and
  23631. returns the intersection of the results.
  23632. This function is useful as a default accept caps query function for an element
  23633. that can handle any stream format, but requires caps that are acceptable for
  23634. all opposite pads.</doc>
  23635. <return-value transfer-ownership="none">
  23636. <doc xml:space="preserve">%TRUE if @query could be executed</doc>
  23637. <type name="gboolean" c:type="gboolean"/>
  23638. </return-value>
  23639. <parameters>
  23640. <instance-parameter name="pad" transfer-ownership="none">
  23641. <doc xml:space="preserve">a #GstPad to proxy.</doc>
  23642. <type name="Pad" c:type="GstPad*"/>
  23643. </instance-parameter>
  23644. <parameter name="query" transfer-ownership="none">
  23645. <doc xml:space="preserve">an ACCEPT_CAPS #GstQuery.</doc>
  23646. <type name="Query" c:type="GstQuery*"/>
  23647. </parameter>
  23648. </parameters>
  23649. </method>
  23650. <method name="proxy_query_caps" c:identifier="gst_pad_proxy_query_caps">
  23651. <doc xml:space="preserve">Calls gst_pad_query_caps() for all internally linked pads of @pad and returns
  23652. the intersection of the results.
  23653. This function is useful as a default caps query function for an element
  23654. that can handle any stream format, but requires all its pads to have
  23655. the same caps. Two such elements are tee and adder.</doc>
  23656. <return-value transfer-ownership="none">
  23657. <doc xml:space="preserve">%TRUE if @query could be executed</doc>
  23658. <type name="gboolean" c:type="gboolean"/>
  23659. </return-value>
  23660. <parameters>
  23661. <instance-parameter name="pad" transfer-ownership="none">
  23662. <doc xml:space="preserve">a #GstPad to proxy.</doc>
  23663. <type name="Pad" c:type="GstPad*"/>
  23664. </instance-parameter>
  23665. <parameter name="query" transfer-ownership="none">
  23666. <doc xml:space="preserve">a CAPS #GstQuery.</doc>
  23667. <type name="Query" c:type="GstQuery*"/>
  23668. </parameter>
  23669. </parameters>
  23670. </method>
  23671. <method name="pull_range" c:identifier="gst_pad_pull_range">
  23672. <doc xml:space="preserve">Pulls a @buffer from the peer pad or fills up a provided buffer.
  23673. This function will first trigger the pad block signal if it was
  23674. installed.
  23675. When @pad is not linked #GST_FLOW_NOT_LINKED is returned else this
  23676. function returns the result of gst_pad_get_range() on the peer pad.
  23677. See gst_pad_get_range() for a list of return values and for the
  23678. semantics of the arguments of this function.
  23679. If @buffer points to a variable holding %NULL, a valid new #GstBuffer will be
  23680. placed in @buffer when this function returns #GST_FLOW_OK. The new buffer
  23681. must be freed with gst_buffer_unref() after usage. When this function
  23682. returns any other result value, @buffer will still point to %NULL.
  23683. When @buffer points to a variable that points to a valid #GstBuffer, the
  23684. buffer will be filled with the result data when this function returns
  23685. #GST_FLOW_OK. When this function returns any other result value,
  23686. @buffer will be unchanged. If the provided buffer is larger than @size, only
  23687. @size bytes will be filled in the result buffer and its size will be updated
  23688. accordingly.
  23689. Note that less than @size bytes can be returned in @buffer when, for example,
  23690. an EOS condition is near or when @buffer is not large enough to hold @size
  23691. bytes. The caller should check the result buffer size to get the result size.</doc>
  23692. <return-value transfer-ownership="none">
  23693. <doc xml:space="preserve">a #GstFlowReturn from the peer pad.
  23694. MT safe.</doc>
  23695. <type name="FlowReturn" c:type="GstFlowReturn"/>
  23696. </return-value>
  23697. <parameters>
  23698. <instance-parameter name="pad" transfer-ownership="none">
  23699. <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
  23700. <type name="Pad" c:type="GstPad*"/>
  23701. </instance-parameter>
  23702. <parameter name="offset" transfer-ownership="none">
  23703. <doc xml:space="preserve">The start offset of the buffer</doc>
  23704. <type name="guint64" c:type="guint64"/>
  23705. </parameter>
  23706. <parameter name="size" transfer-ownership="none">
  23707. <doc xml:space="preserve">The length of the buffer</doc>
  23708. <type name="guint" c:type="guint"/>
  23709. </parameter>
  23710. <parameter name="buffer"
  23711. direction="out"
  23712. caller-allocates="0"
  23713. transfer-ownership="full">
  23714. <doc xml:space="preserve">a pointer to hold the #GstBuffer, returns
  23715. GST_FLOW_ERROR if %NULL.</doc>
  23716. <type name="Buffer" c:type="GstBuffer**"/>
  23717. </parameter>
  23718. </parameters>
  23719. </method>
  23720. <method name="push" c:identifier="gst_pad_push">
  23721. <doc xml:space="preserve">Pushes a buffer to the peer of @pad.
  23722. This function will call installed block probes before triggering any
  23723. installed data probes.
  23724. The function proceeds calling gst_pad_chain() on the peer pad and returns
  23725. the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
  23726. be returned.
  23727. In all cases, success or failure, the caller loses its reference to @buffer
  23728. after calling this function.</doc>
  23729. <return-value transfer-ownership="none">
  23730. <doc xml:space="preserve">a #GstFlowReturn from the peer pad.
  23731. MT safe.</doc>
  23732. <type name="FlowReturn" c:type="GstFlowReturn"/>
  23733. </return-value>
  23734. <parameters>
  23735. <instance-parameter name="pad" transfer-ownership="none">
  23736. <doc xml:space="preserve">a source #GstPad, returns #GST_FLOW_ERROR if not.</doc>
  23737. <type name="Pad" c:type="GstPad*"/>
  23738. </instance-parameter>
  23739. <parameter name="buffer" transfer-ownership="full">
  23740. <doc xml:space="preserve">the #GstBuffer to push returns GST_FLOW_ERROR
  23741. if not.</doc>
  23742. <type name="Buffer" c:type="GstBuffer*"/>
  23743. </parameter>
  23744. </parameters>
  23745. </method>
  23746. <method name="push_event" c:identifier="gst_pad_push_event">
  23747. <doc xml:space="preserve">Sends the event to the peer of the given pad. This function is
  23748. mainly used by elements to send events to their peer
  23749. elements.
  23750. This function takes ownership of the provided event so you should
  23751. gst_event_ref() it if you want to reuse the event after this call.</doc>
  23752. <return-value transfer-ownership="none">
  23753. <doc xml:space="preserve">%TRUE if the event was handled.
  23754. MT safe.</doc>
  23755. <type name="gboolean" c:type="gboolean"/>
  23756. </return-value>
  23757. <parameters>
  23758. <instance-parameter name="pad" transfer-ownership="none">
  23759. <doc xml:space="preserve">a #GstPad to push the event to.</doc>
  23760. <type name="Pad" c:type="GstPad*"/>
  23761. </instance-parameter>
  23762. <parameter name="event" transfer-ownership="full">
  23763. <doc xml:space="preserve">the #GstEvent to send to the pad.</doc>
  23764. <type name="Event" c:type="GstEvent*"/>
  23765. </parameter>
  23766. </parameters>
  23767. </method>
  23768. <method name="push_list" c:identifier="gst_pad_push_list">
  23769. <doc xml:space="preserve">Pushes a buffer list to the peer of @pad.
  23770. This function will call installed block probes before triggering any
  23771. installed data probes.
  23772. The function proceeds calling the chain function on the peer pad and returns
  23773. the value from that function. If @pad has no peer, #GST_FLOW_NOT_LINKED will
  23774. be returned. If the peer pad does not have any installed chainlist function
  23775. every group buffer of the list will be merged into a normal #GstBuffer and
  23776. chained via gst_pad_chain().
  23777. In all cases, success or failure, the caller loses its reference to @list
  23778. after calling this function.</doc>
  23779. <return-value transfer-ownership="none">
  23780. <doc xml:space="preserve">a #GstFlowReturn from the peer pad.
  23781. MT safe.</doc>
  23782. <type name="FlowReturn" c:type="GstFlowReturn"/>
  23783. </return-value>
  23784. <parameters>
  23785. <instance-parameter name="pad" transfer-ownership="none">
  23786. <doc xml:space="preserve">a source #GstPad, returns #GST_FLOW_ERROR if not.</doc>
  23787. <type name="Pad" c:type="GstPad*"/>
  23788. </instance-parameter>
  23789. <parameter name="list" transfer-ownership="full">
  23790. <doc xml:space="preserve">the #GstBufferList to push returns GST_FLOW_ERROR
  23791. if not.</doc>
  23792. <type name="BufferList" c:type="GstBufferList*"/>
  23793. </parameter>
  23794. </parameters>
  23795. </method>
  23796. <method name="query" c:identifier="gst_pad_query">
  23797. <doc xml:space="preserve">Dispatches a query to a pad. The query should have been allocated by the
  23798. caller via one of the type-specific allocation functions. The element that
  23799. the pad belongs to is responsible for filling the query with an appropriate
  23800. response, which should then be parsed with a type-specific query parsing
  23801. function.
  23802. Again, the caller is responsible for both the allocation and deallocation of
  23803. the query structure.
  23804. Please also note that some queries might need a running pipeline to work.</doc>
  23805. <return-value transfer-ownership="none">
  23806. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23807. <type name="gboolean" c:type="gboolean"/>
  23808. </return-value>
  23809. <parameters>
  23810. <instance-parameter name="pad" transfer-ownership="none">
  23811. <doc xml:space="preserve">a #GstPad to invoke the default query on.</doc>
  23812. <type name="Pad" c:type="GstPad*"/>
  23813. </instance-parameter>
  23814. <parameter name="query" transfer-ownership="none">
  23815. <doc xml:space="preserve">the #GstQuery to perform.</doc>
  23816. <type name="Query" c:type="GstQuery*"/>
  23817. </parameter>
  23818. </parameters>
  23819. </method>
  23820. <method name="query_accept_caps"
  23821. c:identifier="gst_pad_query_accept_caps">
  23822. <doc xml:space="preserve">Check if the given pad accepts the caps.</doc>
  23823. <return-value transfer-ownership="none">
  23824. <doc xml:space="preserve">%TRUE if the pad can accept the caps.</doc>
  23825. <type name="gboolean" c:type="gboolean"/>
  23826. </return-value>
  23827. <parameters>
  23828. <instance-parameter name="pad" transfer-ownership="none">
  23829. <doc xml:space="preserve">a #GstPad to check</doc>
  23830. <type name="Pad" c:type="GstPad*"/>
  23831. </instance-parameter>
  23832. <parameter name="caps" transfer-ownership="none">
  23833. <doc xml:space="preserve">a #GstCaps to check on the pad</doc>
  23834. <type name="Caps" c:type="GstCaps*"/>
  23835. </parameter>
  23836. </parameters>
  23837. </method>
  23838. <method name="query_caps" c:identifier="gst_pad_query_caps">
  23839. <doc xml:space="preserve">Gets the capabilities this pad can produce or consume.
  23840. Note that this method doesn't necessarily return the caps set by sending a
  23841. gst_event_new_caps() - use gst_pad_get_current_caps() for that instead.
  23842. gst_pad_query_caps returns all possible caps a pad can operate with, using
  23843. the pad's CAPS query function, If the query fails, this function will return
  23844. @filter, if not %NULL, otherwise ANY.
  23845. When called on sinkpads @filter contains the caps that
  23846. upstream could produce in the order preferred by upstream. When
  23847. called on srcpads @filter contains the caps accepted by
  23848. downstream in the preferred order. @filter might be %NULL but
  23849. if it is not %NULL the returned caps will be a subset of @filter.
  23850. Note that this function does not return writable #GstCaps, use
  23851. gst_caps_make_writable() before modifying the caps.</doc>
  23852. <return-value transfer-ownership="full">
  23853. <doc xml:space="preserve">the caps of the pad with incremented ref-count.</doc>
  23854. <type name="Caps" c:type="GstCaps*"/>
  23855. </return-value>
  23856. <parameters>
  23857. <instance-parameter name="pad" transfer-ownership="none">
  23858. <doc xml:space="preserve">a #GstPad to get the capabilities of.</doc>
  23859. <type name="Pad" c:type="GstPad*"/>
  23860. </instance-parameter>
  23861. <parameter name="filter"
  23862. transfer-ownership="none"
  23863. nullable="1"
  23864. allow-none="1">
  23865. <doc xml:space="preserve">suggested #GstCaps, or %NULL</doc>
  23866. <type name="Caps" c:type="GstCaps*"/>
  23867. </parameter>
  23868. </parameters>
  23869. </method>
  23870. <method name="query_convert" c:identifier="gst_pad_query_convert">
  23871. <doc xml:space="preserve">Queries a pad to convert @src_val in @src_format to @dest_format.</doc>
  23872. <return-value transfer-ownership="none">
  23873. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23874. <type name="gboolean" c:type="gboolean"/>
  23875. </return-value>
  23876. <parameters>
  23877. <instance-parameter name="pad" transfer-ownership="none">
  23878. <doc xml:space="preserve">a #GstPad to invoke the convert query on.</doc>
  23879. <type name="Pad" c:type="GstPad*"/>
  23880. </instance-parameter>
  23881. <parameter name="src_format" transfer-ownership="none">
  23882. <doc xml:space="preserve">a #GstFormat to convert from.</doc>
  23883. <type name="Format" c:type="GstFormat"/>
  23884. </parameter>
  23885. <parameter name="src_val" transfer-ownership="none">
  23886. <doc xml:space="preserve">a value to convert.</doc>
  23887. <type name="gint64" c:type="gint64"/>
  23888. </parameter>
  23889. <parameter name="dest_format" transfer-ownership="none">
  23890. <doc xml:space="preserve">the #GstFormat to convert to.</doc>
  23891. <type name="Format" c:type="GstFormat"/>
  23892. </parameter>
  23893. <parameter name="dest_val"
  23894. direction="out"
  23895. caller-allocates="0"
  23896. transfer-ownership="full">
  23897. <doc xml:space="preserve">a pointer to the result.</doc>
  23898. <type name="gint64" c:type="gint64*"/>
  23899. </parameter>
  23900. </parameters>
  23901. </method>
  23902. <method name="query_default" c:identifier="gst_pad_query_default">
  23903. <doc xml:space="preserve">Invokes the default query handler for the given pad.
  23904. The query is sent to all pads internally linked to @pad. Note that
  23905. if there are many possible sink pads that are internally linked to
  23906. @pad, only one will be sent the query.
  23907. Multi-sinkpad elements should implement custom query handlers.</doc>
  23908. <return-value transfer-ownership="none">
  23909. <doc xml:space="preserve">%TRUE if the query was performed successfully.</doc>
  23910. <type name="gboolean" c:type="gboolean"/>
  23911. </return-value>
  23912. <parameters>
  23913. <instance-parameter name="pad" transfer-ownership="none">
  23914. <doc xml:space="preserve">a #GstPad to call the default query handler on.</doc>
  23915. <type name="Pad" c:type="GstPad*"/>
  23916. </instance-parameter>
  23917. <parameter name="parent"
  23918. transfer-ownership="none"
  23919. nullable="1"
  23920. allow-none="1">
  23921. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  23922. <type name="Object" c:type="GstObject*"/>
  23923. </parameter>
  23924. <parameter name="query" transfer-ownership="none">
  23925. <doc xml:space="preserve">the #GstQuery to handle.</doc>
  23926. <type name="Query" c:type="GstQuery*"/>
  23927. </parameter>
  23928. </parameters>
  23929. </method>
  23930. <method name="query_duration" c:identifier="gst_pad_query_duration">
  23931. <doc xml:space="preserve">Queries a pad for the total stream duration.</doc>
  23932. <return-value transfer-ownership="none">
  23933. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23934. <type name="gboolean" c:type="gboolean"/>
  23935. </return-value>
  23936. <parameters>
  23937. <instance-parameter name="pad" transfer-ownership="none">
  23938. <doc xml:space="preserve">a #GstPad to invoke the duration query on.</doc>
  23939. <type name="Pad" c:type="GstPad*"/>
  23940. </instance-parameter>
  23941. <parameter name="format" transfer-ownership="none">
  23942. <doc xml:space="preserve">the #GstFormat requested</doc>
  23943. <type name="Format" c:type="GstFormat"/>
  23944. </parameter>
  23945. <parameter name="duration"
  23946. direction="out"
  23947. caller-allocates="0"
  23948. transfer-ownership="full"
  23949. optional="1"
  23950. allow-none="1">
  23951. <doc xml:space="preserve">a location in which to store the total
  23952. duration, or %NULL.</doc>
  23953. <type name="gint64" c:type="gint64*"/>
  23954. </parameter>
  23955. </parameters>
  23956. </method>
  23957. <method name="query_position" c:identifier="gst_pad_query_position">
  23958. <doc xml:space="preserve">Queries a pad for the stream position.</doc>
  23959. <return-value transfer-ownership="none">
  23960. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  23961. <type name="gboolean" c:type="gboolean"/>
  23962. </return-value>
  23963. <parameters>
  23964. <instance-parameter name="pad" transfer-ownership="none">
  23965. <doc xml:space="preserve">a #GstPad to invoke the position query on.</doc>
  23966. <type name="Pad" c:type="GstPad*"/>
  23967. </instance-parameter>
  23968. <parameter name="format" transfer-ownership="none">
  23969. <doc xml:space="preserve">the #GstFormat requested</doc>
  23970. <type name="Format" c:type="GstFormat"/>
  23971. </parameter>
  23972. <parameter name="cur"
  23973. direction="out"
  23974. caller-allocates="0"
  23975. transfer-ownership="full"
  23976. optional="1"
  23977. allow-none="1">
  23978. <doc xml:space="preserve">A location in which to store the current position, or %NULL.</doc>
  23979. <type name="gint64" c:type="gint64*"/>
  23980. </parameter>
  23981. </parameters>
  23982. </method>
  23983. <method name="remove_probe" c:identifier="gst_pad_remove_probe">
  23984. <doc xml:space="preserve">Remove the probe with @id from @pad.
  23985. MT safe.</doc>
  23986. <return-value transfer-ownership="none">
  23987. <type name="none" c:type="void"/>
  23988. </return-value>
  23989. <parameters>
  23990. <instance-parameter name="pad" transfer-ownership="none">
  23991. <doc xml:space="preserve">the #GstPad with the probe</doc>
  23992. <type name="Pad" c:type="GstPad*"/>
  23993. </instance-parameter>
  23994. <parameter name="id" transfer-ownership="none">
  23995. <doc xml:space="preserve">the probe id to remove</doc>
  23996. <type name="gulong" c:type="gulong"/>
  23997. </parameter>
  23998. </parameters>
  23999. </method>
  24000. <method name="send_event" c:identifier="gst_pad_send_event">
  24001. <doc xml:space="preserve">Sends the event to the pad. This function can be used
  24002. by applications to send events in the pipeline.
  24003. If @pad is a source pad, @event should be an upstream event. If @pad is a
  24004. sink pad, @event should be a downstream event. For example, you would not
  24005. send a #GST_EVENT_EOS on a src pad; EOS events only propagate downstream.
  24006. Furthermore, some downstream events have to be serialized with data flow,
  24007. like EOS, while some can travel out-of-band, like #GST_EVENT_FLUSH_START. If
  24008. the event needs to be serialized with data flow, this function will take the
  24009. pad's stream lock while calling its event function.
  24010. To find out whether an event type is upstream, downstream, or downstream and
  24011. serialized, see #GstEventTypeFlags, gst_event_type_get_flags(),
  24012. #GST_EVENT_IS_UPSTREAM, #GST_EVENT_IS_DOWNSTREAM, and
  24013. #GST_EVENT_IS_SERIALIZED. Note that in practice that an application or
  24014. plugin doesn't need to bother itself with this information; the core handles
  24015. all necessary locks and checks.
  24016. This function takes ownership of the provided event so you should
  24017. gst_event_ref() it if you want to reuse the event after this call.</doc>
  24018. <return-value transfer-ownership="none">
  24019. <doc xml:space="preserve">%TRUE if the event was handled.</doc>
  24020. <type name="gboolean" c:type="gboolean"/>
  24021. </return-value>
  24022. <parameters>
  24023. <instance-parameter name="pad" transfer-ownership="none">
  24024. <doc xml:space="preserve">a #GstPad to send the event to.</doc>
  24025. <type name="Pad" c:type="GstPad*"/>
  24026. </instance-parameter>
  24027. <parameter name="event" transfer-ownership="full">
  24028. <doc xml:space="preserve">the #GstEvent to send to the pad.</doc>
  24029. <type name="Event" c:type="GstEvent*"/>
  24030. </parameter>
  24031. </parameters>
  24032. </method>
  24033. <method name="set_activate_function_full"
  24034. c:identifier="gst_pad_set_activate_function_full">
  24035. <doc xml:space="preserve">Sets the given activate function for @pad. The activate function will
  24036. dispatch to gst_pad_activate_mode() to perform the actual activation.
  24037. Only makes sense to set on sink pads.
  24038. Call this function if your sink pad can start a pull-based task.</doc>
  24039. <return-value transfer-ownership="none">
  24040. <type name="none" c:type="void"/>
  24041. </return-value>
  24042. <parameters>
  24043. <instance-parameter name="pad" transfer-ownership="none">
  24044. <doc xml:space="preserve">a #GstPad.</doc>
  24045. <type name="Pad" c:type="GstPad*"/>
  24046. </instance-parameter>
  24047. <parameter name="activate"
  24048. transfer-ownership="none"
  24049. scope="notified"
  24050. closure="1"
  24051. destroy="2">
  24052. <doc xml:space="preserve">the #GstPadActivateFunction to set.</doc>
  24053. <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
  24054. </parameter>
  24055. <parameter name="user_data"
  24056. transfer-ownership="none"
  24057. nullable="1"
  24058. allow-none="1">
  24059. <doc xml:space="preserve">user_data passed to @notify</doc>
  24060. <type name="gpointer" c:type="gpointer"/>
  24061. </parameter>
  24062. <parameter name="notify" transfer-ownership="none" scope="async">
  24063. <doc xml:space="preserve">notify called when @activate will not be used anymore.</doc>
  24064. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24065. </parameter>
  24066. </parameters>
  24067. </method>
  24068. <method name="set_activatemode_function_full"
  24069. c:identifier="gst_pad_set_activatemode_function_full">
  24070. <doc xml:space="preserve">Sets the given activate_mode function for the pad. An activate_mode function
  24071. prepares the element for data passing.</doc>
  24072. <return-value transfer-ownership="none">
  24073. <type name="none" c:type="void"/>
  24074. </return-value>
  24075. <parameters>
  24076. <instance-parameter name="pad" transfer-ownership="none">
  24077. <doc xml:space="preserve">a #GstPad.</doc>
  24078. <type name="Pad" c:type="GstPad*"/>
  24079. </instance-parameter>
  24080. <parameter name="activatemode"
  24081. transfer-ownership="none"
  24082. scope="notified"
  24083. closure="1"
  24084. destroy="2">
  24085. <doc xml:space="preserve">the #GstPadActivateModeFunction to set.</doc>
  24086. <type name="PadActivateModeFunction"
  24087. c:type="GstPadActivateModeFunction"/>
  24088. </parameter>
  24089. <parameter name="user_data"
  24090. transfer-ownership="none"
  24091. nullable="1"
  24092. allow-none="1">
  24093. <doc xml:space="preserve">user_data passed to @notify</doc>
  24094. <type name="gpointer" c:type="gpointer"/>
  24095. </parameter>
  24096. <parameter name="notify" transfer-ownership="none" scope="async">
  24097. <doc xml:space="preserve">notify called when @activatemode will not be used anymore.</doc>
  24098. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24099. </parameter>
  24100. </parameters>
  24101. </method>
  24102. <method name="set_active" c:identifier="gst_pad_set_active">
  24103. <doc xml:space="preserve">Activates or deactivates the given pad.
  24104. Normally called from within core state change functions.
  24105. If @active, makes sure the pad is active. If it is already active, either in
  24106. push or pull mode, just return. Otherwise dispatches to the pad's activate
  24107. function to perform the actual activation.
  24108. If not @active, calls gst_pad_activate_mode() with the pad's current mode
  24109. and a %FALSE argument.</doc>
  24110. <return-value transfer-ownership="none">
  24111. <doc xml:space="preserve">%TRUE if the operation was successful.
  24112. MT safe.</doc>
  24113. <type name="gboolean" c:type="gboolean"/>
  24114. </return-value>
  24115. <parameters>
  24116. <instance-parameter name="pad" transfer-ownership="none">
  24117. <doc xml:space="preserve">the #GstPad to activate or deactivate.</doc>
  24118. <type name="Pad" c:type="GstPad*"/>
  24119. </instance-parameter>
  24120. <parameter name="active" transfer-ownership="none">
  24121. <doc xml:space="preserve">whether or not the pad should be active.</doc>
  24122. <type name="gboolean" c:type="gboolean"/>
  24123. </parameter>
  24124. </parameters>
  24125. </method>
  24126. <method name="set_chain_function_full"
  24127. c:identifier="gst_pad_set_chain_function_full">
  24128. <doc xml:space="preserve">Sets the given chain function for the pad. The chain function is called to
  24129. process a #GstBuffer input buffer. see #GstPadChainFunction for more details.</doc>
  24130. <return-value transfer-ownership="none">
  24131. <type name="none" c:type="void"/>
  24132. </return-value>
  24133. <parameters>
  24134. <instance-parameter name="pad" transfer-ownership="none">
  24135. <doc xml:space="preserve">a sink #GstPad.</doc>
  24136. <type name="Pad" c:type="GstPad*"/>
  24137. </instance-parameter>
  24138. <parameter name="chain"
  24139. transfer-ownership="none"
  24140. scope="notified"
  24141. closure="1"
  24142. destroy="2">
  24143. <doc xml:space="preserve">the #GstPadChainFunction to set.</doc>
  24144. <type name="PadChainFunction" c:type="GstPadChainFunction"/>
  24145. </parameter>
  24146. <parameter name="user_data"
  24147. transfer-ownership="none"
  24148. nullable="1"
  24149. allow-none="1">
  24150. <doc xml:space="preserve">user_data passed to @notify</doc>
  24151. <type name="gpointer" c:type="gpointer"/>
  24152. </parameter>
  24153. <parameter name="notify" transfer-ownership="none" scope="async">
  24154. <doc xml:space="preserve">notify called when @chain will not be used anymore.</doc>
  24155. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24156. </parameter>
  24157. </parameters>
  24158. </method>
  24159. <method name="set_chain_list_function_full"
  24160. c:identifier="gst_pad_set_chain_list_function_full">
  24161. <doc xml:space="preserve">Sets the given chain list function for the pad. The chainlist function is
  24162. called to process a #GstBufferList input buffer list. See
  24163. #GstPadChainListFunction for more details.</doc>
  24164. <return-value transfer-ownership="none">
  24165. <type name="none" c:type="void"/>
  24166. </return-value>
  24167. <parameters>
  24168. <instance-parameter name="pad" transfer-ownership="none">
  24169. <doc xml:space="preserve">a sink #GstPad.</doc>
  24170. <type name="Pad" c:type="GstPad*"/>
  24171. </instance-parameter>
  24172. <parameter name="chainlist"
  24173. transfer-ownership="none"
  24174. scope="notified"
  24175. closure="1"
  24176. destroy="2">
  24177. <doc xml:space="preserve">the #GstPadChainListFunction to set.</doc>
  24178. <type name="PadChainListFunction"
  24179. c:type="GstPadChainListFunction"/>
  24180. </parameter>
  24181. <parameter name="user_data"
  24182. transfer-ownership="none"
  24183. nullable="1"
  24184. allow-none="1">
  24185. <doc xml:space="preserve">user_data passed to @notify</doc>
  24186. <type name="gpointer" c:type="gpointer"/>
  24187. </parameter>
  24188. <parameter name="notify" transfer-ownership="none" scope="async">
  24189. <doc xml:space="preserve">notify called when @chainlist will not be used anymore.</doc>
  24190. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24191. </parameter>
  24192. </parameters>
  24193. </method>
  24194. <method name="set_element_private"
  24195. c:identifier="gst_pad_set_element_private">
  24196. <doc xml:space="preserve">Set the given private data gpointer on the pad.
  24197. This function can only be used by the element that owns the pad.
  24198. No locking is performed in this function.</doc>
  24199. <return-value transfer-ownership="none">
  24200. <type name="none" c:type="void"/>
  24201. </return-value>
  24202. <parameters>
  24203. <instance-parameter name="pad" transfer-ownership="none">
  24204. <doc xml:space="preserve">the #GstPad to set the private data of.</doc>
  24205. <type name="Pad" c:type="GstPad*"/>
  24206. </instance-parameter>
  24207. <parameter name="priv"
  24208. transfer-ownership="none"
  24209. nullable="1"
  24210. allow-none="1">
  24211. <doc xml:space="preserve">The private data to attach to the pad.</doc>
  24212. <type name="gpointer" c:type="gpointer"/>
  24213. </parameter>
  24214. </parameters>
  24215. </method>
  24216. <method name="set_event_full_function_full"
  24217. c:identifier="gst_pad_set_event_full_function_full"
  24218. version="1.8">
  24219. <doc xml:space="preserve">Sets the given event handler for the pad.</doc>
  24220. <return-value transfer-ownership="none">
  24221. <type name="none" c:type="void"/>
  24222. </return-value>
  24223. <parameters>
  24224. <instance-parameter name="pad" transfer-ownership="none">
  24225. <doc xml:space="preserve">a #GstPad of either direction.</doc>
  24226. <type name="Pad" c:type="GstPad*"/>
  24227. </instance-parameter>
  24228. <parameter name="event"
  24229. transfer-ownership="none"
  24230. scope="notified"
  24231. closure="1"
  24232. destroy="2">
  24233. <doc xml:space="preserve">the #GstPadEventFullFunction to set.</doc>
  24234. <type name="PadEventFullFunction"
  24235. c:type="GstPadEventFullFunction"/>
  24236. </parameter>
  24237. <parameter name="user_data"
  24238. transfer-ownership="none"
  24239. nullable="1"
  24240. allow-none="1">
  24241. <doc xml:space="preserve">user_data passed to @notify</doc>
  24242. <type name="gpointer" c:type="gpointer"/>
  24243. </parameter>
  24244. <parameter name="notify" transfer-ownership="none" scope="async">
  24245. <doc xml:space="preserve">notify called when @event will not be used anymore.</doc>
  24246. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24247. </parameter>
  24248. </parameters>
  24249. </method>
  24250. <method name="set_event_function_full"
  24251. c:identifier="gst_pad_set_event_function_full">
  24252. <doc xml:space="preserve">Sets the given event handler for the pad.</doc>
  24253. <return-value transfer-ownership="none">
  24254. <type name="none" c:type="void"/>
  24255. </return-value>
  24256. <parameters>
  24257. <instance-parameter name="pad" transfer-ownership="none">
  24258. <doc xml:space="preserve">a #GstPad of either direction.</doc>
  24259. <type name="Pad" c:type="GstPad*"/>
  24260. </instance-parameter>
  24261. <parameter name="event"
  24262. transfer-ownership="none"
  24263. scope="notified"
  24264. closure="1"
  24265. destroy="2">
  24266. <doc xml:space="preserve">the #GstPadEventFunction to set.</doc>
  24267. <type name="PadEventFunction" c:type="GstPadEventFunction"/>
  24268. </parameter>
  24269. <parameter name="user_data"
  24270. transfer-ownership="none"
  24271. nullable="1"
  24272. allow-none="1">
  24273. <doc xml:space="preserve">user_data passed to @notify</doc>
  24274. <type name="gpointer" c:type="gpointer"/>
  24275. </parameter>
  24276. <parameter name="notify" transfer-ownership="none" scope="async">
  24277. <doc xml:space="preserve">notify called when @event will not be used anymore.</doc>
  24278. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24279. </parameter>
  24280. </parameters>
  24281. </method>
  24282. <method name="set_getrange_function_full"
  24283. c:identifier="gst_pad_set_getrange_function_full">
  24284. <doc xml:space="preserve">Sets the given getrange function for the pad. The getrange function is
  24285. called to produce a new #GstBuffer to start the processing pipeline. see
  24286. #GstPadGetRangeFunction for a description of the getrange function.</doc>
  24287. <return-value transfer-ownership="none">
  24288. <type name="none" c:type="void"/>
  24289. </return-value>
  24290. <parameters>
  24291. <instance-parameter name="pad" transfer-ownership="none">
  24292. <doc xml:space="preserve">a source #GstPad.</doc>
  24293. <type name="Pad" c:type="GstPad*"/>
  24294. </instance-parameter>
  24295. <parameter name="get"
  24296. transfer-ownership="none"
  24297. scope="notified"
  24298. closure="1"
  24299. destroy="2">
  24300. <doc xml:space="preserve">the #GstPadGetRangeFunction to set.</doc>
  24301. <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
  24302. </parameter>
  24303. <parameter name="user_data"
  24304. transfer-ownership="none"
  24305. nullable="1"
  24306. allow-none="1">
  24307. <doc xml:space="preserve">user_data passed to @notify</doc>
  24308. <type name="gpointer" c:type="gpointer"/>
  24309. </parameter>
  24310. <parameter name="notify" transfer-ownership="none" scope="async">
  24311. <doc xml:space="preserve">notify called when @get will not be used anymore.</doc>
  24312. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24313. </parameter>
  24314. </parameters>
  24315. </method>
  24316. <method name="set_iterate_internal_links_function_full"
  24317. c:identifier="gst_pad_set_iterate_internal_links_function_full">
  24318. <doc xml:space="preserve">Sets the given internal link iterator function for the pad.</doc>
  24319. <return-value transfer-ownership="none">
  24320. <type name="none" c:type="void"/>
  24321. </return-value>
  24322. <parameters>
  24323. <instance-parameter name="pad" transfer-ownership="none">
  24324. <doc xml:space="preserve">a #GstPad of either direction.</doc>
  24325. <type name="Pad" c:type="GstPad*"/>
  24326. </instance-parameter>
  24327. <parameter name="iterintlink"
  24328. transfer-ownership="none"
  24329. scope="notified"
  24330. closure="1"
  24331. destroy="2">
  24332. <doc xml:space="preserve">the #GstPadIterIntLinkFunction to set.</doc>
  24333. <type name="PadIterIntLinkFunction"
  24334. c:type="GstPadIterIntLinkFunction"/>
  24335. </parameter>
  24336. <parameter name="user_data"
  24337. transfer-ownership="none"
  24338. nullable="1"
  24339. allow-none="1">
  24340. <doc xml:space="preserve">user_data passed to @notify</doc>
  24341. <type name="gpointer" c:type="gpointer"/>
  24342. </parameter>
  24343. <parameter name="notify" transfer-ownership="none" scope="async">
  24344. <doc xml:space="preserve">notify called when @iterintlink will not be used anymore.</doc>
  24345. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24346. </parameter>
  24347. </parameters>
  24348. </method>
  24349. <method name="set_link_function_full"
  24350. c:identifier="gst_pad_set_link_function_full">
  24351. <doc xml:space="preserve">Sets the given link function for the pad. It will be called when
  24352. the pad is linked with another pad.
  24353. The return value #GST_PAD_LINK_OK should be used when the connection can be
  24354. made.
  24355. The return value #GST_PAD_LINK_REFUSED should be used when the connection
  24356. cannot be made for some reason.
  24357. If @link is installed on a source pad, it should call the #GstPadLinkFunction
  24358. of the peer sink pad, if present.</doc>
  24359. <return-value transfer-ownership="none">
  24360. <type name="none" c:type="void"/>
  24361. </return-value>
  24362. <parameters>
  24363. <instance-parameter name="pad" transfer-ownership="none">
  24364. <doc xml:space="preserve">a #GstPad.</doc>
  24365. <type name="Pad" c:type="GstPad*"/>
  24366. </instance-parameter>
  24367. <parameter name="link"
  24368. transfer-ownership="none"
  24369. scope="notified"
  24370. closure="1"
  24371. destroy="2">
  24372. <doc xml:space="preserve">the #GstPadLinkFunction to set.</doc>
  24373. <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
  24374. </parameter>
  24375. <parameter name="user_data"
  24376. transfer-ownership="none"
  24377. nullable="1"
  24378. allow-none="1">
  24379. <doc xml:space="preserve">user_data passed to @notify</doc>
  24380. <type name="gpointer" c:type="gpointer"/>
  24381. </parameter>
  24382. <parameter name="notify" transfer-ownership="none" scope="async">
  24383. <doc xml:space="preserve">notify called when @link will not be used anymore.</doc>
  24384. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24385. </parameter>
  24386. </parameters>
  24387. </method>
  24388. <method name="set_offset" c:identifier="gst_pad_set_offset">
  24389. <doc xml:space="preserve">Set the offset that will be applied to the running time of @pad.</doc>
  24390. <return-value transfer-ownership="none">
  24391. <type name="none" c:type="void"/>
  24392. </return-value>
  24393. <parameters>
  24394. <instance-parameter name="pad" transfer-ownership="none">
  24395. <doc xml:space="preserve">a #GstPad</doc>
  24396. <type name="Pad" c:type="GstPad*"/>
  24397. </instance-parameter>
  24398. <parameter name="offset" transfer-ownership="none">
  24399. <doc xml:space="preserve">the offset</doc>
  24400. <type name="gint64" c:type="gint64"/>
  24401. </parameter>
  24402. </parameters>
  24403. </method>
  24404. <method name="set_query_function_full"
  24405. c:identifier="gst_pad_set_query_function_full">
  24406. <doc xml:space="preserve">Set the given query function for the pad.</doc>
  24407. <return-value transfer-ownership="none">
  24408. <type name="none" c:type="void"/>
  24409. </return-value>
  24410. <parameters>
  24411. <instance-parameter name="pad" transfer-ownership="none">
  24412. <doc xml:space="preserve">a #GstPad of either direction.</doc>
  24413. <type name="Pad" c:type="GstPad*"/>
  24414. </instance-parameter>
  24415. <parameter name="query"
  24416. transfer-ownership="none"
  24417. scope="notified"
  24418. closure="1"
  24419. destroy="2">
  24420. <doc xml:space="preserve">the #GstPadQueryFunction to set.</doc>
  24421. <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
  24422. </parameter>
  24423. <parameter name="user_data"
  24424. transfer-ownership="none"
  24425. nullable="1"
  24426. allow-none="1">
  24427. <doc xml:space="preserve">user_data passed to @notify</doc>
  24428. <type name="gpointer" c:type="gpointer"/>
  24429. </parameter>
  24430. <parameter name="notify" transfer-ownership="none" scope="async">
  24431. <doc xml:space="preserve">notify called when @query will not be used anymore.</doc>
  24432. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24433. </parameter>
  24434. </parameters>
  24435. </method>
  24436. <method name="set_unlink_function_full"
  24437. c:identifier="gst_pad_set_unlink_function_full">
  24438. <doc xml:space="preserve">Sets the given unlink function for the pad. It will be called
  24439. when the pad is unlinked.</doc>
  24440. <return-value transfer-ownership="none">
  24441. <type name="none" c:type="void"/>
  24442. </return-value>
  24443. <parameters>
  24444. <instance-parameter name="pad" transfer-ownership="none">
  24445. <doc xml:space="preserve">a #GstPad.</doc>
  24446. <type name="Pad" c:type="GstPad*"/>
  24447. </instance-parameter>
  24448. <parameter name="unlink"
  24449. transfer-ownership="none"
  24450. scope="notified"
  24451. closure="1"
  24452. destroy="2">
  24453. <doc xml:space="preserve">the #GstPadUnlinkFunction to set.</doc>
  24454. <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
  24455. </parameter>
  24456. <parameter name="user_data"
  24457. transfer-ownership="none"
  24458. nullable="1"
  24459. allow-none="1">
  24460. <doc xml:space="preserve">user_data passed to @notify</doc>
  24461. <type name="gpointer" c:type="gpointer"/>
  24462. </parameter>
  24463. <parameter name="notify" transfer-ownership="none" scope="async">
  24464. <doc xml:space="preserve">notify called when @unlink will not be used anymore.</doc>
  24465. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24466. </parameter>
  24467. </parameters>
  24468. </method>
  24469. <method name="start_task" c:identifier="gst_pad_start_task">
  24470. <doc xml:space="preserve">Starts a task that repeatedly calls @func with @user_data. This function
  24471. is mostly used in pad activation functions to start the dataflow.
  24472. The #GST_PAD_STREAM_LOCK of @pad will automatically be acquired
  24473. before @func is called.</doc>
  24474. <return-value transfer-ownership="none">
  24475. <doc xml:space="preserve">a %TRUE if the task could be started.</doc>
  24476. <type name="gboolean" c:type="gboolean"/>
  24477. </return-value>
  24478. <parameters>
  24479. <instance-parameter name="pad" transfer-ownership="none">
  24480. <doc xml:space="preserve">the #GstPad to start the task of</doc>
  24481. <type name="Pad" c:type="GstPad*"/>
  24482. </instance-parameter>
  24483. <parameter name="func"
  24484. transfer-ownership="none"
  24485. scope="notified"
  24486. closure="1"
  24487. destroy="2">
  24488. <doc xml:space="preserve">the task function to call</doc>
  24489. <type name="TaskFunction" c:type="GstTaskFunction"/>
  24490. </parameter>
  24491. <parameter name="user_data"
  24492. transfer-ownership="none"
  24493. nullable="1"
  24494. allow-none="1">
  24495. <doc xml:space="preserve">user data passed to the task function</doc>
  24496. <type name="gpointer" c:type="gpointer"/>
  24497. </parameter>
  24498. <parameter name="notify" transfer-ownership="none" scope="async">
  24499. <doc xml:space="preserve">called when @user_data is no longer referenced</doc>
  24500. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24501. </parameter>
  24502. </parameters>
  24503. </method>
  24504. <method name="sticky_events_foreach"
  24505. c:identifier="gst_pad_sticky_events_foreach">
  24506. <doc xml:space="preserve">Iterates all sticky events on @pad and calls @foreach_func for every
  24507. event. If @foreach_func returns %FALSE the iteration is immediately stopped.</doc>
  24508. <return-value transfer-ownership="none">
  24509. <type name="none" c:type="void"/>
  24510. </return-value>
  24511. <parameters>
  24512. <instance-parameter name="pad" transfer-ownership="none">
  24513. <doc xml:space="preserve">the #GstPad that should be used for iteration.</doc>
  24514. <type name="Pad" c:type="GstPad*"/>
  24515. </instance-parameter>
  24516. <parameter name="foreach_func"
  24517. transfer-ownership="none"
  24518. scope="call"
  24519. closure="1">
  24520. <doc xml:space="preserve">the #GstPadStickyEventsForeachFunction that
  24521. should be called for every event.</doc>
  24522. <type name="PadStickyEventsForeachFunction"
  24523. c:type="GstPadStickyEventsForeachFunction"/>
  24524. </parameter>
  24525. <parameter name="user_data"
  24526. transfer-ownership="none"
  24527. nullable="1"
  24528. allow-none="1">
  24529. <doc xml:space="preserve">the optional user data.</doc>
  24530. <type name="gpointer" c:type="gpointer"/>
  24531. </parameter>
  24532. </parameters>
  24533. </method>
  24534. <method name="stop_task" c:identifier="gst_pad_stop_task">
  24535. <doc xml:space="preserve">Stop the task of @pad. This function will also make sure that the
  24536. function executed by the task will effectively stop if not called
  24537. from the GstTaskFunction.
  24538. This function will deadlock if called from the GstTaskFunction of
  24539. the task. Use gst_task_pause() instead.
  24540. Regardless of whether the pad has a task, the stream lock is acquired and
  24541. released so as to ensure that streaming through this pad has finished.</doc>
  24542. <return-value transfer-ownership="none">
  24543. <doc xml:space="preserve">a %TRUE if the task could be stopped or %FALSE on error.</doc>
  24544. <type name="gboolean" c:type="gboolean"/>
  24545. </return-value>
  24546. <parameters>
  24547. <instance-parameter name="pad" transfer-ownership="none">
  24548. <doc xml:space="preserve">the #GstPad to stop the task of</doc>
  24549. <type name="Pad" c:type="GstPad*"/>
  24550. </instance-parameter>
  24551. </parameters>
  24552. </method>
  24553. <method name="store_sticky_event"
  24554. c:identifier="gst_pad_store_sticky_event"
  24555. version="1.2">
  24556. <doc xml:space="preserve">Store the sticky @event on @pad</doc>
  24557. <return-value transfer-ownership="none">
  24558. <doc xml:space="preserve">#GST_FLOW_OK on success, #GST_FLOW_FLUSHING when the pad
  24559. was flushing or #GST_FLOW_EOS when the pad was EOS.</doc>
  24560. <type name="FlowReturn" c:type="GstFlowReturn"/>
  24561. </return-value>
  24562. <parameters>
  24563. <instance-parameter name="pad" transfer-ownership="none">
  24564. <doc xml:space="preserve">a #GstPad</doc>
  24565. <type name="Pad" c:type="GstPad*"/>
  24566. </instance-parameter>
  24567. <parameter name="event" transfer-ownership="none">
  24568. <doc xml:space="preserve">a #GstEvent</doc>
  24569. <type name="Event" c:type="GstEvent*"/>
  24570. </parameter>
  24571. </parameters>
  24572. </method>
  24573. <method name="unlink" c:identifier="gst_pad_unlink">
  24574. <doc xml:space="preserve">Unlinks the source pad from the sink pad. Will emit the #GstPad::unlinked
  24575. signal on both pads.</doc>
  24576. <return-value transfer-ownership="none">
  24577. <doc xml:space="preserve">%TRUE if the pads were unlinked. This function returns %FALSE if
  24578. the pads were not linked together.
  24579. MT safe.</doc>
  24580. <type name="gboolean" c:type="gboolean"/>
  24581. </return-value>
  24582. <parameters>
  24583. <instance-parameter name="srcpad" transfer-ownership="none">
  24584. <doc xml:space="preserve">the source #GstPad to unlink.</doc>
  24585. <type name="Pad" c:type="GstPad*"/>
  24586. </instance-parameter>
  24587. <parameter name="sinkpad" transfer-ownership="none">
  24588. <doc xml:space="preserve">the sink #GstPad to unlink.</doc>
  24589. <type name="Pad" c:type="GstPad*"/>
  24590. </parameter>
  24591. </parameters>
  24592. </method>
  24593. <method name="use_fixed_caps" c:identifier="gst_pad_use_fixed_caps">
  24594. <doc xml:space="preserve">A helper function you can use that sets the FIXED_CAPS flag
  24595. This way the default CAPS query will always return the negotiated caps
  24596. or in case the pad is not negotiated, the padtemplate caps.
  24597. The negotiated caps are the caps of the last CAPS event that passed on the
  24598. pad. Use this function on a pad that, once it negotiated to a CAPS, cannot
  24599. be renegotiated to something else.</doc>
  24600. <return-value transfer-ownership="none">
  24601. <type name="none" c:type="void"/>
  24602. </return-value>
  24603. <parameters>
  24604. <instance-parameter name="pad" transfer-ownership="none">
  24605. <doc xml:space="preserve">the pad to use</doc>
  24606. <type name="Pad" c:type="GstPad*"/>
  24607. </instance-parameter>
  24608. </parameters>
  24609. </method>
  24610. <property name="caps" transfer-ownership="none">
  24611. <type name="Caps"/>
  24612. </property>
  24613. <property name="direction"
  24614. writable="1"
  24615. construct-only="1"
  24616. transfer-ownership="none">
  24617. <type name="PadDirection"/>
  24618. </property>
  24619. <property name="offset"
  24620. version="1.6"
  24621. writable="1"
  24622. transfer-ownership="none">
  24623. <doc xml:space="preserve">The offset that will be applied to the running time of the pad.</doc>
  24624. <type name="gint64" c:type="gint64"/>
  24625. </property>
  24626. <property name="template" writable="1" transfer-ownership="none">
  24627. <type name="PadTemplate"/>
  24628. </property>
  24629. <field name="object">
  24630. <type name="Object" c:type="GstObject"/>
  24631. </field>
  24632. <field name="element_private">
  24633. <doc xml:space="preserve">private data owned by the parent element</doc>
  24634. <type name="gpointer" c:type="gpointer"/>
  24635. </field>
  24636. <field name="padtemplate">
  24637. <doc xml:space="preserve">padtemplate for this pad</doc>
  24638. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  24639. </field>
  24640. <field name="direction">
  24641. <doc xml:space="preserve">the direction of the pad, cannot change after creating
  24642. the pad.</doc>
  24643. <type name="PadDirection" c:type="GstPadDirection"/>
  24644. </field>
  24645. <field name="stream_rec_lock" readable="0" private="1">
  24646. <type name="GLib.RecMutex" c:type="GRecMutex"/>
  24647. </field>
  24648. <field name="task" readable="0" private="1">
  24649. <type name="Task" c:type="GstTask*"/>
  24650. </field>
  24651. <field name="block_cond" readable="0" private="1">
  24652. <type name="GLib.Cond" c:type="GCond"/>
  24653. </field>
  24654. <field name="probes" readable="0" private="1">
  24655. <type name="GLib.HookList" c:type="GHookList"/>
  24656. </field>
  24657. <field name="mode" readable="0" private="1">
  24658. <type name="PadMode" c:type="GstPadMode"/>
  24659. </field>
  24660. <field name="activatefunc" readable="0" private="1">
  24661. <type name="PadActivateFunction" c:type="GstPadActivateFunction"/>
  24662. </field>
  24663. <field name="activatedata" readable="0" private="1">
  24664. <type name="gpointer" c:type="gpointer"/>
  24665. </field>
  24666. <field name="activatenotify" readable="0" private="1">
  24667. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24668. </field>
  24669. <field name="activatemodefunc" readable="0" private="1">
  24670. <type name="PadActivateModeFunction"
  24671. c:type="GstPadActivateModeFunction"/>
  24672. </field>
  24673. <field name="activatemodedata" readable="0" private="1">
  24674. <type name="gpointer" c:type="gpointer"/>
  24675. </field>
  24676. <field name="activatemodenotify" readable="0" private="1">
  24677. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24678. </field>
  24679. <field name="peer" readable="0" private="1">
  24680. <type name="Pad" c:type="GstPad*"/>
  24681. </field>
  24682. <field name="linkfunc" readable="0" private="1">
  24683. <type name="PadLinkFunction" c:type="GstPadLinkFunction"/>
  24684. </field>
  24685. <field name="linkdata" readable="0" private="1">
  24686. <type name="gpointer" c:type="gpointer"/>
  24687. </field>
  24688. <field name="linknotify" readable="0" private="1">
  24689. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24690. </field>
  24691. <field name="unlinkfunc" readable="0" private="1">
  24692. <type name="PadUnlinkFunction" c:type="GstPadUnlinkFunction"/>
  24693. </field>
  24694. <field name="unlinkdata" readable="0" private="1">
  24695. <type name="gpointer" c:type="gpointer"/>
  24696. </field>
  24697. <field name="unlinknotify" readable="0" private="1">
  24698. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24699. </field>
  24700. <field name="chainfunc" readable="0" private="1">
  24701. <type name="PadChainFunction" c:type="GstPadChainFunction"/>
  24702. </field>
  24703. <field name="chaindata" readable="0" private="1">
  24704. <type name="gpointer" c:type="gpointer"/>
  24705. </field>
  24706. <field name="chainnotify" readable="0" private="1">
  24707. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24708. </field>
  24709. <field name="chainlistfunc" readable="0" private="1">
  24710. <type name="PadChainListFunction" c:type="GstPadChainListFunction"/>
  24711. </field>
  24712. <field name="chainlistdata" readable="0" private="1">
  24713. <type name="gpointer" c:type="gpointer"/>
  24714. </field>
  24715. <field name="chainlistnotify" readable="0" private="1">
  24716. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24717. </field>
  24718. <field name="getrangefunc" readable="0" private="1">
  24719. <type name="PadGetRangeFunction" c:type="GstPadGetRangeFunction"/>
  24720. </field>
  24721. <field name="getrangedata" readable="0" private="1">
  24722. <type name="gpointer" c:type="gpointer"/>
  24723. </field>
  24724. <field name="getrangenotify" readable="0" private="1">
  24725. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24726. </field>
  24727. <field name="eventfunc" readable="0" private="1">
  24728. <type name="PadEventFunction" c:type="GstPadEventFunction"/>
  24729. </field>
  24730. <field name="eventdata" readable="0" private="1">
  24731. <type name="gpointer" c:type="gpointer"/>
  24732. </field>
  24733. <field name="eventnotify" readable="0" private="1">
  24734. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24735. </field>
  24736. <field name="offset" readable="0" private="1">
  24737. <type name="gint64" c:type="gint64"/>
  24738. </field>
  24739. <field name="queryfunc" readable="0" private="1">
  24740. <type name="PadQueryFunction" c:type="GstPadQueryFunction"/>
  24741. </field>
  24742. <field name="querydata" readable="0" private="1">
  24743. <type name="gpointer" c:type="gpointer"/>
  24744. </field>
  24745. <field name="querynotify" readable="0" private="1">
  24746. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24747. </field>
  24748. <field name="iterintlinkfunc" readable="0" private="1">
  24749. <type name="PadIterIntLinkFunction"
  24750. c:type="GstPadIterIntLinkFunction"/>
  24751. </field>
  24752. <field name="iterintlinkdata" readable="0" private="1">
  24753. <type name="gpointer" c:type="gpointer"/>
  24754. </field>
  24755. <field name="iterintlinknotify" readable="0" private="1">
  24756. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  24757. </field>
  24758. <field name="num_probes" readable="0" private="1">
  24759. <type name="gint" c:type="gint"/>
  24760. </field>
  24761. <field name="num_blocked" readable="0" private="1">
  24762. <type name="gint" c:type="gint"/>
  24763. </field>
  24764. <field name="priv" readable="0" private="1">
  24765. <type name="PadPrivate" c:type="GstPadPrivate*"/>
  24766. </field>
  24767. <union name="ABI" c:type="ABI">
  24768. <field name="_gst_reserved" writable="1">
  24769. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  24770. <type name="gpointer" c:type="gpointer"/>
  24771. </array>
  24772. </field>
  24773. <record name="abi" c:type="abi">
  24774. <field name="last_flowret" writable="1">
  24775. <type name="FlowReturn" c:type="GstFlowReturn"/>
  24776. </field>
  24777. <field name="eventfullfunc" writable="1">
  24778. <type name="PadEventFullFunction"
  24779. c:type="GstPadEventFullFunction"/>
  24780. </field>
  24781. </record>
  24782. </union>
  24783. <glib:signal name="linked" when="last">
  24784. <doc xml:space="preserve">Signals that a pad has been linked to the peer pad.</doc>
  24785. <return-value transfer-ownership="none">
  24786. <type name="none" c:type="void"/>
  24787. </return-value>
  24788. <parameters>
  24789. <parameter name="peer" transfer-ownership="none">
  24790. <doc xml:space="preserve">the peer pad that has been connected</doc>
  24791. <type name="Pad"/>
  24792. </parameter>
  24793. </parameters>
  24794. </glib:signal>
  24795. <glib:signal name="unlinked" when="last">
  24796. <doc xml:space="preserve">Signals that a pad has been unlinked from the peer pad.</doc>
  24797. <return-value transfer-ownership="none">
  24798. <type name="none" c:type="void"/>
  24799. </return-value>
  24800. <parameters>
  24801. <parameter name="peer" transfer-ownership="none">
  24802. <doc xml:space="preserve">the peer pad that has been disconnected</doc>
  24803. <type name="Pad"/>
  24804. </parameter>
  24805. </parameters>
  24806. </glib:signal>
  24807. </class>
  24808. <callback name="PadActivateFunction" c:type="GstPadActivateFunction">
  24809. <doc xml:space="preserve">This function is called when the pad is activated during the element
  24810. READY to PAUSED state change. By default this function will call the
  24811. activate function that puts the pad in push mode but elements can
  24812. override this function to activate the pad in pull mode if they wish.</doc>
  24813. <return-value transfer-ownership="none">
  24814. <doc xml:space="preserve">%TRUE if the pad could be activated.</doc>
  24815. <type name="gboolean" c:type="gboolean"/>
  24816. </return-value>
  24817. <parameters>
  24818. <parameter name="pad" transfer-ownership="none">
  24819. <doc xml:space="preserve">a #GstPad</doc>
  24820. <type name="Pad" c:type="GstPad*"/>
  24821. </parameter>
  24822. <parameter name="parent" transfer-ownership="none">
  24823. <doc xml:space="preserve">the parent of @pad</doc>
  24824. <type name="Object" c:type="GstObject*"/>
  24825. </parameter>
  24826. </parameters>
  24827. </callback>
  24828. <callback name="PadActivateModeFunction"
  24829. c:type="GstPadActivateModeFunction">
  24830. <doc xml:space="preserve">The prototype of the push and pull activate functions.</doc>
  24831. <return-value transfer-ownership="none">
  24832. <doc xml:space="preserve">%TRUE if the pad could be activated or deactivated.</doc>
  24833. <type name="gboolean" c:type="gboolean"/>
  24834. </return-value>
  24835. <parameters>
  24836. <parameter name="pad" transfer-ownership="none">
  24837. <doc xml:space="preserve">a #GstPad</doc>
  24838. <type name="Pad" c:type="GstPad*"/>
  24839. </parameter>
  24840. <parameter name="parent" transfer-ownership="none">
  24841. <doc xml:space="preserve">the parent of @pad</doc>
  24842. <type name="Object" c:type="GstObject*"/>
  24843. </parameter>
  24844. <parameter name="mode" transfer-ownership="none">
  24845. <doc xml:space="preserve">the requested activation mode of @pad</doc>
  24846. <type name="PadMode" c:type="GstPadMode"/>
  24847. </parameter>
  24848. <parameter name="active" transfer-ownership="none">
  24849. <doc xml:space="preserve">activate or deactivate the pad.</doc>
  24850. <type name="gboolean" c:type="gboolean"/>
  24851. </parameter>
  24852. </parameters>
  24853. </callback>
  24854. <callback name="PadChainFunction" c:type="GstPadChainFunction">
  24855. <doc xml:space="preserve">A function that will be called on sinkpads when chaining buffers.
  24856. The function typically processes the data contained in the buffer and
  24857. either consumes the data or passes it on to the internally linked pad(s).
  24858. The implementer of this function receives a refcount to @buffer and should
  24859. gst_buffer_unref() when the buffer is no longer needed.
  24860. When a chain function detects an error in the data stream, it must post an
  24861. error on the bus and return an appropriate #GstFlowReturn value.</doc>
  24862. <return-value transfer-ownership="none">
  24863. <doc xml:space="preserve">#GST_FLOW_OK for success</doc>
  24864. <type name="FlowReturn" c:type="GstFlowReturn"/>
  24865. </return-value>
  24866. <parameters>
  24867. <parameter name="pad" transfer-ownership="none">
  24868. <doc xml:space="preserve">the sink #GstPad that performed the chain.</doc>
  24869. <type name="Pad" c:type="GstPad*"/>
  24870. </parameter>
  24871. <parameter name="parent"
  24872. transfer-ownership="none"
  24873. nullable="1"
  24874. allow-none="1">
  24875. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  24876. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  24877. during the execution of this function.</doc>
  24878. <type name="Object" c:type="GstObject*"/>
  24879. </parameter>
  24880. <parameter name="buffer" transfer-ownership="full">
  24881. <doc xml:space="preserve">the #GstBuffer that is chained, not %NULL.</doc>
  24882. <type name="Buffer" c:type="GstBuffer*"/>
  24883. </parameter>
  24884. </parameters>
  24885. </callback>
  24886. <callback name="PadChainListFunction" c:type="GstPadChainListFunction">
  24887. <doc xml:space="preserve">A function that will be called on sinkpads when chaining buffer lists.
  24888. The function typically processes the data contained in the buffer list and
  24889. either consumes the data or passes it on to the internally linked pad(s).
  24890. The implementer of this function receives a refcount to @list and
  24891. should gst_buffer_list_unref() when the list is no longer needed.
  24892. When a chainlist function detects an error in the data stream, it must
  24893. post an error on the bus and return an appropriate #GstFlowReturn value.</doc>
  24894. <return-value transfer-ownership="none">
  24895. <doc xml:space="preserve">#GST_FLOW_OK for success</doc>
  24896. <type name="FlowReturn" c:type="GstFlowReturn"/>
  24897. </return-value>
  24898. <parameters>
  24899. <parameter name="pad" transfer-ownership="none">
  24900. <doc xml:space="preserve">the sink #GstPad that performed the chain.</doc>
  24901. <type name="Pad" c:type="GstPad*"/>
  24902. </parameter>
  24903. <parameter name="parent"
  24904. transfer-ownership="none"
  24905. nullable="1"
  24906. allow-none="1">
  24907. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  24908. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  24909. during the execution of this function.</doc>
  24910. <type name="Object" c:type="GstObject*"/>
  24911. </parameter>
  24912. <parameter name="list" transfer-ownership="full">
  24913. <doc xml:space="preserve">the #GstBufferList that is chained, not %NULL.</doc>
  24914. <type name="BufferList" c:type="GstBufferList*"/>
  24915. </parameter>
  24916. </parameters>
  24917. </callback>
  24918. <record name="PadClass"
  24919. c:type="GstPadClass"
  24920. glib:is-gtype-struct-for="Pad">
  24921. <field name="parent_class">
  24922. <type name="ObjectClass" c:type="GstObjectClass"/>
  24923. </field>
  24924. <field name="linked">
  24925. <callback name="linked">
  24926. <return-value transfer-ownership="none">
  24927. <type name="none" c:type="void"/>
  24928. </return-value>
  24929. <parameters>
  24930. <parameter name="pad" transfer-ownership="none">
  24931. <type name="Pad" c:type="GstPad*"/>
  24932. </parameter>
  24933. <parameter name="peer" transfer-ownership="none">
  24934. <type name="Pad" c:type="GstPad*"/>
  24935. </parameter>
  24936. </parameters>
  24937. </callback>
  24938. </field>
  24939. <field name="unlinked">
  24940. <callback name="unlinked">
  24941. <return-value transfer-ownership="none">
  24942. <type name="none" c:type="void"/>
  24943. </return-value>
  24944. <parameters>
  24945. <parameter name="pad" transfer-ownership="none">
  24946. <type name="Pad" c:type="GstPad*"/>
  24947. </parameter>
  24948. <parameter name="peer" transfer-ownership="none">
  24949. <type name="Pad" c:type="GstPad*"/>
  24950. </parameter>
  24951. </parameters>
  24952. </callback>
  24953. </field>
  24954. <field name="_gst_reserved" readable="0" private="1">
  24955. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  24956. <type name="gpointer" c:type="gpointer"/>
  24957. </array>
  24958. </field>
  24959. </record>
  24960. <enumeration name="PadDirection"
  24961. glib:type-name="GstPadDirection"
  24962. glib:get-type="gst_pad_direction_get_type"
  24963. c:type="GstPadDirection">
  24964. <doc xml:space="preserve">The direction of a pad.</doc>
  24965. <member name="unknown"
  24966. value="0"
  24967. c:identifier="GST_PAD_UNKNOWN"
  24968. glib:nick="unknown">
  24969. <doc xml:space="preserve">direction is unknown.</doc>
  24970. </member>
  24971. <member name="src" value="1" c:identifier="GST_PAD_SRC" glib:nick="src">
  24972. <doc xml:space="preserve">the pad is a source pad.</doc>
  24973. </member>
  24974. <member name="sink"
  24975. value="2"
  24976. c:identifier="GST_PAD_SINK"
  24977. glib:nick="sink">
  24978. <doc xml:space="preserve">the pad is a sink pad.</doc>
  24979. </member>
  24980. </enumeration>
  24981. <callback name="PadEventFullFunction"
  24982. c:type="GstPadEventFullFunction"
  24983. version="1.8">
  24984. <doc xml:space="preserve">Function signature to handle an event for the pad.
  24985. This variant is for specific elements that will take into account the
  24986. last downstream flow return (from a pad push), in which case they can
  24987. return it.</doc>
  24988. <return-value transfer-ownership="none">
  24989. <doc xml:space="preserve">%GST_FLOW_OK if the event was handled properly, or any other
  24990. #GstFlowReturn dependent on downstream state.</doc>
  24991. <type name="FlowReturn" c:type="GstFlowReturn"/>
  24992. </return-value>
  24993. <parameters>
  24994. <parameter name="pad" transfer-ownership="none">
  24995. <doc xml:space="preserve">the #GstPad to handle the event.</doc>
  24996. <type name="Pad" c:type="GstPad*"/>
  24997. </parameter>
  24998. <parameter name="parent"
  24999. transfer-ownership="none"
  25000. nullable="1"
  25001. allow-none="1">
  25002. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  25003. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  25004. during the execution of this function.</doc>
  25005. <type name="Object" c:type="GstObject*"/>
  25006. </parameter>
  25007. <parameter name="event" transfer-ownership="full">
  25008. <doc xml:space="preserve">the #GstEvent to handle.</doc>
  25009. <type name="Event" c:type="GstEvent*"/>
  25010. </parameter>
  25011. </parameters>
  25012. </callback>
  25013. <callback name="PadEventFunction" c:type="GstPadEventFunction">
  25014. <doc xml:space="preserve">Function signature to handle an event for the pad.</doc>
  25015. <return-value transfer-ownership="none">
  25016. <doc xml:space="preserve">%TRUE if the pad could handle the event.</doc>
  25017. <type name="gboolean" c:type="gboolean"/>
  25018. </return-value>
  25019. <parameters>
  25020. <parameter name="pad" transfer-ownership="none">
  25021. <doc xml:space="preserve">the #GstPad to handle the event.</doc>
  25022. <type name="Pad" c:type="GstPad*"/>
  25023. </parameter>
  25024. <parameter name="parent"
  25025. transfer-ownership="none"
  25026. nullable="1"
  25027. allow-none="1">
  25028. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  25029. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  25030. during the execution of this function.</doc>
  25031. <type name="Object" c:type="GstObject*"/>
  25032. </parameter>
  25033. <parameter name="event" transfer-ownership="full">
  25034. <doc xml:space="preserve">the #GstEvent to handle.</doc>
  25035. <type name="Event" c:type="GstEvent*"/>
  25036. </parameter>
  25037. </parameters>
  25038. </callback>
  25039. <bitfield name="PadFlags"
  25040. glib:type-name="GstPadFlags"
  25041. glib:get-type="gst_pad_flags_get_type"
  25042. c:type="GstPadFlags">
  25043. <doc xml:space="preserve">Pad state flags</doc>
  25044. <member name="blocked"
  25045. value="16"
  25046. c:identifier="GST_PAD_FLAG_BLOCKED"
  25047. glib:nick="blocked">
  25048. <doc xml:space="preserve">is dataflow on a pad blocked</doc>
  25049. </member>
  25050. <member name="flushing"
  25051. value="32"
  25052. c:identifier="GST_PAD_FLAG_FLUSHING"
  25053. glib:nick="flushing">
  25054. <doc xml:space="preserve">is pad flushing</doc>
  25055. </member>
  25056. <member name="eos"
  25057. value="64"
  25058. c:identifier="GST_PAD_FLAG_EOS"
  25059. glib:nick="eos">
  25060. <doc xml:space="preserve">is pad in EOS state</doc>
  25061. </member>
  25062. <member name="blocking"
  25063. value="128"
  25064. c:identifier="GST_PAD_FLAG_BLOCKING"
  25065. glib:nick="blocking">
  25066. <doc xml:space="preserve">is pad currently blocking on a buffer or event</doc>
  25067. </member>
  25068. <member name="need_parent"
  25069. value="256"
  25070. c:identifier="GST_PAD_FLAG_NEED_PARENT"
  25071. glib:nick="need-parent">
  25072. <doc xml:space="preserve">ensure that there is a parent object before calling
  25073. into the pad callbacks.</doc>
  25074. </member>
  25075. <member name="need_reconfigure"
  25076. value="512"
  25077. c:identifier="GST_PAD_FLAG_NEED_RECONFIGURE"
  25078. glib:nick="need-reconfigure">
  25079. <doc xml:space="preserve">the pad should be reconfigured/renegotiated.
  25080. The flag has to be unset manually after
  25081. reconfiguration happened.</doc>
  25082. </member>
  25083. <member name="pending_events"
  25084. value="1024"
  25085. c:identifier="GST_PAD_FLAG_PENDING_EVENTS"
  25086. glib:nick="pending-events">
  25087. <doc xml:space="preserve">the pad has pending events</doc>
  25088. </member>
  25089. <member name="fixed_caps"
  25090. value="2048"
  25091. c:identifier="GST_PAD_FLAG_FIXED_CAPS"
  25092. glib:nick="fixed-caps">
  25093. <doc xml:space="preserve">the pad is using fixed caps. This means that
  25094. once the caps are set on the pad, the default caps query function
  25095. will only return those caps.</doc>
  25096. </member>
  25097. <member name="proxy_caps"
  25098. value="4096"
  25099. c:identifier="GST_PAD_FLAG_PROXY_CAPS"
  25100. glib:nick="proxy-caps">
  25101. <doc xml:space="preserve">the default event and query handler will forward
  25102. all events and queries to the internally linked pads
  25103. instead of discarding them.</doc>
  25104. </member>
  25105. <member name="proxy_allocation"
  25106. value="8192"
  25107. c:identifier="GST_PAD_FLAG_PROXY_ALLOCATION"
  25108. glib:nick="proxy-allocation">
  25109. <doc xml:space="preserve">the default query handler will forward
  25110. allocation queries to the internally linked pads
  25111. instead of discarding them.</doc>
  25112. </member>
  25113. <member name="proxy_scheduling"
  25114. value="16384"
  25115. c:identifier="GST_PAD_FLAG_PROXY_SCHEDULING"
  25116. glib:nick="proxy-scheduling">
  25117. <doc xml:space="preserve">the default query handler will forward
  25118. scheduling queries to the internally linked pads
  25119. instead of discarding them.</doc>
  25120. </member>
  25121. <member name="accept_intersect"
  25122. value="32768"
  25123. c:identifier="GST_PAD_FLAG_ACCEPT_INTERSECT"
  25124. glib:nick="accept-intersect">
  25125. <doc xml:space="preserve">the default accept-caps handler will check
  25126. it the caps intersect the query-caps result instead
  25127. of checking for a subset. This is interesting for
  25128. parsers that can accept incompletely specified caps.</doc>
  25129. </member>
  25130. <member name="accept_template"
  25131. value="65536"
  25132. c:identifier="GST_PAD_FLAG_ACCEPT_TEMPLATE"
  25133. glib:nick="accept-template">
  25134. <doc xml:space="preserve">the default accept-caps handler will use
  25135. the template pad caps instead of query caps to
  25136. compare with the accept caps. Use this in combination
  25137. with %GST_PAD_FLAG_ACCEPT_INTERSECT. (Since 1.6)</doc>
  25138. </member>
  25139. <member name="last"
  25140. value="1048576"
  25141. c:identifier="GST_PAD_FLAG_LAST"
  25142. glib:nick="last">
  25143. <doc xml:space="preserve">offset to define more flags</doc>
  25144. </member>
  25145. </bitfield>
  25146. <callback name="PadForwardFunction" c:type="GstPadForwardFunction">
  25147. <doc xml:space="preserve">A forward function is called for all internally linked pads, see
  25148. gst_pad_forward().</doc>
  25149. <return-value transfer-ownership="none">
  25150. <doc xml:space="preserve">%TRUE if the dispatching procedure has to be stopped.</doc>
  25151. <type name="gboolean" c:type="gboolean"/>
  25152. </return-value>
  25153. <parameters>
  25154. <parameter name="pad" transfer-ownership="none">
  25155. <doc xml:space="preserve">the #GstPad that is forwarded.</doc>
  25156. <type name="Pad" c:type="GstPad*"/>
  25157. </parameter>
  25158. <parameter name="user_data"
  25159. transfer-ownership="none"
  25160. nullable="1"
  25161. allow-none="1"
  25162. closure="1">
  25163. <doc xml:space="preserve">the gpointer to optional user data.</doc>
  25164. <type name="gpointer" c:type="gpointer"/>
  25165. </parameter>
  25166. </parameters>
  25167. </callback>
  25168. <callback name="PadGetRangeFunction" c:type="GstPadGetRangeFunction">
  25169. <doc xml:space="preserve">This function will be called on source pads when a peer element
  25170. request a buffer at the specified @offset and @length. If this function
  25171. returns #GST_FLOW_OK, the result buffer will be stored in @buffer. The
  25172. contents of @buffer is invalid for any other return value.
  25173. This function is installed on a source pad with
  25174. gst_pad_set_getrange_function() and can only be called on source pads after
  25175. they are successfully activated with gst_pad_activate_mode() with the
  25176. #GST_PAD_MODE_PULL.
  25177. @offset and @length are always given in byte units. @offset must normally be a value
  25178. between 0 and the length in bytes of the data available on @pad. The
  25179. length (duration in bytes) can be retrieved with a #GST_QUERY_DURATION or with a
  25180. #GST_QUERY_SEEKING.
  25181. Any @offset larger or equal than the length will make the function return
  25182. #GST_FLOW_EOS, which corresponds to EOS. In this case @buffer does not
  25183. contain a valid buffer.
  25184. The buffer size of @buffer will only be smaller than @length when @offset is
  25185. near the end of the stream. In all other cases, the size of @buffer must be
  25186. exactly the requested size.
  25187. It is allowed to call this function with a 0 @length and valid @offset, in
  25188. which case @buffer will contain a 0-sized buffer and the function returns
  25189. #GST_FLOW_OK.
  25190. When this function is called with a -1 @offset, the sequentially next buffer
  25191. of length @length in the stream is returned.
  25192. When this function is called with a -1 @length, a buffer with a default
  25193. optimal length is returned in @buffer. The length might depend on the value
  25194. of @offset.</doc>
  25195. <return-value transfer-ownership="none">
  25196. <doc xml:space="preserve">#GST_FLOW_OK for success and a valid buffer in @buffer. Any other
  25197. return value leaves @buffer undefined.</doc>
  25198. <type name="FlowReturn" c:type="GstFlowReturn"/>
  25199. </return-value>
  25200. <parameters>
  25201. <parameter name="pad" transfer-ownership="none">
  25202. <doc xml:space="preserve">the src #GstPad to perform the getrange on.</doc>
  25203. <type name="Pad" c:type="GstPad*"/>
  25204. </parameter>
  25205. <parameter name="parent"
  25206. transfer-ownership="none"
  25207. nullable="1"
  25208. allow-none="1">
  25209. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  25210. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  25211. during the execution of this function.</doc>
  25212. <type name="Object" c:type="GstObject*"/>
  25213. </parameter>
  25214. <parameter name="offset" transfer-ownership="none">
  25215. <doc xml:space="preserve">the offset of the range</doc>
  25216. <type name="guint64" c:type="guint64"/>
  25217. </parameter>
  25218. <parameter name="length" transfer-ownership="none">
  25219. <doc xml:space="preserve">the length of the range</doc>
  25220. <type name="guint" c:type="guint"/>
  25221. </parameter>
  25222. <parameter name="buffer" transfer-ownership="none">
  25223. <doc xml:space="preserve">a memory location to hold the result buffer, cannot be %NULL.</doc>
  25224. <type name="Buffer" c:type="GstBuffer**"/>
  25225. </parameter>
  25226. </parameters>
  25227. </callback>
  25228. <callback name="PadIterIntLinkFunction" c:type="GstPadIterIntLinkFunction">
  25229. <doc xml:space="preserve">The signature of the internal pad link iterator function.</doc>
  25230. <return-value transfer-ownership="full">
  25231. <doc xml:space="preserve">a new #GstIterator that will iterate over all pads that are
  25232. linked to the given pad on the inside of the parent element.
  25233. the caller must call gst_iterator_free() after usage.</doc>
  25234. <type name="Iterator" c:type="GstIterator*"/>
  25235. </return-value>
  25236. <parameters>
  25237. <parameter name="pad" transfer-ownership="none">
  25238. <doc xml:space="preserve">The #GstPad to query.</doc>
  25239. <type name="Pad" c:type="GstPad*"/>
  25240. </parameter>
  25241. <parameter name="parent"
  25242. transfer-ownership="none"
  25243. nullable="1"
  25244. allow-none="1">
  25245. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  25246. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  25247. during the execution of this function.</doc>
  25248. <type name="Object" c:type="GstObject*"/>
  25249. </parameter>
  25250. </parameters>
  25251. </callback>
  25252. <bitfield name="PadLinkCheck"
  25253. glib:type-name="GstPadLinkCheck"
  25254. glib:get-type="gst_pad_link_check_get_type"
  25255. c:type="GstPadLinkCheck">
  25256. <doc xml:space="preserve">The amount of checking to be done when linking pads. @GST_PAD_LINK_CHECK_CAPS
  25257. and @GST_PAD_LINK_CHECK_TEMPLATE_CAPS are mutually exclusive. If both are
  25258. specified, expensive but safe @GST_PAD_LINK_CHECK_CAPS are performed.
  25259. &lt;warning&gt;&lt;para&gt;
  25260. Only disable some of the checks if you are 100% certain you know the link
  25261. will not fail because of hierarchy/caps compatibility failures. If uncertain,
  25262. use the default checks (%GST_PAD_LINK_CHECK_DEFAULT) or the regular methods
  25263. for linking the pads.
  25264. &lt;/para&gt;&lt;/warning&gt;</doc>
  25265. <member name="nothing"
  25266. value="0"
  25267. c:identifier="GST_PAD_LINK_CHECK_NOTHING"
  25268. glib:nick="nothing">
  25269. <doc xml:space="preserve">Don't check hierarchy or caps compatibility.</doc>
  25270. </member>
  25271. <member name="hierarchy"
  25272. value="1"
  25273. c:identifier="GST_PAD_LINK_CHECK_HIERARCHY"
  25274. glib:nick="hierarchy">
  25275. <doc xml:space="preserve">Check the pads have same parents/grandparents.
  25276. Could be omitted if it is already known that the two elements that own the
  25277. pads are in the same bin.</doc>
  25278. </member>
  25279. <member name="template_caps"
  25280. value="2"
  25281. c:identifier="GST_PAD_LINK_CHECK_TEMPLATE_CAPS"
  25282. glib:nick="template-caps">
  25283. <doc xml:space="preserve">Check if the pads are compatible by using
  25284. their template caps. This is much faster than @GST_PAD_LINK_CHECK_CAPS, but
  25285. would be unsafe e.g. if one pad has %GST_CAPS_ANY.</doc>
  25286. </member>
  25287. <member name="caps"
  25288. value="4"
  25289. c:identifier="GST_PAD_LINK_CHECK_CAPS"
  25290. glib:nick="caps">
  25291. <doc xml:space="preserve">Check if the pads are compatible by comparing the
  25292. caps returned by gst_pad_query_caps().</doc>
  25293. </member>
  25294. <member name="default"
  25295. value="5"
  25296. c:identifier="GST_PAD_LINK_CHECK_DEFAULT"
  25297. glib:nick="default">
  25298. <doc xml:space="preserve">The default checks done when linking
  25299. pads (i.e. the ones used by gst_pad_link()).</doc>
  25300. </member>
  25301. </bitfield>
  25302. <callback name="PadLinkFunction" c:type="GstPadLinkFunction">
  25303. <doc xml:space="preserve">Function signature to handle a new link on the pad.</doc>
  25304. <return-value transfer-ownership="none">
  25305. <doc xml:space="preserve">the result of the link with the specified peer.</doc>
  25306. <type name="PadLinkReturn" c:type="GstPadLinkReturn"/>
  25307. </return-value>
  25308. <parameters>
  25309. <parameter name="pad" transfer-ownership="none">
  25310. <doc xml:space="preserve">the #GstPad that is linked.</doc>
  25311. <type name="Pad" c:type="GstPad*"/>
  25312. </parameter>
  25313. <parameter name="parent"
  25314. transfer-ownership="none"
  25315. nullable="1"
  25316. allow-none="1">
  25317. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  25318. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  25319. during the execution of this function.</doc>
  25320. <type name="Object" c:type="GstObject*"/>
  25321. </parameter>
  25322. <parameter name="peer" transfer-ownership="none">
  25323. <doc xml:space="preserve">the peer #GstPad of the link</doc>
  25324. <type name="Pad" c:type="GstPad*"/>
  25325. </parameter>
  25326. </parameters>
  25327. </callback>
  25328. <enumeration name="PadLinkReturn"
  25329. glib:type-name="GstPadLinkReturn"
  25330. glib:get-type="gst_pad_link_return_get_type"
  25331. c:type="GstPadLinkReturn">
  25332. <doc xml:space="preserve">Result values from gst_pad_link and friends.</doc>
  25333. <member name="ok"
  25334. value="0"
  25335. c:identifier="GST_PAD_LINK_OK"
  25336. glib:nick="ok">
  25337. <doc xml:space="preserve">link succeeded</doc>
  25338. </member>
  25339. <member name="wrong_hierarchy"
  25340. value="-1"
  25341. c:identifier="GST_PAD_LINK_WRONG_HIERARCHY"
  25342. glib:nick="wrong-hierarchy">
  25343. <doc xml:space="preserve">pads have no common grandparent</doc>
  25344. </member>
  25345. <member name="was_linked"
  25346. value="-2"
  25347. c:identifier="GST_PAD_LINK_WAS_LINKED"
  25348. glib:nick="was-linked">
  25349. <doc xml:space="preserve">pad was already linked</doc>
  25350. </member>
  25351. <member name="wrong_direction"
  25352. value="-3"
  25353. c:identifier="GST_PAD_LINK_WRONG_DIRECTION"
  25354. glib:nick="wrong-direction">
  25355. <doc xml:space="preserve">pads have wrong direction</doc>
  25356. </member>
  25357. <member name="noformat"
  25358. value="-4"
  25359. c:identifier="GST_PAD_LINK_NOFORMAT"
  25360. glib:nick="noformat">
  25361. <doc xml:space="preserve">pads do not have common format</doc>
  25362. </member>
  25363. <member name="nosched"
  25364. value="-5"
  25365. c:identifier="GST_PAD_LINK_NOSCHED"
  25366. glib:nick="nosched">
  25367. <doc xml:space="preserve">pads cannot cooperate in scheduling</doc>
  25368. </member>
  25369. <member name="refused"
  25370. value="-6"
  25371. c:identifier="GST_PAD_LINK_REFUSED"
  25372. glib:nick="refused">
  25373. <doc xml:space="preserve">refused for some reason</doc>
  25374. </member>
  25375. </enumeration>
  25376. <enumeration name="PadMode"
  25377. glib:type-name="GstPadMode"
  25378. glib:get-type="gst_pad_mode_get_type"
  25379. c:type="GstPadMode">
  25380. <doc xml:space="preserve">The status of a GstPad. After activating a pad, which usually happens when the
  25381. parent element goes from READY to PAUSED, the GstPadMode defines if the
  25382. pad operates in push or pull mode.</doc>
  25383. <member name="none"
  25384. value="0"
  25385. c:identifier="GST_PAD_MODE_NONE"
  25386. glib:nick="none">
  25387. <doc xml:space="preserve">Pad will not handle dataflow</doc>
  25388. </member>
  25389. <member name="push"
  25390. value="1"
  25391. c:identifier="GST_PAD_MODE_PUSH"
  25392. glib:nick="push">
  25393. <doc xml:space="preserve">Pad handles dataflow in downstream push mode</doc>
  25394. </member>
  25395. <member name="pull"
  25396. value="2"
  25397. c:identifier="GST_PAD_MODE_PULL"
  25398. glib:nick="pull">
  25399. <doc xml:space="preserve">Pad handles dataflow in upstream pull mode</doc>
  25400. </member>
  25401. <function name="get_name" c:identifier="gst_pad_mode_get_name">
  25402. <doc xml:space="preserve">Return the name of a pad mode, for use in debug messages mostly.</doc>
  25403. <return-value transfer-ownership="none">
  25404. <doc xml:space="preserve">short mnemonic for pad mode @mode</doc>
  25405. <type name="utf8" c:type="const gchar*"/>
  25406. </return-value>
  25407. <parameters>
  25408. <parameter name="mode" transfer-ownership="none">
  25409. <doc xml:space="preserve">the pad mode</doc>
  25410. <type name="PadMode" c:type="GstPadMode"/>
  25411. </parameter>
  25412. </parameters>
  25413. </function>
  25414. </enumeration>
  25415. <enumeration name="PadPresence"
  25416. glib:type-name="GstPadPresence"
  25417. glib:get-type="gst_pad_presence_get_type"
  25418. c:type="GstPadPresence">
  25419. <doc xml:space="preserve">Indicates when this pad will become available.</doc>
  25420. <member name="always"
  25421. value="0"
  25422. c:identifier="GST_PAD_ALWAYS"
  25423. glib:nick="always">
  25424. <doc xml:space="preserve">the pad is always available</doc>
  25425. </member>
  25426. <member name="sometimes"
  25427. value="1"
  25428. c:identifier="GST_PAD_SOMETIMES"
  25429. glib:nick="sometimes">
  25430. <doc xml:space="preserve">the pad will become available depending on the media stream</doc>
  25431. </member>
  25432. <member name="request"
  25433. value="2"
  25434. c:identifier="GST_PAD_REQUEST"
  25435. glib:nick="request">
  25436. <doc xml:space="preserve">the pad is only available on request with
  25437. gst_element_request_pad().</doc>
  25438. </member>
  25439. </enumeration>
  25440. <record name="PadPrivate" c:type="GstPadPrivate" disguised="1">
  25441. </record>
  25442. <callback name="PadProbeCallback" c:type="GstPadProbeCallback">
  25443. <doc xml:space="preserve">Callback used by gst_pad_add_probe(). Gets called to notify about the current
  25444. blocking type.
  25445. The callback is allowed to modify the data pointer in @info.</doc>
  25446. <return-value transfer-ownership="none">
  25447. <doc xml:space="preserve">a #GstPadProbeReturn</doc>
  25448. <type name="PadProbeReturn" c:type="GstPadProbeReturn"/>
  25449. </return-value>
  25450. <parameters>
  25451. <parameter name="pad" transfer-ownership="none">
  25452. <doc xml:space="preserve">the #GstPad that is blocked</doc>
  25453. <type name="Pad" c:type="GstPad*"/>
  25454. </parameter>
  25455. <parameter name="info" transfer-ownership="none">
  25456. <doc xml:space="preserve">#GstPadProbeInfo</doc>
  25457. <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
  25458. </parameter>
  25459. <parameter name="user_data"
  25460. transfer-ownership="none"
  25461. nullable="1"
  25462. allow-none="1"
  25463. closure="2">
  25464. <doc xml:space="preserve">the gpointer to optional user data.</doc>
  25465. <type name="gpointer" c:type="gpointer"/>
  25466. </parameter>
  25467. </parameters>
  25468. </callback>
  25469. <record name="PadProbeInfo" c:type="GstPadProbeInfo">
  25470. <doc xml:space="preserve">Info passed in the #GstPadProbeCallback.</doc>
  25471. <field name="type" writable="1">
  25472. <doc xml:space="preserve">the current probe type</doc>
  25473. <type name="PadProbeType" c:type="GstPadProbeType"/>
  25474. </field>
  25475. <field name="id" writable="1">
  25476. <doc xml:space="preserve">the id of the probe</doc>
  25477. <type name="gulong" c:type="gulong"/>
  25478. </field>
  25479. <field name="data" writable="1">
  25480. <doc xml:space="preserve">type specific data, check the @type field to know the
  25481. datatype. This field can be %NULL.</doc>
  25482. <type name="gpointer" c:type="gpointer"/>
  25483. </field>
  25484. <field name="offset" writable="1">
  25485. <doc xml:space="preserve">offset of pull probe, this field is valid when @type contains
  25486. #GST_PAD_PROBE_TYPE_PULL</doc>
  25487. <type name="guint64" c:type="guint64"/>
  25488. </field>
  25489. <field name="size" writable="1">
  25490. <doc xml:space="preserve">size of pull probe, this field is valid when @type contains
  25491. #GST_PAD_PROBE_TYPE_PULL</doc>
  25492. <type name="guint" c:type="guint"/>
  25493. </field>
  25494. <union name="ABI" c:type="ABI">
  25495. <field name="_gst_reserved" writable="1">
  25496. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  25497. <type name="gpointer" c:type="gpointer"/>
  25498. </array>
  25499. </field>
  25500. <record name="abi" c:type="abi">
  25501. <field name="flow_ret" writable="1">
  25502. <type name="FlowReturn" c:type="GstFlowReturn"/>
  25503. </field>
  25504. </record>
  25505. </union>
  25506. <method name="get_buffer" c:identifier="gst_pad_probe_info_get_buffer">
  25507. <return-value transfer-ownership="none">
  25508. <doc xml:space="preserve">The #GstBuffer from the probe</doc>
  25509. <type name="Buffer" c:type="GstBuffer*"/>
  25510. </return-value>
  25511. <parameters>
  25512. <instance-parameter name="info" transfer-ownership="none">
  25513. <doc xml:space="preserve">a #GstPadProbeInfo</doc>
  25514. <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
  25515. </instance-parameter>
  25516. </parameters>
  25517. </method>
  25518. <method name="get_buffer_list"
  25519. c:identifier="gst_pad_probe_info_get_buffer_list">
  25520. <return-value transfer-ownership="none">
  25521. <doc xml:space="preserve">The #GstBufferList from the probe</doc>
  25522. <type name="BufferList" c:type="GstBufferList*"/>
  25523. </return-value>
  25524. <parameters>
  25525. <instance-parameter name="info" transfer-ownership="none">
  25526. <doc xml:space="preserve">a #GstPadProbeInfo</doc>
  25527. <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
  25528. </instance-parameter>
  25529. </parameters>
  25530. </method>
  25531. <method name="get_event" c:identifier="gst_pad_probe_info_get_event">
  25532. <return-value transfer-ownership="none">
  25533. <doc xml:space="preserve">The #GstEvent from the probe</doc>
  25534. <type name="Event" c:type="GstEvent*"/>
  25535. </return-value>
  25536. <parameters>
  25537. <instance-parameter name="info" transfer-ownership="none">
  25538. <doc xml:space="preserve">a #GstPadProbeInfo</doc>
  25539. <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
  25540. </instance-parameter>
  25541. </parameters>
  25542. </method>
  25543. <method name="get_query" c:identifier="gst_pad_probe_info_get_query">
  25544. <return-value transfer-ownership="none">
  25545. <doc xml:space="preserve">The #GstQuery from the probe</doc>
  25546. <type name="Query" c:type="GstQuery*"/>
  25547. </return-value>
  25548. <parameters>
  25549. <instance-parameter name="info" transfer-ownership="none">
  25550. <doc xml:space="preserve">a #GstPadProbeInfo</doc>
  25551. <type name="PadProbeInfo" c:type="GstPadProbeInfo*"/>
  25552. </instance-parameter>
  25553. </parameters>
  25554. </method>
  25555. </record>
  25556. <enumeration name="PadProbeReturn"
  25557. glib:type-name="GstPadProbeReturn"
  25558. glib:get-type="gst_pad_probe_return_get_type"
  25559. c:type="GstPadProbeReturn">
  25560. <doc xml:space="preserve">Different return values for the #GstPadProbeCallback.</doc>
  25561. <member name="drop"
  25562. value="0"
  25563. c:identifier="GST_PAD_PROBE_DROP"
  25564. glib:nick="drop">
  25565. <doc xml:space="preserve">drop data in data probes. For push mode this means that
  25566. the data item is not sent downstream. For pull mode, it means that
  25567. the data item is not passed upstream. In both cases, no more probes
  25568. are called and #GST_FLOW_OK or %TRUE is returned to the caller.</doc>
  25569. </member>
  25570. <member name="ok"
  25571. value="1"
  25572. c:identifier="GST_PAD_PROBE_OK"
  25573. glib:nick="ok">
  25574. <doc xml:space="preserve">normal probe return value. This leaves the probe in
  25575. place, and defers decisions about dropping or passing data to other
  25576. probes, if any. If there are no other probes, the default behaviour
  25577. for the probe type applies (block for blocking probes, and pass for
  25578. non-blocking probes).</doc>
  25579. </member>
  25580. <member name="remove"
  25581. value="2"
  25582. c:identifier="GST_PAD_PROBE_REMOVE"
  25583. glib:nick="remove">
  25584. <doc xml:space="preserve">remove this probe.</doc>
  25585. </member>
  25586. <member name="pass"
  25587. value="3"
  25588. c:identifier="GST_PAD_PROBE_PASS"
  25589. glib:nick="pass">
  25590. <doc xml:space="preserve">pass the data item in the block probe and block on the
  25591. next item.</doc>
  25592. </member>
  25593. <member name="handled"
  25594. value="4"
  25595. c:identifier="GST_PAD_PROBE_HANDLED"
  25596. glib:nick="handled">
  25597. <doc xml:space="preserve">Data has been handled in the probe and will not be
  25598. forwarded further. For events and buffers this is the same behaviour as
  25599. @GST_PAD_PROBE_DROP (except that in this case you need to unref the buffer
  25600. or event yourself). For queries it will also return %TRUE to the caller.
  25601. The probe can also modify the #GstFlowReturn value by using the
  25602. #GST_PAD_PROBE_INFO_FLOW_RETURN() accessor.
  25603. Note that the resulting query must contain valid entries.
  25604. Since: 1.6</doc>
  25605. </member>
  25606. </enumeration>
  25607. <bitfield name="PadProbeType"
  25608. glib:type-name="GstPadProbeType"
  25609. glib:get-type="gst_pad_probe_type_get_type"
  25610. c:type="GstPadProbeType">
  25611. <doc xml:space="preserve">The different probing types that can occur. When either one of
  25612. @GST_PAD_PROBE_TYPE_IDLE or @GST_PAD_PROBE_TYPE_BLOCK is used, the probe will be a
  25613. blocking probe.</doc>
  25614. <member name="invalid"
  25615. value="0"
  25616. c:identifier="GST_PAD_PROBE_TYPE_INVALID"
  25617. glib:nick="invalid">
  25618. <doc xml:space="preserve">invalid probe type</doc>
  25619. </member>
  25620. <member name="idle"
  25621. value="1"
  25622. c:identifier="GST_PAD_PROBE_TYPE_IDLE"
  25623. glib:nick="idle">
  25624. <doc xml:space="preserve">probe idle pads and block while the callback is called</doc>
  25625. </member>
  25626. <member name="block"
  25627. value="2"
  25628. c:identifier="GST_PAD_PROBE_TYPE_BLOCK"
  25629. glib:nick="block">
  25630. <doc xml:space="preserve">probe and block pads</doc>
  25631. </member>
  25632. <member name="buffer"
  25633. value="16"
  25634. c:identifier="GST_PAD_PROBE_TYPE_BUFFER"
  25635. glib:nick="buffer">
  25636. <doc xml:space="preserve">probe buffers</doc>
  25637. </member>
  25638. <member name="buffer_list"
  25639. value="32"
  25640. c:identifier="GST_PAD_PROBE_TYPE_BUFFER_LIST"
  25641. glib:nick="buffer-list">
  25642. <doc xml:space="preserve">probe buffer lists</doc>
  25643. </member>
  25644. <member name="event_downstream"
  25645. value="64"
  25646. c:identifier="GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM"
  25647. glib:nick="event-downstream">
  25648. <doc xml:space="preserve">probe downstream events</doc>
  25649. </member>
  25650. <member name="event_upstream"
  25651. value="128"
  25652. c:identifier="GST_PAD_PROBE_TYPE_EVENT_UPSTREAM"
  25653. glib:nick="event-upstream">
  25654. <doc xml:space="preserve">probe upstream events</doc>
  25655. </member>
  25656. <member name="event_flush"
  25657. value="256"
  25658. c:identifier="GST_PAD_PROBE_TYPE_EVENT_FLUSH"
  25659. glib:nick="event-flush">
  25660. <doc xml:space="preserve">probe flush events. This probe has to be
  25661. explicitly enabled and is not included in the
  25662. @@GST_PAD_PROBE_TYPE_EVENT_DOWNSTREAM or
  25663. @@GST_PAD_PROBE_TYPE_EVENT_UPSTREAM probe types.</doc>
  25664. </member>
  25665. <member name="query_downstream"
  25666. value="512"
  25667. c:identifier="GST_PAD_PROBE_TYPE_QUERY_DOWNSTREAM"
  25668. glib:nick="query-downstream">
  25669. <doc xml:space="preserve">probe downstream queries</doc>
  25670. </member>
  25671. <member name="query_upstream"
  25672. value="1024"
  25673. c:identifier="GST_PAD_PROBE_TYPE_QUERY_UPSTREAM"
  25674. glib:nick="query-upstream">
  25675. <doc xml:space="preserve">probe upstream queries</doc>
  25676. </member>
  25677. <member name="push"
  25678. value="4096"
  25679. c:identifier="GST_PAD_PROBE_TYPE_PUSH"
  25680. glib:nick="push">
  25681. <doc xml:space="preserve">probe push</doc>
  25682. </member>
  25683. <member name="pull"
  25684. value="8192"
  25685. c:identifier="GST_PAD_PROBE_TYPE_PULL"
  25686. glib:nick="pull">
  25687. <doc xml:space="preserve">probe pull</doc>
  25688. </member>
  25689. <member name="blocking"
  25690. value="3"
  25691. c:identifier="GST_PAD_PROBE_TYPE_BLOCKING"
  25692. glib:nick="blocking">
  25693. <doc xml:space="preserve">probe and block at the next opportunity, at data flow or when idle</doc>
  25694. </member>
  25695. <member name="data_downstream"
  25696. value="112"
  25697. c:identifier="GST_PAD_PROBE_TYPE_DATA_DOWNSTREAM"
  25698. glib:nick="data-downstream">
  25699. <doc xml:space="preserve">probe downstream data (buffers, buffer lists, and events)</doc>
  25700. </member>
  25701. <member name="data_upstream"
  25702. value="128"
  25703. c:identifier="GST_PAD_PROBE_TYPE_DATA_UPSTREAM"
  25704. glib:nick="data-upstream">
  25705. <doc xml:space="preserve">probe upstream data (events)</doc>
  25706. </member>
  25707. <member name="data_both"
  25708. value="240"
  25709. c:identifier="GST_PAD_PROBE_TYPE_DATA_BOTH"
  25710. glib:nick="data-both">
  25711. <doc xml:space="preserve">probe upstream and downstream data (buffers, buffer lists, and events)</doc>
  25712. </member>
  25713. <member name="block_downstream"
  25714. value="114"
  25715. c:identifier="GST_PAD_PROBE_TYPE_BLOCK_DOWNSTREAM"
  25716. glib:nick="block-downstream">
  25717. <doc xml:space="preserve">probe and block downstream data (buffers, buffer lists, and events)</doc>
  25718. </member>
  25719. <member name="block_upstream"
  25720. value="130"
  25721. c:identifier="GST_PAD_PROBE_TYPE_BLOCK_UPSTREAM"
  25722. glib:nick="block-upstream">
  25723. <doc xml:space="preserve">probe and block upstream data (events)</doc>
  25724. </member>
  25725. <member name="event_both"
  25726. value="192"
  25727. c:identifier="GST_PAD_PROBE_TYPE_EVENT_BOTH"
  25728. glib:nick="event-both">
  25729. <doc xml:space="preserve">probe upstream and downstream events</doc>
  25730. </member>
  25731. <member name="query_both"
  25732. value="1536"
  25733. c:identifier="GST_PAD_PROBE_TYPE_QUERY_BOTH"
  25734. glib:nick="query-both">
  25735. <doc xml:space="preserve">probe upstream and downstream queries</doc>
  25736. </member>
  25737. <member name="all_both"
  25738. value="1776"
  25739. c:identifier="GST_PAD_PROBE_TYPE_ALL_BOTH"
  25740. glib:nick="all-both">
  25741. <doc xml:space="preserve">probe upstream events and queries and downstream buffers, buffer lists, events and queries</doc>
  25742. </member>
  25743. <member name="scheduling"
  25744. value="12288"
  25745. c:identifier="GST_PAD_PROBE_TYPE_SCHEDULING"
  25746. glib:nick="scheduling">
  25747. <doc xml:space="preserve">probe push and pull</doc>
  25748. </member>
  25749. </bitfield>
  25750. <callback name="PadQueryFunction" c:type="GstPadQueryFunction">
  25751. <doc xml:space="preserve">The signature of the query function.</doc>
  25752. <return-value transfer-ownership="none">
  25753. <doc xml:space="preserve">%TRUE if the query could be performed.</doc>
  25754. <type name="gboolean" c:type="gboolean"/>
  25755. </return-value>
  25756. <parameters>
  25757. <parameter name="pad" transfer-ownership="none">
  25758. <doc xml:space="preserve">the #GstPad to query.</doc>
  25759. <type name="Pad" c:type="GstPad*"/>
  25760. </parameter>
  25761. <parameter name="parent"
  25762. transfer-ownership="none"
  25763. nullable="1"
  25764. allow-none="1">
  25765. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  25766. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  25767. during the execution of this function.</doc>
  25768. <type name="Object" c:type="GstObject*"/>
  25769. </parameter>
  25770. <parameter name="query" transfer-ownership="none">
  25771. <doc xml:space="preserve">the #GstQuery object to execute</doc>
  25772. <type name="Query" c:type="GstQuery*"/>
  25773. </parameter>
  25774. </parameters>
  25775. </callback>
  25776. <callback name="PadStickyEventsForeachFunction"
  25777. c:type="GstPadStickyEventsForeachFunction">
  25778. <doc xml:space="preserve">Callback used by gst_pad_sticky_events_foreach().
  25779. When this function returns %TRUE, the next event will be
  25780. returned. When %FALSE is returned, gst_pad_sticky_events_foreach() will return.
  25781. When @event is set to %NULL, the item will be removed from the list of sticky events.
  25782. @event can be replaced by assigning a new reference to it.
  25783. This function is responsible for unreffing the old event when
  25784. removing or modifying.</doc>
  25785. <return-value transfer-ownership="none">
  25786. <doc xml:space="preserve">%TRUE if the iteration should continue</doc>
  25787. <type name="gboolean" c:type="gboolean"/>
  25788. </return-value>
  25789. <parameters>
  25790. <parameter name="pad" transfer-ownership="none">
  25791. <doc xml:space="preserve">the #GstPad.</doc>
  25792. <type name="Pad" c:type="GstPad*"/>
  25793. </parameter>
  25794. <parameter name="event"
  25795. transfer-ownership="none"
  25796. nullable="1"
  25797. allow-none="1">
  25798. <doc xml:space="preserve">a sticky #GstEvent.</doc>
  25799. <type name="Event" c:type="GstEvent**"/>
  25800. </parameter>
  25801. <parameter name="user_data"
  25802. transfer-ownership="none"
  25803. nullable="1"
  25804. allow-none="1"
  25805. closure="2">
  25806. <doc xml:space="preserve">the #gpointer to optional user data.</doc>
  25807. <type name="gpointer" c:type="gpointer"/>
  25808. </parameter>
  25809. </parameters>
  25810. </callback>
  25811. <class name="PadTemplate"
  25812. c:symbol-prefix="pad_template"
  25813. c:type="GstPadTemplate"
  25814. parent="Object"
  25815. glib:type-name="GstPadTemplate"
  25816. glib:get-type="gst_pad_template_get_type"
  25817. glib:type-struct="PadTemplateClass">
  25818. <doc xml:space="preserve">Padtemplates describe the possible media types a pad or an elementfactory can
  25819. handle. This allows for both inspection of handled types before loading the
  25820. element plugin as well as identifying pads on elements that are not yet
  25821. created (request or sometimes pads).
  25822. Pad and PadTemplates have #GstCaps attached to it to describe the media type
  25823. they are capable of dealing with. gst_pad_template_get_caps() or
  25824. GST_PAD_TEMPLATE_CAPS() are used to get the caps of a padtemplate. It's not
  25825. possible to modify the caps of a padtemplate after creation.
  25826. PadTemplates have a #GstPadPresence property which identifies the lifetime
  25827. of the pad and that can be retrieved with GST_PAD_TEMPLATE_PRESENCE(). Also
  25828. the direction of the pad can be retrieved from the #GstPadTemplate with
  25829. GST_PAD_TEMPLATE_DIRECTION().
  25830. The GST_PAD_TEMPLATE_NAME_TEMPLATE () is important for GST_PAD_REQUEST pads
  25831. because it has to be used as the name in the gst_element_get_request_pad()
  25832. call to instantiate a pad from this template.
  25833. Padtemplates can be created with gst_pad_template_new() or with
  25834. gst_static_pad_template_get (), which creates a #GstPadTemplate from a
  25835. #GstStaticPadTemplate that can be filled with the
  25836. convenient GST_STATIC_PAD_TEMPLATE() macro.
  25837. A padtemplate can be used to create a pad (see gst_pad_new_from_template()
  25838. or gst_pad_new_from_static_template ()) or to add to an element class
  25839. (see gst_element_class_add_pad_template ()).
  25840. The following code example shows the code to create a pad from a padtemplate.
  25841. |[&lt;!-- language="C" --&gt;
  25842. GstStaticPadTemplate my_template =
  25843. GST_STATIC_PAD_TEMPLATE (
  25844. "sink", // the name of the pad
  25845. GST_PAD_SINK, // the direction of the pad
  25846. GST_PAD_ALWAYS, // when this pad will be present
  25847. GST_STATIC_CAPS ( // the capabilities of the padtemplate
  25848. "audio/x-raw, "
  25849. "channels = (int) [ 1, 6 ]"
  25850. )
  25851. );
  25852. void
  25853. my_method (void)
  25854. {
  25855. GstPad *pad;
  25856. pad = gst_pad_new_from_static_template (&amp;amp;my_template, "sink");
  25857. ...
  25858. }
  25859. ]|
  25860. The following example shows you how to add the padtemplate to an
  25861. element class, this is usually done in the class_init of the class:
  25862. |[&lt;!-- language="C" --&gt;
  25863. static void
  25864. my_element_class_init (GstMyElementClass *klass)
  25865. {
  25866. GstElementClass *gstelement_class = GST_ELEMENT_CLASS (klass);
  25867. gst_element_class_add_pad_template (gstelement_class,
  25868. gst_static_pad_template_get (&amp;amp;my_template));
  25869. }
  25870. ]|</doc>
  25871. <constructor name="new" c:identifier="gst_pad_template_new">
  25872. <doc xml:space="preserve">Creates a new pad template with a name according to the given template
  25873. and with the given arguments.</doc>
  25874. <return-value transfer-ownership="none">
  25875. <doc xml:space="preserve">a new #GstPadTemplate.</doc>
  25876. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  25877. </return-value>
  25878. <parameters>
  25879. <parameter name="name_template" transfer-ownership="none">
  25880. <doc xml:space="preserve">the name template.</doc>
  25881. <type name="utf8" c:type="const gchar*"/>
  25882. </parameter>
  25883. <parameter name="direction" transfer-ownership="none">
  25884. <doc xml:space="preserve">the #GstPadDirection of the template.</doc>
  25885. <type name="PadDirection" c:type="GstPadDirection"/>
  25886. </parameter>
  25887. <parameter name="presence" transfer-ownership="none">
  25888. <doc xml:space="preserve">the #GstPadPresence of the pad.</doc>
  25889. <type name="PadPresence" c:type="GstPadPresence"/>
  25890. </parameter>
  25891. <parameter name="caps" transfer-ownership="none">
  25892. <doc xml:space="preserve">a #GstCaps set for the template.</doc>
  25893. <type name="Caps" c:type="GstCaps*"/>
  25894. </parameter>
  25895. </parameters>
  25896. </constructor>
  25897. <virtual-method name="pad_created" invoker="pad_created">
  25898. <doc xml:space="preserve">Emit the pad-created signal for this template when created by this pad.</doc>
  25899. <return-value transfer-ownership="none">
  25900. <type name="none" c:type="void"/>
  25901. </return-value>
  25902. <parameters>
  25903. <instance-parameter name="templ" transfer-ownership="none">
  25904. <doc xml:space="preserve">a #GstPadTemplate that has been created</doc>
  25905. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  25906. </instance-parameter>
  25907. <parameter name="pad" transfer-ownership="none">
  25908. <doc xml:space="preserve">the #GstPad that created it</doc>
  25909. <type name="Pad" c:type="GstPad*"/>
  25910. </parameter>
  25911. </parameters>
  25912. </virtual-method>
  25913. <method name="get_caps" c:identifier="gst_pad_template_get_caps">
  25914. <doc xml:space="preserve">Gets the capabilities of the pad template.</doc>
  25915. <return-value transfer-ownership="full">
  25916. <doc xml:space="preserve">the #GstCaps of the pad template.
  25917. Unref after usage.</doc>
  25918. <type name="Caps" c:type="GstCaps*"/>
  25919. </return-value>
  25920. <parameters>
  25921. <instance-parameter name="templ" transfer-ownership="none">
  25922. <doc xml:space="preserve">a #GstPadTemplate to get capabilities of.</doc>
  25923. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  25924. </instance-parameter>
  25925. </parameters>
  25926. </method>
  25927. <method name="pad_created" c:identifier="gst_pad_template_pad_created">
  25928. <doc xml:space="preserve">Emit the pad-created signal for this template when created by this pad.</doc>
  25929. <return-value transfer-ownership="none">
  25930. <type name="none" c:type="void"/>
  25931. </return-value>
  25932. <parameters>
  25933. <instance-parameter name="templ" transfer-ownership="none">
  25934. <doc xml:space="preserve">a #GstPadTemplate that has been created</doc>
  25935. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  25936. </instance-parameter>
  25937. <parameter name="pad" transfer-ownership="none">
  25938. <doc xml:space="preserve">the #GstPad that created it</doc>
  25939. <type name="Pad" c:type="GstPad*"/>
  25940. </parameter>
  25941. </parameters>
  25942. </method>
  25943. <property name="caps"
  25944. writable="1"
  25945. construct-only="1"
  25946. transfer-ownership="none">
  25947. <doc xml:space="preserve">The capabilities of the pad described by the pad template.</doc>
  25948. <type name="Caps"/>
  25949. </property>
  25950. <property name="direction"
  25951. writable="1"
  25952. construct-only="1"
  25953. transfer-ownership="none">
  25954. <doc xml:space="preserve">The direction of the pad described by the pad template.</doc>
  25955. <type name="PadDirection"/>
  25956. </property>
  25957. <property name="name-template"
  25958. writable="1"
  25959. construct-only="1"
  25960. transfer-ownership="none">
  25961. <doc xml:space="preserve">The name template of the pad template.</doc>
  25962. <type name="utf8" c:type="gchar*"/>
  25963. </property>
  25964. <property name="presence"
  25965. writable="1"
  25966. construct-only="1"
  25967. transfer-ownership="none">
  25968. <doc xml:space="preserve">When the pad described by the pad template will become available.</doc>
  25969. <type name="PadPresence"/>
  25970. </property>
  25971. <field name="object">
  25972. <type name="Object" c:type="GstObject"/>
  25973. </field>
  25974. <field name="name_template">
  25975. <type name="utf8" c:type="gchar*"/>
  25976. </field>
  25977. <field name="direction">
  25978. <type name="PadDirection" c:type="GstPadDirection"/>
  25979. </field>
  25980. <field name="presence">
  25981. <type name="PadPresence" c:type="GstPadPresence"/>
  25982. </field>
  25983. <field name="caps">
  25984. <type name="Caps" c:type="GstCaps*"/>
  25985. </field>
  25986. <field name="_gst_reserved" readable="0" private="1">
  25987. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  25988. <type name="gpointer" c:type="gpointer"/>
  25989. </array>
  25990. </field>
  25991. <glib:signal name="pad-created" when="last">
  25992. <doc xml:space="preserve">This signal is fired when an element creates a pad from this template.</doc>
  25993. <return-value transfer-ownership="none">
  25994. <type name="none" c:type="void"/>
  25995. </return-value>
  25996. <parameters>
  25997. <parameter name="pad" transfer-ownership="none">
  25998. <doc xml:space="preserve">the pad that was created.</doc>
  25999. <type name="Pad"/>
  26000. </parameter>
  26001. </parameters>
  26002. </glib:signal>
  26003. </class>
  26004. <record name="PadTemplateClass"
  26005. c:type="GstPadTemplateClass"
  26006. glib:is-gtype-struct-for="PadTemplate">
  26007. <field name="parent_class">
  26008. <type name="ObjectClass" c:type="GstObjectClass"/>
  26009. </field>
  26010. <field name="pad_created">
  26011. <callback name="pad_created">
  26012. <return-value transfer-ownership="none">
  26013. <type name="none" c:type="void"/>
  26014. </return-value>
  26015. <parameters>
  26016. <parameter name="templ" transfer-ownership="none">
  26017. <doc xml:space="preserve">a #GstPadTemplate that has been created</doc>
  26018. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  26019. </parameter>
  26020. <parameter name="pad" transfer-ownership="none">
  26021. <doc xml:space="preserve">the #GstPad that created it</doc>
  26022. <type name="Pad" c:type="GstPad*"/>
  26023. </parameter>
  26024. </parameters>
  26025. </callback>
  26026. </field>
  26027. <field name="_gst_reserved" readable="0" private="1">
  26028. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  26029. <type name="gpointer" c:type="gpointer"/>
  26030. </array>
  26031. </field>
  26032. </record>
  26033. <bitfield name="PadTemplateFlags"
  26034. glib:type-name="GstPadTemplateFlags"
  26035. glib:get-type="gst_pad_template_flags_get_type"
  26036. c:type="GstPadTemplateFlags">
  26037. <doc xml:space="preserve">Flags for the padtemplate</doc>
  26038. <member name="last"
  26039. value="256"
  26040. c:identifier="GST_PAD_TEMPLATE_FLAG_LAST"
  26041. glib:nick="last">
  26042. <doc xml:space="preserve">first flag that can be used by subclasses.</doc>
  26043. </member>
  26044. </bitfield>
  26045. <callback name="PadUnlinkFunction" c:type="GstPadUnlinkFunction">
  26046. <doc xml:space="preserve">Function signature to handle a unlinking the pad prom its peer.</doc>
  26047. <return-value transfer-ownership="none">
  26048. <type name="none" c:type="void"/>
  26049. </return-value>
  26050. <parameters>
  26051. <parameter name="pad" transfer-ownership="none">
  26052. <doc xml:space="preserve">the #GstPad that is linked.</doc>
  26053. <type name="Pad" c:type="GstPad*"/>
  26054. </parameter>
  26055. <parameter name="parent"
  26056. transfer-ownership="none"
  26057. nullable="1"
  26058. allow-none="1">
  26059. <doc xml:space="preserve">the parent of @pad. If the #GST_PAD_FLAG_NEED_PARENT
  26060. flag is set, @parent is guaranteed to be not-%NULL and remain valid
  26061. during the execution of this function.</doc>
  26062. <type name="Object" c:type="GstObject*"/>
  26063. </parameter>
  26064. </parameters>
  26065. </callback>
  26066. <class name="ParamFraction"
  26067. c:symbol-prefix="param_spec_fraction"
  26068. parent="GObject.ParamSpec"
  26069. glib:type-name="GstParamFraction"
  26070. glib:get-type="gst_param_spec_fraction_get_type"
  26071. glib:fundamental="1">
  26072. </class>
  26073. <record name="ParamSpecFraction" c:type="GstParamSpecFraction">
  26074. <doc xml:space="preserve">A GParamSpec derived structure that contains the meta data for fractional
  26075. properties.</doc>
  26076. <field name="parent_instance" writable="1">
  26077. <doc xml:space="preserve">super class</doc>
  26078. <type name="GObject.ParamSpec" c:type="GParamSpec"/>
  26079. </field>
  26080. <field name="min_num" writable="1">
  26081. <doc xml:space="preserve">minimal numerator</doc>
  26082. <type name="gint" c:type="gint"/>
  26083. </field>
  26084. <field name="min_den" writable="1">
  26085. <doc xml:space="preserve">minimal denominator</doc>
  26086. <type name="gint" c:type="gint"/>
  26087. </field>
  26088. <field name="max_num" writable="1">
  26089. <doc xml:space="preserve">maximal numerator</doc>
  26090. <type name="gint" c:type="gint"/>
  26091. </field>
  26092. <field name="max_den" writable="1">
  26093. <doc xml:space="preserve">maximal denominator</doc>
  26094. <type name="gint" c:type="gint"/>
  26095. </field>
  26096. <field name="def_num" writable="1">
  26097. <doc xml:space="preserve">default numerator</doc>
  26098. <type name="gint" c:type="gint"/>
  26099. </field>
  26100. <field name="def_den" writable="1">
  26101. <doc xml:space="preserve">default denominator</doc>
  26102. <type name="gint" c:type="gint"/>
  26103. </field>
  26104. </record>
  26105. <record name="ParentBufferMeta" c:type="GstParentBufferMeta" version="1.6">
  26106. <doc xml:space="preserve">The #GstParentBufferMeta is a #GstMeta which can be attached to a #GstBuffer
  26107. to hold a reference to another buffer that is only released when the child
  26108. #GstBuffer is released.
  26109. Typically, #GstParentBufferMeta is used when the child buffer is directly
  26110. using the #GstMemory of the parent buffer, and wants to prevent the parent
  26111. buffer from being returned to a buffer pool until the #GstMemory is available
  26112. for re-use.</doc>
  26113. <field name="parent" writable="1">
  26114. <doc xml:space="preserve">the parent #GstMeta structure</doc>
  26115. <type name="Meta" c:type="GstMeta"/>
  26116. </field>
  26117. <field name="buffer" writable="1">
  26118. <doc xml:space="preserve">the #GstBuffer on which a reference is being held.</doc>
  26119. <type name="Buffer" c:type="GstBuffer*"/>
  26120. </field>
  26121. <function name="get_info"
  26122. c:identifier="gst_parent_buffer_meta_get_info"
  26123. version="1.6">
  26124. <doc xml:space="preserve">Get the global #GstMetaInfo describing the #GstParentBufferMeta meta.</doc>
  26125. <return-value transfer-ownership="none">
  26126. <doc xml:space="preserve">The #GstMetaInfo</doc>
  26127. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  26128. </return-value>
  26129. </function>
  26130. </record>
  26131. <record name="ParseContext"
  26132. c:type="GstParseContext"
  26133. glib:type-name="GstParseContext"
  26134. glib:get-type="gst_parse_context_get_type"
  26135. c:symbol-prefix="parse_context">
  26136. <doc xml:space="preserve">Opaque structure.</doc>
  26137. <constructor name="new" c:identifier="gst_parse_context_new">
  26138. <doc xml:space="preserve">Allocates a parse context for use with gst_parse_launch_full() or
  26139. gst_parse_launchv_full().
  26140. Free-function: gst_parse_context_free</doc>
  26141. <return-value transfer-ownership="full">
  26142. <doc xml:space="preserve">a newly-allocated parse context. Free with
  26143. gst_parse_context_free() when no longer needed.</doc>
  26144. <type name="ParseContext" c:type="GstParseContext*"/>
  26145. </return-value>
  26146. </constructor>
  26147. <method name="free" c:identifier="gst_parse_context_free">
  26148. <doc xml:space="preserve">Frees a parse context previously allocated with gst_parse_context_new().</doc>
  26149. <return-value transfer-ownership="none">
  26150. <type name="none" c:type="void"/>
  26151. </return-value>
  26152. <parameters>
  26153. <instance-parameter name="context" transfer-ownership="full">
  26154. <doc xml:space="preserve">a #GstParseContext</doc>
  26155. <type name="ParseContext" c:type="GstParseContext*"/>
  26156. </instance-parameter>
  26157. </parameters>
  26158. </method>
  26159. <method name="get_missing_elements"
  26160. c:identifier="gst_parse_context_get_missing_elements">
  26161. <doc xml:space="preserve">Retrieve missing elements from a previous run of gst_parse_launch_full()
  26162. or gst_parse_launchv_full(). Will only return results if an error code
  26163. of %GST_PARSE_ERROR_NO_SUCH_ELEMENT was returned.</doc>
  26164. <return-value transfer-ownership="full">
  26165. <doc xml:space="preserve">a
  26166. %NULL-terminated array of element factory name strings of missing
  26167. elements. Free with g_strfreev() when no longer needed.</doc>
  26168. <array c:type="gchar**">
  26169. <type name="utf8"/>
  26170. </array>
  26171. </return-value>
  26172. <parameters>
  26173. <instance-parameter name="context" transfer-ownership="none">
  26174. <doc xml:space="preserve">a #GstParseContext</doc>
  26175. <type name="ParseContext" c:type="GstParseContext*"/>
  26176. </instance-parameter>
  26177. </parameters>
  26178. </method>
  26179. </record>
  26180. <enumeration name="ParseError"
  26181. glib:type-name="GstParseError"
  26182. glib:get-type="gst_parse_error_get_type"
  26183. c:type="GstParseError"
  26184. glib:error-domain="gst_parse_error">
  26185. <doc xml:space="preserve">The different parsing errors that can occur.</doc>
  26186. <member name="syntax"
  26187. value="0"
  26188. c:identifier="GST_PARSE_ERROR_SYNTAX"
  26189. glib:nick="syntax">
  26190. <doc xml:space="preserve">A syntax error occurred.</doc>
  26191. </member>
  26192. <member name="no_such_element"
  26193. value="1"
  26194. c:identifier="GST_PARSE_ERROR_NO_SUCH_ELEMENT"
  26195. glib:nick="no-such-element">
  26196. <doc xml:space="preserve">The description contained an unknown element</doc>
  26197. </member>
  26198. <member name="no_such_property"
  26199. value="2"
  26200. c:identifier="GST_PARSE_ERROR_NO_SUCH_PROPERTY"
  26201. glib:nick="no-such-property">
  26202. <doc xml:space="preserve">An element did not have a specified property</doc>
  26203. </member>
  26204. <member name="link"
  26205. value="3"
  26206. c:identifier="GST_PARSE_ERROR_LINK"
  26207. glib:nick="link">
  26208. <doc xml:space="preserve">There was an error linking two pads.</doc>
  26209. </member>
  26210. <member name="could_not_set_property"
  26211. value="4"
  26212. c:identifier="GST_PARSE_ERROR_COULD_NOT_SET_PROPERTY"
  26213. glib:nick="could-not-set-property">
  26214. <doc xml:space="preserve">There was an error setting a property</doc>
  26215. </member>
  26216. <member name="empty_bin"
  26217. value="5"
  26218. c:identifier="GST_PARSE_ERROR_EMPTY_BIN"
  26219. glib:nick="empty-bin">
  26220. <doc xml:space="preserve">An empty bin was specified.</doc>
  26221. </member>
  26222. <member name="empty"
  26223. value="6"
  26224. c:identifier="GST_PARSE_ERROR_EMPTY"
  26225. glib:nick="empty">
  26226. <doc xml:space="preserve">An empty description was specified</doc>
  26227. </member>
  26228. <member name="delayed_link"
  26229. value="7"
  26230. c:identifier="GST_PARSE_ERROR_DELAYED_LINK"
  26231. glib:nick="delayed-link">
  26232. <doc xml:space="preserve">A delayed link did not get resolved.</doc>
  26233. </member>
  26234. <function name="quark" c:identifier="gst_parse_error_quark">
  26235. <doc xml:space="preserve">Get the error quark used by the parsing subsystem.</doc>
  26236. <return-value transfer-ownership="none">
  26237. <doc xml:space="preserve">the quark of the parse errors.</doc>
  26238. <type name="GLib.Quark" c:type="GQuark"/>
  26239. </return-value>
  26240. </function>
  26241. </enumeration>
  26242. <bitfield name="ParseFlags"
  26243. glib:type-name="GstParseFlags"
  26244. glib:get-type="gst_parse_flags_get_type"
  26245. c:type="GstParseFlags">
  26246. <doc xml:space="preserve">Parsing options.</doc>
  26247. <member name="none"
  26248. value="0"
  26249. c:identifier="GST_PARSE_FLAG_NONE"
  26250. glib:nick="none">
  26251. <doc xml:space="preserve">Do not use any special parsing options.</doc>
  26252. </member>
  26253. <member name="fatal_errors"
  26254. value="1"
  26255. c:identifier="GST_PARSE_FLAG_FATAL_ERRORS"
  26256. glib:nick="fatal-errors">
  26257. <doc xml:space="preserve">Always return %NULL when an error occurs
  26258. (default behaviour is to return partially constructed bins or elements
  26259. in some cases)</doc>
  26260. </member>
  26261. <member name="no_single_element_bins"
  26262. value="2"
  26263. c:identifier="GST_PARSE_FLAG_NO_SINGLE_ELEMENT_BINS"
  26264. glib:nick="no-single-element-bins">
  26265. <doc xml:space="preserve">If a bin only has a single element,
  26266. just return the element.</doc>
  26267. </member>
  26268. </bitfield>
  26269. <class name="Pipeline"
  26270. c:symbol-prefix="pipeline"
  26271. c:type="GstPipeline"
  26272. parent="Bin"
  26273. glib:type-name="GstPipeline"
  26274. glib:get-type="gst_pipeline_get_type"
  26275. glib:type-struct="PipelineClass">
  26276. <doc xml:space="preserve">A #GstPipeline is a special #GstBin used as the toplevel container for
  26277. the filter graph. The #GstPipeline will manage the selection and
  26278. distribution of a global #GstClock as well as provide a #GstBus to the
  26279. application.
  26280. gst_pipeline_new() is used to create a pipeline. when you are done with
  26281. the pipeline, use gst_object_unref() to free its resources including all
  26282. added #GstElement objects (if not otherwise referenced).
  26283. Elements are added and removed from the pipeline using the #GstBin
  26284. methods like gst_bin_add() and gst_bin_remove() (see #GstBin).
  26285. Before changing the state of the #GstPipeline (see #GstElement) a #GstBus
  26286. can be retrieved with gst_pipeline_get_bus(). This bus can then be
  26287. used to receive #GstMessage from the elements in the pipeline.
  26288. By default, a #GstPipeline will automatically flush the pending #GstBus
  26289. messages when going to the NULL state to ensure that no circular
  26290. references exist when no messages are read from the #GstBus. This
  26291. behaviour can be changed with gst_pipeline_set_auto_flush_bus().
  26292. When the #GstPipeline performs the PAUSED to PLAYING state change it will
  26293. select a clock for the elements. The clock selection algorithm will by
  26294. default select a clock provided by an element that is most upstream
  26295. (closest to the source). For live pipelines (ones that return
  26296. #GST_STATE_CHANGE_NO_PREROLL from the gst_element_set_state() call) this
  26297. will select the clock provided by the live source. For normal pipelines
  26298. this will select a clock provided by the sinks (most likely the audio
  26299. sink). If no element provides a clock, a default #GstSystemClock is used.
  26300. The clock selection can be controlled with the gst_pipeline_use_clock()
  26301. method, which will enforce a given clock on the pipeline. With
  26302. gst_pipeline_auto_clock() the default clock selection algorithm can be
  26303. restored.
  26304. A #GstPipeline maintains a running time for the elements. The running
  26305. time is defined as the difference between the current clock time and
  26306. the base time. When the pipeline goes to READY or a flushing seek is
  26307. performed on it, the running time is reset to 0. When the pipeline is
  26308. set from PLAYING to PAUSED, the current clock time is sampled and used to
  26309. configure the base time for the elements when the pipeline is set
  26310. to PLAYING again. The effect is that the running time (as the difference
  26311. between the clock time and the base time) will count how much time was spent
  26312. in the PLAYING state. This default behaviour can be changed with the
  26313. gst_element_set_start_time() method.</doc>
  26314. <implements name="ChildProxy"/>
  26315. <constructor name="new" c:identifier="gst_pipeline_new">
  26316. <doc xml:space="preserve">Create a new pipeline with the given name.</doc>
  26317. <return-value transfer-ownership="none">
  26318. <doc xml:space="preserve">newly created GstPipeline
  26319. MT safe.</doc>
  26320. <type name="Element" c:type="GstElement*"/>
  26321. </return-value>
  26322. <parameters>
  26323. <parameter name="name"
  26324. transfer-ownership="none"
  26325. nullable="1"
  26326. allow-none="1">
  26327. <doc xml:space="preserve">name of new pipeline</doc>
  26328. <type name="utf8" c:type="const gchar*"/>
  26329. </parameter>
  26330. </parameters>
  26331. </constructor>
  26332. <method name="auto_clock" c:identifier="gst_pipeline_auto_clock">
  26333. <doc xml:space="preserve">Let @pipeline select a clock automatically. This is the default
  26334. behaviour.
  26335. Use this function if you previous forced a fixed clock with
  26336. gst_pipeline_use_clock() and want to restore the default
  26337. pipeline clock selection algorithm.
  26338. MT safe.</doc>
  26339. <return-value transfer-ownership="none">
  26340. <type name="none" c:type="void"/>
  26341. </return-value>
  26342. <parameters>
  26343. <instance-parameter name="pipeline" transfer-ownership="none">
  26344. <doc xml:space="preserve">a #GstPipeline</doc>
  26345. <type name="Pipeline" c:type="GstPipeline*"/>
  26346. </instance-parameter>
  26347. </parameters>
  26348. </method>
  26349. <method name="get_auto_flush_bus"
  26350. c:identifier="gst_pipeline_get_auto_flush_bus">
  26351. <doc xml:space="preserve">Check if @pipeline will automatically flush messages when going to
  26352. the NULL state.</doc>
  26353. <return-value transfer-ownership="none">
  26354. <doc xml:space="preserve">whether the pipeline will automatically flush its bus when
  26355. going from READY to NULL state or not.
  26356. MT safe.</doc>
  26357. <type name="gboolean" c:type="gboolean"/>
  26358. </return-value>
  26359. <parameters>
  26360. <instance-parameter name="pipeline" transfer-ownership="none">
  26361. <doc xml:space="preserve">a #GstPipeline</doc>
  26362. <type name="Pipeline" c:type="GstPipeline*"/>
  26363. </instance-parameter>
  26364. </parameters>
  26365. </method>
  26366. <method name="get_bus" c:identifier="gst_pipeline_get_bus">
  26367. <doc xml:space="preserve">Gets the #GstBus of @pipeline. The bus allows applications to receive
  26368. #GstMessage packets.</doc>
  26369. <return-value transfer-ownership="full">
  26370. <doc xml:space="preserve">a #GstBus, unref after usage.
  26371. MT safe.</doc>
  26372. <type name="Bus" c:type="GstBus*"/>
  26373. </return-value>
  26374. <parameters>
  26375. <instance-parameter name="pipeline" transfer-ownership="none">
  26376. <doc xml:space="preserve">a #GstPipeline</doc>
  26377. <type name="Pipeline" c:type="GstPipeline*"/>
  26378. </instance-parameter>
  26379. </parameters>
  26380. </method>
  26381. <method name="get_clock"
  26382. c:identifier="gst_pipeline_get_clock"
  26383. introspectable="0">
  26384. <doc xml:space="preserve">Gets the current clock used by @pipeline. Users of object
  26385. oriented languages should use gst_pipeline_get_pipeline_clock()
  26386. to avoid confusion with gst_element_get_clock() which has a different behavior.
  26387. Unlike gst_element_get_clock(), this function will always return a
  26388. clock, even if the pipeline is not in the PLAYING state.</doc>
  26389. <return-value transfer-ownership="full">
  26390. <doc xml:space="preserve">a #GstClock, unref after usage.</doc>
  26391. <type name="Clock" c:type="GstClock*"/>
  26392. </return-value>
  26393. <parameters>
  26394. <instance-parameter name="pipeline" transfer-ownership="none">
  26395. <doc xml:space="preserve">a #GstPipeline</doc>
  26396. <type name="Pipeline" c:type="GstPipeline*"/>
  26397. </instance-parameter>
  26398. </parameters>
  26399. </method>
  26400. <method name="get_delay" c:identifier="gst_pipeline_get_delay">
  26401. <doc xml:space="preserve">Get the configured delay (see gst_pipeline_set_delay()).</doc>
  26402. <return-value transfer-ownership="none">
  26403. <doc xml:space="preserve">The configured delay.
  26404. MT safe.</doc>
  26405. <type name="ClockTime" c:type="GstClockTime"/>
  26406. </return-value>
  26407. <parameters>
  26408. <instance-parameter name="pipeline" transfer-ownership="none">
  26409. <doc xml:space="preserve">a #GstPipeline</doc>
  26410. <type name="Pipeline" c:type="GstPipeline*"/>
  26411. </instance-parameter>
  26412. </parameters>
  26413. </method>
  26414. <method name="get_latency"
  26415. c:identifier="gst_pipeline_get_latency"
  26416. version="1.6">
  26417. <doc xml:space="preserve">Gets the latency that should be configured on the pipeline. See
  26418. gst_pipeline_set_latency().</doc>
  26419. <return-value transfer-ownership="none">
  26420. <doc xml:space="preserve">Latency to configure on the pipeline or GST_CLOCK_TIME_NONE</doc>
  26421. <type name="ClockTime" c:type="GstClockTime"/>
  26422. </return-value>
  26423. <parameters>
  26424. <instance-parameter name="pipeline" transfer-ownership="none">
  26425. <doc xml:space="preserve">a #GstPipeline</doc>
  26426. <type name="Pipeline" c:type="GstPipeline*"/>
  26427. </instance-parameter>
  26428. </parameters>
  26429. </method>
  26430. <method name="get_pipeline_clock"
  26431. c:identifier="gst_pipeline_get_pipeline_clock"
  26432. version="1.6">
  26433. <doc xml:space="preserve">Gets the current clock used by @pipeline.
  26434. Unlike gst_element_get_clock(), this function will always return a
  26435. clock, even if the pipeline is not in the PLAYING state.</doc>
  26436. <return-value transfer-ownership="full">
  26437. <doc xml:space="preserve">a #GstClock, unref after usage.</doc>
  26438. <type name="Clock" c:type="GstClock*"/>
  26439. </return-value>
  26440. <parameters>
  26441. <instance-parameter name="pipeline" transfer-ownership="none">
  26442. <doc xml:space="preserve">a #GstPipeline</doc>
  26443. <type name="Pipeline" c:type="GstPipeline*"/>
  26444. </instance-parameter>
  26445. </parameters>
  26446. </method>
  26447. <method name="set_auto_flush_bus"
  26448. c:identifier="gst_pipeline_set_auto_flush_bus">
  26449. <doc xml:space="preserve">Usually, when a pipeline goes from READY to NULL state, it automatically
  26450. flushes all pending messages on the bus, which is done for refcounting
  26451. purposes, to break circular references.
  26452. This means that applications that update state using (async) bus messages
  26453. (e.g. do certain things when a pipeline goes from PAUSED to READY) might
  26454. not get to see messages when the pipeline is shut down, because they might
  26455. be flushed before they can be dispatched in the main thread. This behaviour
  26456. can be disabled using this function.
  26457. It is important that all messages on the bus are handled when the
  26458. automatic flushing is disabled else memory leaks will be introduced.
  26459. MT safe.</doc>
  26460. <return-value transfer-ownership="none">
  26461. <type name="none" c:type="void"/>
  26462. </return-value>
  26463. <parameters>
  26464. <instance-parameter name="pipeline" transfer-ownership="none">
  26465. <doc xml:space="preserve">a #GstPipeline</doc>
  26466. <type name="Pipeline" c:type="GstPipeline*"/>
  26467. </instance-parameter>
  26468. <parameter name="auto_flush" transfer-ownership="none">
  26469. <doc xml:space="preserve">whether or not to automatically flush the bus when
  26470. the pipeline goes from READY to NULL state</doc>
  26471. <type name="gboolean" c:type="gboolean"/>
  26472. </parameter>
  26473. </parameters>
  26474. </method>
  26475. <method name="set_clock"
  26476. c:identifier="gst_pipeline_set_clock"
  26477. introspectable="0">
  26478. <doc xml:space="preserve">Set the clock for @pipeline. The clock will be distributed
  26479. to all the elements managed by the pipeline.</doc>
  26480. <return-value transfer-ownership="none">
  26481. <doc xml:space="preserve">%TRUE if the clock could be set on the pipeline. %FALSE if
  26482. some element did not accept the clock.
  26483. MT safe.</doc>
  26484. <type name="gboolean" c:type="gboolean"/>
  26485. </return-value>
  26486. <parameters>
  26487. <instance-parameter name="pipeline" transfer-ownership="none">
  26488. <doc xml:space="preserve">a #GstPipeline</doc>
  26489. <type name="Pipeline" c:type="GstPipeline*"/>
  26490. </instance-parameter>
  26491. <parameter name="clock" transfer-ownership="none">
  26492. <doc xml:space="preserve">the clock to set</doc>
  26493. <type name="Clock" c:type="GstClock*"/>
  26494. </parameter>
  26495. </parameters>
  26496. </method>
  26497. <method name="set_delay" c:identifier="gst_pipeline_set_delay">
  26498. <doc xml:space="preserve">Set the expected delay needed for all elements to perform the
  26499. PAUSED to PLAYING state change. @delay will be added to the
  26500. base time of the elements so that they wait an additional @delay
  26501. amount of time before starting to process buffers and cannot be
  26502. #GST_CLOCK_TIME_NONE.
  26503. This option is used for tuning purposes and should normally not be
  26504. used.
  26505. MT safe.</doc>
  26506. <return-value transfer-ownership="none">
  26507. <type name="none" c:type="void"/>
  26508. </return-value>
  26509. <parameters>
  26510. <instance-parameter name="pipeline" transfer-ownership="none">
  26511. <doc xml:space="preserve">a #GstPipeline</doc>
  26512. <type name="Pipeline" c:type="GstPipeline*"/>
  26513. </instance-parameter>
  26514. <parameter name="delay" transfer-ownership="none">
  26515. <doc xml:space="preserve">the delay</doc>
  26516. <type name="ClockTime" c:type="GstClockTime"/>
  26517. </parameter>
  26518. </parameters>
  26519. </method>
  26520. <method name="set_latency"
  26521. c:identifier="gst_pipeline_set_latency"
  26522. version="1.6">
  26523. <doc xml:space="preserve">Sets the latency that should be configured on the pipeline. Setting
  26524. GST_CLOCK_TIME_NONE will restore the default behaviour of using the minimum
  26525. latency from the LATENCY query. Setting this is usually not required and
  26526. the pipeline will figure out an appropriate latency automatically.
  26527. Setting a too low latency, especially lower than the minimum latency from
  26528. the LATENCY query, will most likely cause the pipeline to fail.</doc>
  26529. <return-value transfer-ownership="none">
  26530. <type name="none" c:type="void"/>
  26531. </return-value>
  26532. <parameters>
  26533. <instance-parameter name="pipeline" transfer-ownership="none">
  26534. <doc xml:space="preserve">a #GstPipeline</doc>
  26535. <type name="Pipeline" c:type="GstPipeline*"/>
  26536. </instance-parameter>
  26537. <parameter name="latency" transfer-ownership="none">
  26538. <doc xml:space="preserve">latency to configure</doc>
  26539. <type name="ClockTime" c:type="GstClockTime"/>
  26540. </parameter>
  26541. </parameters>
  26542. </method>
  26543. <method name="use_clock" c:identifier="gst_pipeline_use_clock">
  26544. <doc xml:space="preserve">Force @pipeline to use the given @clock. The pipeline will
  26545. always use the given clock even if new clock providers are added
  26546. to this pipeline.
  26547. If @clock is %NULL all clocking will be disabled which will make
  26548. the pipeline run as fast as possible.
  26549. MT safe.</doc>
  26550. <return-value transfer-ownership="none">
  26551. <type name="none" c:type="void"/>
  26552. </return-value>
  26553. <parameters>
  26554. <instance-parameter name="pipeline" transfer-ownership="none">
  26555. <doc xml:space="preserve">a #GstPipeline</doc>
  26556. <type name="Pipeline" c:type="GstPipeline*"/>
  26557. </instance-parameter>
  26558. <parameter name="clock"
  26559. transfer-ownership="none"
  26560. nullable="1"
  26561. allow-none="1">
  26562. <doc xml:space="preserve">the clock to use</doc>
  26563. <type name="Clock" c:type="GstClock*"/>
  26564. </parameter>
  26565. </parameters>
  26566. </method>
  26567. <property name="auto-flush-bus" writable="1" transfer-ownership="none">
  26568. <doc xml:space="preserve">Whether or not to automatically flush all messages on the
  26569. pipeline's bus when going from READY to NULL state. Please see
  26570. gst_pipeline_set_auto_flush_bus() for more information on this option.</doc>
  26571. <type name="gboolean" c:type="gboolean"/>
  26572. </property>
  26573. <property name="delay" writable="1" transfer-ownership="none">
  26574. <doc xml:space="preserve">The expected delay needed for elements to spin up to the
  26575. PLAYING state expressed in nanoseconds.
  26576. see gst_pipeline_set_delay() for more information on this option.</doc>
  26577. <type name="guint64" c:type="guint64"/>
  26578. </property>
  26579. <property name="latency"
  26580. version="1.6"
  26581. writable="1"
  26582. transfer-ownership="none">
  26583. <doc xml:space="preserve">Latency to configure on the pipeline. See gst_pipeline_set_latency().</doc>
  26584. <type name="guint64" c:type="guint64"/>
  26585. </property>
  26586. <field name="bin">
  26587. <type name="Bin" c:type="GstBin"/>
  26588. </field>
  26589. <field name="fixed_clock">
  26590. <doc xml:space="preserve">The fixed clock of the pipeline, used when
  26591. GST_PIPELINE_FLAG_FIXED_CLOCK is set.</doc>
  26592. <type name="Clock" c:type="GstClock*"/>
  26593. </field>
  26594. <field name="stream_time">
  26595. <doc xml:space="preserve">The stream time of the pipeline. A better name for this
  26596. property would be the running_time, the total time spent in the
  26597. PLAYING state without being flushed. (deprecated, use the start_time
  26598. on GstElement).</doc>
  26599. <type name="ClockTime" c:type="GstClockTime"/>
  26600. </field>
  26601. <field name="delay">
  26602. <doc xml:space="preserve">Extra delay added to base_time to compensate for computing delays
  26603. when setting elements to PLAYING.</doc>
  26604. <type name="ClockTime" c:type="GstClockTime"/>
  26605. </field>
  26606. <field name="priv" readable="0" private="1">
  26607. <type name="PipelinePrivate" c:type="GstPipelinePrivate*"/>
  26608. </field>
  26609. <field name="_gst_reserved" readable="0" private="1">
  26610. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  26611. <type name="gpointer" c:type="gpointer"/>
  26612. </array>
  26613. </field>
  26614. </class>
  26615. <record name="PipelineClass"
  26616. c:type="GstPipelineClass"
  26617. glib:is-gtype-struct-for="Pipeline">
  26618. <field name="parent_class">
  26619. <type name="BinClass" c:type="GstBinClass"/>
  26620. </field>
  26621. <field name="_gst_reserved" readable="0" private="1">
  26622. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  26623. <type name="gpointer" c:type="gpointer"/>
  26624. </array>
  26625. </field>
  26626. </record>
  26627. <bitfield name="PipelineFlags"
  26628. glib:type-name="GstPipelineFlags"
  26629. glib:get-type="gst_pipeline_flags_get_type"
  26630. c:type="GstPipelineFlags">
  26631. <doc xml:space="preserve">Pipeline flags</doc>
  26632. <member name="fixed_clock"
  26633. value="524288"
  26634. c:identifier="GST_PIPELINE_FLAG_FIXED_CLOCK"
  26635. glib:nick="fixed-clock">
  26636. <doc xml:space="preserve">this pipeline works with a fixed clock</doc>
  26637. </member>
  26638. <member name="last"
  26639. value="8388608"
  26640. c:identifier="GST_PIPELINE_FLAG_LAST"
  26641. glib:nick="last">
  26642. <doc xml:space="preserve">offset to define more flags</doc>
  26643. </member>
  26644. </bitfield>
  26645. <record name="PipelinePrivate" c:type="GstPipelinePrivate" disguised="1">
  26646. </record>
  26647. <class name="Plugin"
  26648. c:symbol-prefix="plugin"
  26649. c:type="GstPlugin"
  26650. parent="Object"
  26651. glib:type-name="GstPlugin"
  26652. glib:get-type="gst_plugin_get_type"
  26653. glib:type-struct="PluginClass">
  26654. <doc xml:space="preserve">GStreamer is extensible, so #GstElement instances can be loaded at runtime.
  26655. A plugin system can provide one or more of the basic
  26656. &lt;application&gt;GStreamer&lt;/application&gt; #GstPluginFeature subclasses.
  26657. A plugin should export a symbol &lt;symbol&gt;gst_plugin_desc&lt;/symbol&gt; that is a
  26658. struct of type #GstPluginDesc.
  26659. the plugin loader will check the version of the core library the plugin was
  26660. linked against and will create a new #GstPlugin. It will then call the
  26661. #GstPluginInitFunc function that was provided in the
  26662. &lt;symbol&gt;gst_plugin_desc&lt;/symbol&gt;.
  26663. Once you have a handle to a #GstPlugin (e.g. from the #GstRegistry), you
  26664. can add any object that subclasses #GstPluginFeature.
  26665. Usually plugins are always automatically loaded so you don't need to call
  26666. gst_plugin_load() explicitly to bring it into memory. There are options to
  26667. statically link plugins to an app or even use GStreamer without a plugin
  26668. repository in which case gst_plugin_load() can be needed to bring the plugin
  26669. into memory.</doc>
  26670. <function name="list_free" c:identifier="gst_plugin_list_free">
  26671. <doc xml:space="preserve">Unrefs each member of @list, then frees the list.</doc>
  26672. <return-value transfer-ownership="none">
  26673. <type name="none" c:type="void"/>
  26674. </return-value>
  26675. <parameters>
  26676. <parameter name="list" transfer-ownership="full">
  26677. <doc xml:space="preserve">list of #GstPlugin</doc>
  26678. <type name="GLib.List" c:type="GList*">
  26679. <type name="Plugin"/>
  26680. </type>
  26681. </parameter>
  26682. </parameters>
  26683. </function>
  26684. <function name="load_by_name" c:identifier="gst_plugin_load_by_name">
  26685. <doc xml:space="preserve">Load the named plugin. Refs the plugin.</doc>
  26686. <return-value transfer-ownership="full">
  26687. <doc xml:space="preserve">a reference to a loaded plugin, or %NULL on error.</doc>
  26688. <type name="Plugin" c:type="GstPlugin*"/>
  26689. </return-value>
  26690. <parameters>
  26691. <parameter name="name" transfer-ownership="none">
  26692. <doc xml:space="preserve">name of plugin to load</doc>
  26693. <type name="utf8" c:type="const gchar*"/>
  26694. </parameter>
  26695. </parameters>
  26696. </function>
  26697. <function name="load_file"
  26698. c:identifier="gst_plugin_load_file"
  26699. throws="1">
  26700. <doc xml:space="preserve">Loads the given plugin and refs it. Caller needs to unref after use.</doc>
  26701. <return-value transfer-ownership="full">
  26702. <doc xml:space="preserve">a reference to the existing loaded GstPlugin, a
  26703. reference to the newly-loaded GstPlugin, or %NULL if an error occurred.</doc>
  26704. <type name="Plugin" c:type="GstPlugin*"/>
  26705. </return-value>
  26706. <parameters>
  26707. <parameter name="filename" transfer-ownership="none">
  26708. <doc xml:space="preserve">the plugin filename to load</doc>
  26709. <type name="utf8" c:type="const gchar*"/>
  26710. </parameter>
  26711. </parameters>
  26712. </function>
  26713. <function name="register_static"
  26714. c:identifier="gst_plugin_register_static">
  26715. <doc xml:space="preserve">Registers a static plugin, ie. a plugin which is private to an application
  26716. or library and contained within the application or library (as opposed to
  26717. being shipped as a separate module file).
  26718. You must make sure that GStreamer has been initialised (with gst_init() or
  26719. via gst_init_get_option_group()) before calling this function.</doc>
  26720. <return-value transfer-ownership="none">
  26721. <doc xml:space="preserve">%TRUE if the plugin was registered correctly, otherwise %FALSE.</doc>
  26722. <type name="gboolean" c:type="gboolean"/>
  26723. </return-value>
  26724. <parameters>
  26725. <parameter name="major_version" transfer-ownership="none">
  26726. <doc xml:space="preserve">the major version number of the GStreamer core that the
  26727. plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc>
  26728. <type name="gint" c:type="gint"/>
  26729. </parameter>
  26730. <parameter name="minor_version" transfer-ownership="none">
  26731. <doc xml:space="preserve">the minor version number of the GStreamer core that the
  26732. plugin was compiled for, you can just use GST_VERSION_MINOR here</doc>
  26733. <type name="gint" c:type="gint"/>
  26734. </parameter>
  26735. <parameter name="name" transfer-ownership="none">
  26736. <doc xml:space="preserve">a unique name of the plugin (ideally prefixed with an application- or
  26737. library-specific namespace prefix in order to avoid name conflicts in
  26738. case a similar plugin with the same name ever gets added to GStreamer)</doc>
  26739. <type name="utf8" c:type="const gchar*"/>
  26740. </parameter>
  26741. <parameter name="description" transfer-ownership="none">
  26742. <doc xml:space="preserve">description of the plugin</doc>
  26743. <type name="utf8" c:type="const gchar*"/>
  26744. </parameter>
  26745. <parameter name="init_func" transfer-ownership="none" scope="call">
  26746. <doc xml:space="preserve">pointer to the init function of this plugin.</doc>
  26747. <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
  26748. </parameter>
  26749. <parameter name="version" transfer-ownership="none">
  26750. <doc xml:space="preserve">version string of the plugin</doc>
  26751. <type name="utf8" c:type="const gchar*"/>
  26752. </parameter>
  26753. <parameter name="license" transfer-ownership="none">
  26754. <doc xml:space="preserve">effective license of plugin. Must be one of the approved licenses
  26755. (see #GstPluginDesc above) or the plugin will not be registered.</doc>
  26756. <type name="utf8" c:type="const gchar*"/>
  26757. </parameter>
  26758. <parameter name="source" transfer-ownership="none">
  26759. <doc xml:space="preserve">source module plugin belongs to</doc>
  26760. <type name="utf8" c:type="const gchar*"/>
  26761. </parameter>
  26762. <parameter name="package" transfer-ownership="none">
  26763. <doc xml:space="preserve">shipped package plugin belongs to</doc>
  26764. <type name="utf8" c:type="const gchar*"/>
  26765. </parameter>
  26766. <parameter name="origin" transfer-ownership="none">
  26767. <doc xml:space="preserve">URL to provider of plugin</doc>
  26768. <type name="utf8" c:type="const gchar*"/>
  26769. </parameter>
  26770. </parameters>
  26771. </function>
  26772. <function name="register_static_full"
  26773. c:identifier="gst_plugin_register_static_full">
  26774. <doc xml:space="preserve">Registers a static plugin, ie. a plugin which is private to an application
  26775. or library and contained within the application or library (as opposed to
  26776. being shipped as a separate module file) with a #GstPluginInitFullFunc
  26777. which allows user data to be passed to the callback function (useful
  26778. for bindings).
  26779. You must make sure that GStreamer has been initialised (with gst_init() or
  26780. via gst_init_get_option_group()) before calling this function.</doc>
  26781. <return-value transfer-ownership="none">
  26782. <doc xml:space="preserve">%TRUE if the plugin was registered correctly, otherwise %FALSE.</doc>
  26783. <type name="gboolean" c:type="gboolean"/>
  26784. </return-value>
  26785. <parameters>
  26786. <parameter name="major_version" transfer-ownership="none">
  26787. <doc xml:space="preserve">the major version number of the GStreamer core that the
  26788. plugin was compiled for, you can just use GST_VERSION_MAJOR here</doc>
  26789. <type name="gint" c:type="gint"/>
  26790. </parameter>
  26791. <parameter name="minor_version" transfer-ownership="none">
  26792. <doc xml:space="preserve">the minor version number of the GStreamer core that the
  26793. plugin was compiled for, you can just use GST_VERSION_MINOR here</doc>
  26794. <type name="gint" c:type="gint"/>
  26795. </parameter>
  26796. <parameter name="name" transfer-ownership="none">
  26797. <doc xml:space="preserve">a unique name of the plugin (ideally prefixed with an application- or
  26798. library-specific namespace prefix in order to avoid name conflicts in
  26799. case a similar plugin with the same name ever gets added to GStreamer)</doc>
  26800. <type name="utf8" c:type="const gchar*"/>
  26801. </parameter>
  26802. <parameter name="description" transfer-ownership="none">
  26803. <doc xml:space="preserve">description of the plugin</doc>
  26804. <type name="utf8" c:type="const gchar*"/>
  26805. </parameter>
  26806. <parameter name="init_full_func"
  26807. transfer-ownership="none"
  26808. scope="call"
  26809. closure="10">
  26810. <doc xml:space="preserve">pointer to the init function with user data
  26811. of this plugin.</doc>
  26812. <type name="PluginInitFullFunc" c:type="GstPluginInitFullFunc"/>
  26813. </parameter>
  26814. <parameter name="version" transfer-ownership="none">
  26815. <doc xml:space="preserve">version string of the plugin</doc>
  26816. <type name="utf8" c:type="const gchar*"/>
  26817. </parameter>
  26818. <parameter name="license" transfer-ownership="none">
  26819. <doc xml:space="preserve">effective license of plugin. Must be one of the approved licenses
  26820. (see #GstPluginDesc above) or the plugin will not be registered.</doc>
  26821. <type name="utf8" c:type="const gchar*"/>
  26822. </parameter>
  26823. <parameter name="source" transfer-ownership="none">
  26824. <doc xml:space="preserve">source module plugin belongs to</doc>
  26825. <type name="utf8" c:type="const gchar*"/>
  26826. </parameter>
  26827. <parameter name="package" transfer-ownership="none">
  26828. <doc xml:space="preserve">shipped package plugin belongs to</doc>
  26829. <type name="utf8" c:type="const gchar*"/>
  26830. </parameter>
  26831. <parameter name="origin" transfer-ownership="none">
  26832. <doc xml:space="preserve">URL to provider of plugin</doc>
  26833. <type name="utf8" c:type="const gchar*"/>
  26834. </parameter>
  26835. <parameter name="user_data"
  26836. transfer-ownership="none"
  26837. nullable="1"
  26838. allow-none="1">
  26839. <doc xml:space="preserve">gpointer to user data</doc>
  26840. <type name="gpointer" c:type="gpointer"/>
  26841. </parameter>
  26842. </parameters>
  26843. </function>
  26844. <method name="add_dependency" c:identifier="gst_plugin_add_dependency">
  26845. <doc xml:space="preserve">Make GStreamer aware of external dependencies which affect the feature
  26846. set of this plugin (ie. the elements or typefinders associated with it).
  26847. GStreamer will re-inspect plugins with external dependencies whenever any
  26848. of the external dependencies change. This is useful for plugins which wrap
  26849. other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
  26850. library and makes visualisations available as GStreamer elements, or a
  26851. codec loader which exposes elements and/or caps dependent on what external
  26852. codec libraries are currently installed.</doc>
  26853. <return-value transfer-ownership="none">
  26854. <type name="none" c:type="void"/>
  26855. </return-value>
  26856. <parameters>
  26857. <instance-parameter name="plugin" transfer-ownership="none">
  26858. <doc xml:space="preserve">a #GstPlugin</doc>
  26859. <type name="Plugin" c:type="GstPlugin*"/>
  26860. </instance-parameter>
  26861. <parameter name="env_vars"
  26862. transfer-ownership="none"
  26863. nullable="1"
  26864. allow-none="1">
  26865. <doc xml:space="preserve">%NULL-terminated array of environment variables affecting the
  26866. feature set of the plugin (e.g. an environment variable containing
  26867. paths where to look for additional modules/plugins of a library),
  26868. or %NULL. Environment variable names may be followed by a path component
  26869. which will be added to the content of the environment variable, e.g.
  26870. "HOME/.mystuff/plugins".</doc>
  26871. <type name="utf8" c:type="const gchar**"/>
  26872. </parameter>
  26873. <parameter name="paths"
  26874. transfer-ownership="none"
  26875. nullable="1"
  26876. allow-none="1">
  26877. <doc xml:space="preserve">%NULL-terminated array of directories/paths where dependent files
  26878. may be, or %NULL.</doc>
  26879. <type name="utf8" c:type="const gchar**"/>
  26880. </parameter>
  26881. <parameter name="names"
  26882. transfer-ownership="none"
  26883. nullable="1"
  26884. allow-none="1">
  26885. <doc xml:space="preserve">%NULL-terminated array of file names (or file name suffixes,
  26886. depending on @flags) to be used in combination with the paths from
  26887. @paths and/or the paths extracted from the environment variables in
  26888. @env_vars, or %NULL.</doc>
  26889. <type name="utf8" c:type="const gchar**"/>
  26890. </parameter>
  26891. <parameter name="flags" transfer-ownership="none">
  26892. <doc xml:space="preserve">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc>
  26893. <type name="PluginDependencyFlags"
  26894. c:type="GstPluginDependencyFlags"/>
  26895. </parameter>
  26896. </parameters>
  26897. </method>
  26898. <method name="add_dependency_simple"
  26899. c:identifier="gst_plugin_add_dependency_simple">
  26900. <doc xml:space="preserve">Make GStreamer aware of external dependencies which affect the feature
  26901. set of this plugin (ie. the elements or typefinders associated with it).
  26902. GStreamer will re-inspect plugins with external dependencies whenever any
  26903. of the external dependencies change. This is useful for plugins which wrap
  26904. other plugin systems, e.g. a plugin which wraps a plugin-based visualisation
  26905. library and makes visualisations available as GStreamer elements, or a
  26906. codec loader which exposes elements and/or caps dependent on what external
  26907. codec libraries are currently installed.
  26908. Convenience wrapper function for gst_plugin_add_dependency() which
  26909. takes simple strings as arguments instead of string arrays, with multiple
  26910. arguments separated by predefined delimiters (see above).</doc>
  26911. <return-value transfer-ownership="none">
  26912. <type name="none" c:type="void"/>
  26913. </return-value>
  26914. <parameters>
  26915. <instance-parameter name="plugin" transfer-ownership="none">
  26916. <doc xml:space="preserve">the #GstPlugin</doc>
  26917. <type name="Plugin" c:type="GstPlugin*"/>
  26918. </instance-parameter>
  26919. <parameter name="env_vars"
  26920. transfer-ownership="none"
  26921. nullable="1"
  26922. allow-none="1">
  26923. <doc xml:space="preserve">one or more environment variables (separated by ':', ';' or ','),
  26924. or %NULL. Environment variable names may be followed by a path component
  26925. which will be added to the content of the environment variable, e.g.
  26926. "HOME/.mystuff/plugins:MYSTUFF_PLUGINS_PATH"</doc>
  26927. <type name="utf8" c:type="const gchar*"/>
  26928. </parameter>
  26929. <parameter name="paths"
  26930. transfer-ownership="none"
  26931. nullable="1"
  26932. allow-none="1">
  26933. <doc xml:space="preserve">one ore more directory paths (separated by ':' or ';' or ','),
  26934. or %NULL. Example: "/usr/lib/mystuff/plugins"</doc>
  26935. <type name="utf8" c:type="const gchar*"/>
  26936. </parameter>
  26937. <parameter name="names"
  26938. transfer-ownership="none"
  26939. nullable="1"
  26940. allow-none="1">
  26941. <doc xml:space="preserve">one or more file names or file name suffixes (separated by commas),
  26942. or %NULL</doc>
  26943. <type name="utf8" c:type="const gchar*"/>
  26944. </parameter>
  26945. <parameter name="flags" transfer-ownership="none">
  26946. <doc xml:space="preserve">optional flags, or #GST_PLUGIN_DEPENDENCY_FLAG_NONE</doc>
  26947. <type name="PluginDependencyFlags"
  26948. c:type="GstPluginDependencyFlags"/>
  26949. </parameter>
  26950. </parameters>
  26951. </method>
  26952. <method name="get_cache_data" c:identifier="gst_plugin_get_cache_data">
  26953. <doc xml:space="preserve">Gets the plugin specific data cache. If it is %NULL there is no cached data
  26954. stored. This is the case when the registry is getting rebuilt.</doc>
  26955. <return-value transfer-ownership="none" nullable="1">
  26956. <doc xml:space="preserve">The cached data as a
  26957. #GstStructure or %NULL.</doc>
  26958. <type name="Structure" c:type="const GstStructure*"/>
  26959. </return-value>
  26960. <parameters>
  26961. <instance-parameter name="plugin" transfer-ownership="none">
  26962. <doc xml:space="preserve">a plugin</doc>
  26963. <type name="Plugin" c:type="GstPlugin*"/>
  26964. </instance-parameter>
  26965. </parameters>
  26966. </method>
  26967. <method name="get_description" c:identifier="gst_plugin_get_description">
  26968. <doc xml:space="preserve">Get the long descriptive name of the plugin</doc>
  26969. <return-value transfer-ownership="none">
  26970. <doc xml:space="preserve">the long name of the plugin</doc>
  26971. <type name="utf8" c:type="const gchar*"/>
  26972. </return-value>
  26973. <parameters>
  26974. <instance-parameter name="plugin" transfer-ownership="none">
  26975. <doc xml:space="preserve">plugin to get long name of</doc>
  26976. <type name="Plugin" c:type="GstPlugin*"/>
  26977. </instance-parameter>
  26978. </parameters>
  26979. </method>
  26980. <method name="get_filename" c:identifier="gst_plugin_get_filename">
  26981. <doc xml:space="preserve">get the filename of the plugin</doc>
  26982. <return-value transfer-ownership="none">
  26983. <doc xml:space="preserve">the filename of the plugin</doc>
  26984. <type name="utf8" c:type="const gchar*"/>
  26985. </return-value>
  26986. <parameters>
  26987. <instance-parameter name="plugin" transfer-ownership="none">
  26988. <doc xml:space="preserve">plugin to get the filename of</doc>
  26989. <type name="Plugin" c:type="GstPlugin*"/>
  26990. </instance-parameter>
  26991. </parameters>
  26992. </method>
  26993. <method name="get_license" c:identifier="gst_plugin_get_license">
  26994. <doc xml:space="preserve">get the license of the plugin</doc>
  26995. <return-value transfer-ownership="none">
  26996. <doc xml:space="preserve">the license of the plugin</doc>
  26997. <type name="utf8" c:type="const gchar*"/>
  26998. </return-value>
  26999. <parameters>
  27000. <instance-parameter name="plugin" transfer-ownership="none">
  27001. <doc xml:space="preserve">plugin to get the license of</doc>
  27002. <type name="Plugin" c:type="GstPlugin*"/>
  27003. </instance-parameter>
  27004. </parameters>
  27005. </method>
  27006. <method name="get_name" c:identifier="gst_plugin_get_name">
  27007. <doc xml:space="preserve">Get the short name of the plugin</doc>
  27008. <return-value transfer-ownership="none">
  27009. <doc xml:space="preserve">the name of the plugin</doc>
  27010. <type name="utf8" c:type="const gchar*"/>
  27011. </return-value>
  27012. <parameters>
  27013. <instance-parameter name="plugin" transfer-ownership="none">
  27014. <doc xml:space="preserve">plugin to get the name of</doc>
  27015. <type name="Plugin" c:type="GstPlugin*"/>
  27016. </instance-parameter>
  27017. </parameters>
  27018. </method>
  27019. <method name="get_origin" c:identifier="gst_plugin_get_origin">
  27020. <doc xml:space="preserve">get the URL where the plugin comes from</doc>
  27021. <return-value transfer-ownership="none">
  27022. <doc xml:space="preserve">the origin of the plugin</doc>
  27023. <type name="utf8" c:type="const gchar*"/>
  27024. </return-value>
  27025. <parameters>
  27026. <instance-parameter name="plugin" transfer-ownership="none">
  27027. <doc xml:space="preserve">plugin to get the origin of</doc>
  27028. <type name="Plugin" c:type="GstPlugin*"/>
  27029. </instance-parameter>
  27030. </parameters>
  27031. </method>
  27032. <method name="get_package" c:identifier="gst_plugin_get_package">
  27033. <doc xml:space="preserve">get the package the plugin belongs to.</doc>
  27034. <return-value transfer-ownership="none">
  27035. <doc xml:space="preserve">the package of the plugin</doc>
  27036. <type name="utf8" c:type="const gchar*"/>
  27037. </return-value>
  27038. <parameters>
  27039. <instance-parameter name="plugin" transfer-ownership="none">
  27040. <doc xml:space="preserve">plugin to get the package of</doc>
  27041. <type name="Plugin" c:type="GstPlugin*"/>
  27042. </instance-parameter>
  27043. </parameters>
  27044. </method>
  27045. <method name="get_release_date_string"
  27046. c:identifier="gst_plugin_get_release_date_string">
  27047. <doc xml:space="preserve">Get the release date (and possibly time) in form of a string, if available.
  27048. For normal GStreamer plugin releases this will usually just be a date in
  27049. the form of "YYYY-MM-DD", while pre-releases and builds from git may contain
  27050. a time component after the date as well, in which case the string will be
  27051. formatted like "YYYY-MM-DDTHH:MMZ" (e.g. "2012-04-30T09:30Z").
  27052. There may be plugins that do not have a valid release date set on them.</doc>
  27053. <return-value transfer-ownership="none" nullable="1">
  27054. <doc xml:space="preserve">the date string of the plugin, or %NULL if not
  27055. available.</doc>
  27056. <type name="utf8" c:type="const gchar*"/>
  27057. </return-value>
  27058. <parameters>
  27059. <instance-parameter name="plugin" transfer-ownership="none">
  27060. <doc xml:space="preserve">plugin to get the release date of</doc>
  27061. <type name="Plugin" c:type="GstPlugin*"/>
  27062. </instance-parameter>
  27063. </parameters>
  27064. </method>
  27065. <method name="get_source" c:identifier="gst_plugin_get_source">
  27066. <doc xml:space="preserve">get the source module the plugin belongs to.</doc>
  27067. <return-value transfer-ownership="none">
  27068. <doc xml:space="preserve">the source of the plugin</doc>
  27069. <type name="utf8" c:type="const gchar*"/>
  27070. </return-value>
  27071. <parameters>
  27072. <instance-parameter name="plugin" transfer-ownership="none">
  27073. <doc xml:space="preserve">plugin to get the source of</doc>
  27074. <type name="Plugin" c:type="GstPlugin*"/>
  27075. </instance-parameter>
  27076. </parameters>
  27077. </method>
  27078. <method name="get_version" c:identifier="gst_plugin_get_version">
  27079. <doc xml:space="preserve">get the version of the plugin</doc>
  27080. <return-value transfer-ownership="none">
  27081. <doc xml:space="preserve">the version of the plugin</doc>
  27082. <type name="utf8" c:type="const gchar*"/>
  27083. </return-value>
  27084. <parameters>
  27085. <instance-parameter name="plugin" transfer-ownership="none">
  27086. <doc xml:space="preserve">plugin to get the version of</doc>
  27087. <type name="Plugin" c:type="GstPlugin*"/>
  27088. </instance-parameter>
  27089. </parameters>
  27090. </method>
  27091. <method name="is_loaded" c:identifier="gst_plugin_is_loaded">
  27092. <doc xml:space="preserve">queries if the plugin is loaded into memory</doc>
  27093. <return-value transfer-ownership="none">
  27094. <doc xml:space="preserve">%TRUE is loaded, %FALSE otherwise</doc>
  27095. <type name="gboolean" c:type="gboolean"/>
  27096. </return-value>
  27097. <parameters>
  27098. <instance-parameter name="plugin" transfer-ownership="none">
  27099. <doc xml:space="preserve">plugin to query</doc>
  27100. <type name="Plugin" c:type="GstPlugin*"/>
  27101. </instance-parameter>
  27102. </parameters>
  27103. </method>
  27104. <method name="load" c:identifier="gst_plugin_load">
  27105. <doc xml:space="preserve">Loads @plugin. Note that the *return value* is the loaded plugin; @plugin is
  27106. untouched. The normal use pattern of this function goes like this:
  27107. &lt;programlisting&gt;
  27108. GstPlugin *loaded_plugin;
  27109. loaded_plugin = gst_plugin_load (plugin);
  27110. // presumably, we're no longer interested in the potentially-unloaded plugin
  27111. gst_object_unref (plugin);
  27112. plugin = loaded_plugin;
  27113. &lt;/programlisting&gt;</doc>
  27114. <return-value transfer-ownership="full">
  27115. <doc xml:space="preserve">a reference to a loaded plugin, or %NULL on error.</doc>
  27116. <type name="Plugin" c:type="GstPlugin*"/>
  27117. </return-value>
  27118. <parameters>
  27119. <instance-parameter name="plugin" transfer-ownership="none">
  27120. <doc xml:space="preserve">plugin to load</doc>
  27121. <type name="Plugin" c:type="GstPlugin*"/>
  27122. </instance-parameter>
  27123. </parameters>
  27124. </method>
  27125. <method name="set_cache_data" c:identifier="gst_plugin_set_cache_data">
  27126. <doc xml:space="preserve">Adds plugin specific data to cache. Passes the ownership of the structure to
  27127. the @plugin.
  27128. The cache is flushed every time the registry is rebuilt.</doc>
  27129. <return-value transfer-ownership="none">
  27130. <type name="none" c:type="void"/>
  27131. </return-value>
  27132. <parameters>
  27133. <instance-parameter name="plugin" transfer-ownership="none">
  27134. <doc xml:space="preserve">a plugin</doc>
  27135. <type name="Plugin" c:type="GstPlugin*"/>
  27136. </instance-parameter>
  27137. <parameter name="cache_data" transfer-ownership="full">
  27138. <doc xml:space="preserve">a structure containing the data to cache</doc>
  27139. <type name="Structure" c:type="GstStructure*"/>
  27140. </parameter>
  27141. </parameters>
  27142. </method>
  27143. </class>
  27144. <record name="PluginClass"
  27145. c:type="GstPluginClass"
  27146. disguised="1"
  27147. glib:is-gtype-struct-for="Plugin">
  27148. </record>
  27149. <bitfield name="PluginDependencyFlags"
  27150. glib:type-name="GstPluginDependencyFlags"
  27151. glib:get-type="gst_plugin_dependency_flags_get_type"
  27152. c:type="GstPluginDependencyFlags">
  27153. <doc xml:space="preserve">Flags used in connection with gst_plugin_add_dependency().</doc>
  27154. <member name="none"
  27155. value="0"
  27156. c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_NONE"
  27157. glib:nick="none">
  27158. <doc xml:space="preserve">no special flags</doc>
  27159. </member>
  27160. <member name="recurse"
  27161. value="1"
  27162. c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_RECURSE"
  27163. glib:nick="recurse">
  27164. <doc xml:space="preserve">recurse into subdirectories</doc>
  27165. </member>
  27166. <member name="paths_are_default_only"
  27167. value="2"
  27168. c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_PATHS_ARE_DEFAULT_ONLY"
  27169. glib:nick="paths-are-default-only">
  27170. <doc xml:space="preserve">use paths
  27171. argument only if none of the environment variables is set</doc>
  27172. </member>
  27173. <member name="file_name_is_suffix"
  27174. value="4"
  27175. c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_SUFFIX"
  27176. glib:nick="file-name-is-suffix">
  27177. <doc xml:space="preserve">interpret
  27178. filename argument as filter suffix and check all matching files in
  27179. the directory</doc>
  27180. </member>
  27181. <member name="file_name_is_prefix"
  27182. value="8"
  27183. c:identifier="GST_PLUGIN_DEPENDENCY_FLAG_FILE_NAME_IS_PREFIX"
  27184. glib:nick="file-name-is-prefix">
  27185. <doc xml:space="preserve">interpret
  27186. filename argument as filter prefix and check all matching files in
  27187. the directory. Since 1.8.</doc>
  27188. </member>
  27189. </bitfield>
  27190. <record name="PluginDesc" c:type="GstPluginDesc">
  27191. <doc xml:space="preserve">A plugin should export a variable of this type called plugin_desc. The plugin
  27192. loader will use the data provided there to initialize the plugin.
  27193. The @licence parameter must be one of: LGPL, GPL, QPL, GPL/QPL, MPL,
  27194. BSD, MIT/X11, Proprietary, unknown.</doc>
  27195. <field name="major_version" writable="1">
  27196. <doc xml:space="preserve">the major version number of core that plugin was compiled for</doc>
  27197. <type name="gint" c:type="gint"/>
  27198. </field>
  27199. <field name="minor_version" writable="1">
  27200. <doc xml:space="preserve">the minor version number of core that plugin was compiled for</doc>
  27201. <type name="gint" c:type="gint"/>
  27202. </field>
  27203. <field name="name" writable="1">
  27204. <doc xml:space="preserve">a unique name of the plugin</doc>
  27205. <type name="utf8" c:type="const gchar*"/>
  27206. </field>
  27207. <field name="description" writable="1">
  27208. <doc xml:space="preserve">description of plugin</doc>
  27209. <type name="utf8" c:type="const gchar*"/>
  27210. </field>
  27211. <field name="plugin_init" writable="1">
  27212. <doc xml:space="preserve">pointer to the init function of this plugin.</doc>
  27213. <type name="PluginInitFunc" c:type="GstPluginInitFunc"/>
  27214. </field>
  27215. <field name="version" writable="1">
  27216. <doc xml:space="preserve">version of the plugin</doc>
  27217. <type name="utf8" c:type="const gchar*"/>
  27218. </field>
  27219. <field name="license" writable="1">
  27220. <doc xml:space="preserve">effective license of plugin</doc>
  27221. <type name="utf8" c:type="const gchar*"/>
  27222. </field>
  27223. <field name="source" writable="1">
  27224. <doc xml:space="preserve">source module plugin belongs to</doc>
  27225. <type name="utf8" c:type="const gchar*"/>
  27226. </field>
  27227. <field name="package" writable="1">
  27228. <doc xml:space="preserve">shipped package plugin belongs to</doc>
  27229. <type name="utf8" c:type="const gchar*"/>
  27230. </field>
  27231. <field name="origin" writable="1">
  27232. <doc xml:space="preserve">URL to provider of plugin</doc>
  27233. <type name="utf8" c:type="const gchar*"/>
  27234. </field>
  27235. <field name="release_datetime" writable="1">
  27236. <doc xml:space="preserve">date time string in ISO 8601
  27237. format (or rather, a subset thereof), or %NULL. Allowed are the
  27238. following formats: "YYYY-MM-DD" and "YYY-MM-DDTHH:MMZ" (with
  27239. 'T' a separator and 'Z' indicating UTC/Zulu time). This field
  27240. should be set via the GST_PACKAGE_RELEASE_DATETIME
  27241. preprocessor macro.</doc>
  27242. <type name="utf8" c:type="const gchar*"/>
  27243. </field>
  27244. <field name="_gst_reserved" readable="0" private="1">
  27245. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  27246. <type name="gpointer" c:type="gpointer"/>
  27247. </array>
  27248. </field>
  27249. </record>
  27250. <enumeration name="PluginError"
  27251. glib:type-name="GstPluginError"
  27252. glib:get-type="gst_plugin_error_get_type"
  27253. c:type="GstPluginError"
  27254. glib:error-domain="gst_plugin_error">
  27255. <doc xml:space="preserve">The plugin loading errors</doc>
  27256. <member name="module"
  27257. value="0"
  27258. c:identifier="GST_PLUGIN_ERROR_MODULE"
  27259. glib:nick="module">
  27260. <doc xml:space="preserve">The plugin could not be loaded</doc>
  27261. </member>
  27262. <member name="dependencies"
  27263. value="1"
  27264. c:identifier="GST_PLUGIN_ERROR_DEPENDENCIES"
  27265. glib:nick="dependencies">
  27266. <doc xml:space="preserve">The plugin has unresolved dependencies</doc>
  27267. </member>
  27268. <member name="name_mismatch"
  27269. value="2"
  27270. c:identifier="GST_PLUGIN_ERROR_NAME_MISMATCH"
  27271. glib:nick="name-mismatch">
  27272. <doc xml:space="preserve">The plugin has already be loaded from a different file</doc>
  27273. </member>
  27274. <function name="quark" c:identifier="gst_plugin_error_quark">
  27275. <doc xml:space="preserve">Get the error quark.</doc>
  27276. <return-value transfer-ownership="none">
  27277. <doc xml:space="preserve">The error quark used in GError messages</doc>
  27278. <type name="GLib.Quark" c:type="GQuark"/>
  27279. </return-value>
  27280. </function>
  27281. </enumeration>
  27282. <class name="PluginFeature"
  27283. c:symbol-prefix="plugin_feature"
  27284. c:type="GstPluginFeature"
  27285. parent="Object"
  27286. abstract="1"
  27287. glib:type-name="GstPluginFeature"
  27288. glib:get-type="gst_plugin_feature_get_type"
  27289. glib:type-struct="PluginFeatureClass">
  27290. <doc xml:space="preserve">This is a base class for anything that can be added to a #GstPlugin.</doc>
  27291. <function name="list_copy" c:identifier="gst_plugin_feature_list_copy">
  27292. <doc xml:space="preserve">Copies the list of features. Caller should call @gst_plugin_feature_list_free
  27293. when done with the list.</doc>
  27294. <return-value transfer-ownership="full">
  27295. <doc xml:space="preserve">a copy of @list,
  27296. with each feature's reference count incremented.</doc>
  27297. <type name="GLib.List" c:type="GList*">
  27298. <type name="PluginFeature"/>
  27299. </type>
  27300. </return-value>
  27301. <parameters>
  27302. <parameter name="list" transfer-ownership="none">
  27303. <doc xml:space="preserve">list
  27304. of #GstPluginFeature</doc>
  27305. <type name="GLib.List" c:type="GList*">
  27306. <type name="PluginFeature"/>
  27307. </type>
  27308. </parameter>
  27309. </parameters>
  27310. </function>
  27311. <function name="list_debug" c:identifier="gst_plugin_feature_list_debug">
  27312. <doc xml:space="preserve">Debug the plugin feature names in @list.</doc>
  27313. <return-value transfer-ownership="none">
  27314. <type name="none" c:type="void"/>
  27315. </return-value>
  27316. <parameters>
  27317. <parameter name="list" transfer-ownership="none">
  27318. <doc xml:space="preserve">a #GList of
  27319. plugin features</doc>
  27320. <type name="GLib.List" c:type="GList*">
  27321. <type name="PluginFeature"/>
  27322. </type>
  27323. </parameter>
  27324. </parameters>
  27325. </function>
  27326. <function name="list_free" c:identifier="gst_plugin_feature_list_free">
  27327. <doc xml:space="preserve">Unrefs each member of @list, then frees the list.</doc>
  27328. <return-value transfer-ownership="none">
  27329. <type name="none" c:type="void"/>
  27330. </return-value>
  27331. <parameters>
  27332. <parameter name="list" transfer-ownership="full">
  27333. <doc xml:space="preserve">list
  27334. of #GstPluginFeature</doc>
  27335. <type name="GLib.List" c:type="GList*">
  27336. <type name="PluginFeature"/>
  27337. </type>
  27338. </parameter>
  27339. </parameters>
  27340. </function>
  27341. <function name="rank_compare_func"
  27342. c:identifier="gst_plugin_feature_rank_compare_func">
  27343. <doc xml:space="preserve">Compares the two given #GstPluginFeature instances. This function can be
  27344. used as a #GCompareFunc when sorting by rank and then by name.</doc>
  27345. <return-value transfer-ownership="none">
  27346. <doc xml:space="preserve">negative value if the rank of p1 &gt; the rank of p2 or the ranks are
  27347. equal but the name of p1 comes before the name of p2; zero if the rank
  27348. and names are equal; positive value if the rank of p1 &lt; the rank of p2 or the
  27349. ranks are equal but the name of p2 comes before the name of p1</doc>
  27350. <type name="gint" c:type="gint"/>
  27351. </return-value>
  27352. <parameters>
  27353. <parameter name="p1"
  27354. transfer-ownership="none"
  27355. nullable="1"
  27356. allow-none="1">
  27357. <doc xml:space="preserve">a #GstPluginFeature</doc>
  27358. <type name="gpointer" c:type="gconstpointer"/>
  27359. </parameter>
  27360. <parameter name="p2"
  27361. transfer-ownership="none"
  27362. nullable="1"
  27363. allow-none="1">
  27364. <doc xml:space="preserve">a #GstPluginFeature</doc>
  27365. <type name="gpointer" c:type="gconstpointer"/>
  27366. </parameter>
  27367. </parameters>
  27368. </function>
  27369. <method name="check_version"
  27370. c:identifier="gst_plugin_feature_check_version">
  27371. <doc xml:space="preserve">Checks whether the given plugin feature is at least
  27372. the required version</doc>
  27373. <return-value transfer-ownership="none">
  27374. <doc xml:space="preserve">%TRUE if the plugin feature has at least
  27375. the required version, otherwise %FALSE.</doc>
  27376. <type name="gboolean" c:type="gboolean"/>
  27377. </return-value>
  27378. <parameters>
  27379. <instance-parameter name="feature" transfer-ownership="none">
  27380. <doc xml:space="preserve">a feature</doc>
  27381. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27382. </instance-parameter>
  27383. <parameter name="min_major" transfer-ownership="none">
  27384. <doc xml:space="preserve">minimum required major version</doc>
  27385. <type name="guint" c:type="guint"/>
  27386. </parameter>
  27387. <parameter name="min_minor" transfer-ownership="none">
  27388. <doc xml:space="preserve">minimum required minor version</doc>
  27389. <type name="guint" c:type="guint"/>
  27390. </parameter>
  27391. <parameter name="min_micro" transfer-ownership="none">
  27392. <doc xml:space="preserve">minimum required micro version</doc>
  27393. <type name="guint" c:type="guint"/>
  27394. </parameter>
  27395. </parameters>
  27396. </method>
  27397. <method name="get_plugin" c:identifier="gst_plugin_feature_get_plugin">
  27398. <doc xml:space="preserve">Get the plugin that provides this feature.</doc>
  27399. <return-value transfer-ownership="full" nullable="1">
  27400. <doc xml:space="preserve">the plugin that provides this
  27401. feature, or %NULL. Unref with gst_object_unref() when no
  27402. longer needed.</doc>
  27403. <type name="Plugin" c:type="GstPlugin*"/>
  27404. </return-value>
  27405. <parameters>
  27406. <instance-parameter name="feature" transfer-ownership="none">
  27407. <doc xml:space="preserve">a feature</doc>
  27408. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27409. </instance-parameter>
  27410. </parameters>
  27411. </method>
  27412. <method name="get_plugin_name"
  27413. c:identifier="gst_plugin_feature_get_plugin_name"
  27414. version="1.2">
  27415. <doc xml:space="preserve">Get the name of the plugin that provides this feature.</doc>
  27416. <return-value transfer-ownership="none" nullable="1">
  27417. <doc xml:space="preserve">the name of the plugin that provides this
  27418. feature, or %NULL if the feature is not associated with a
  27419. plugin.</doc>
  27420. <type name="utf8" c:type="const gchar*"/>
  27421. </return-value>
  27422. <parameters>
  27423. <instance-parameter name="feature" transfer-ownership="none">
  27424. <doc xml:space="preserve">a feature</doc>
  27425. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27426. </instance-parameter>
  27427. </parameters>
  27428. </method>
  27429. <method name="get_rank" c:identifier="gst_plugin_feature_get_rank">
  27430. <doc xml:space="preserve">Gets the rank of a plugin feature.</doc>
  27431. <return-value transfer-ownership="none">
  27432. <doc xml:space="preserve">The rank of the feature</doc>
  27433. <type name="guint" c:type="guint"/>
  27434. </return-value>
  27435. <parameters>
  27436. <instance-parameter name="feature" transfer-ownership="none">
  27437. <doc xml:space="preserve">a feature</doc>
  27438. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27439. </instance-parameter>
  27440. </parameters>
  27441. </method>
  27442. <method name="load" c:identifier="gst_plugin_feature_load">
  27443. <doc xml:space="preserve">Loads the plugin containing @feature if it's not already loaded. @feature is
  27444. unaffected; use the return value instead.
  27445. Normally this function is used like this:
  27446. |[&lt;!-- language="C" --&gt;
  27447. GstPluginFeature *loaded_feature;
  27448. loaded_feature = gst_plugin_feature_load (feature);
  27449. // presumably, we're no longer interested in the potentially-unloaded feature
  27450. gst_object_unref (feature);
  27451. feature = loaded_feature;
  27452. ]|</doc>
  27453. <return-value transfer-ownership="full" nullable="1">
  27454. <doc xml:space="preserve">a reference to the loaded
  27455. feature, or %NULL on error</doc>
  27456. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27457. </return-value>
  27458. <parameters>
  27459. <instance-parameter name="feature" transfer-ownership="none">
  27460. <doc xml:space="preserve">the plugin feature to check</doc>
  27461. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27462. </instance-parameter>
  27463. </parameters>
  27464. </method>
  27465. <method name="set_rank" c:identifier="gst_plugin_feature_set_rank">
  27466. <doc xml:space="preserve">Specifies a rank for a plugin feature, so that autoplugging uses
  27467. the most appropriate feature.</doc>
  27468. <return-value transfer-ownership="none">
  27469. <type name="none" c:type="void"/>
  27470. </return-value>
  27471. <parameters>
  27472. <instance-parameter name="feature" transfer-ownership="none">
  27473. <doc xml:space="preserve">feature to rank</doc>
  27474. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27475. </instance-parameter>
  27476. <parameter name="rank" transfer-ownership="none">
  27477. <doc xml:space="preserve">rank value - higher number means more priority rank</doc>
  27478. <type name="guint" c:type="guint"/>
  27479. </parameter>
  27480. </parameters>
  27481. </method>
  27482. </class>
  27483. <record name="PluginFeatureClass"
  27484. c:type="GstPluginFeatureClass"
  27485. disguised="1"
  27486. glib:is-gtype-struct-for="PluginFeature">
  27487. </record>
  27488. <callback name="PluginFeatureFilter" c:type="GstPluginFeatureFilter">
  27489. <doc xml:space="preserve">A function that can be used with e.g. gst_registry_feature_filter()
  27490. to get a list of pluginfeature that match certain criteria.</doc>
  27491. <return-value transfer-ownership="none">
  27492. <doc xml:space="preserve">%TRUE for a positive match, %FALSE otherwise</doc>
  27493. <type name="gboolean" c:type="gboolean"/>
  27494. </return-value>
  27495. <parameters>
  27496. <parameter name="feature" transfer-ownership="none">
  27497. <doc xml:space="preserve">the pluginfeature to check</doc>
  27498. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  27499. </parameter>
  27500. <parameter name="user_data"
  27501. transfer-ownership="none"
  27502. nullable="1"
  27503. allow-none="1"
  27504. closure="1">
  27505. <doc xml:space="preserve">the user_data that has been passed on e.g.
  27506. gst_registry_feature_filter()</doc>
  27507. <type name="gpointer" c:type="gpointer"/>
  27508. </parameter>
  27509. </parameters>
  27510. </callback>
  27511. <callback name="PluginFilter" c:type="GstPluginFilter">
  27512. <doc xml:space="preserve">A function that can be used with e.g. gst_registry_plugin_filter()
  27513. to get a list of plugins that match certain criteria.</doc>
  27514. <return-value transfer-ownership="none">
  27515. <doc xml:space="preserve">%TRUE for a positive match, %FALSE otherwise</doc>
  27516. <type name="gboolean" c:type="gboolean"/>
  27517. </return-value>
  27518. <parameters>
  27519. <parameter name="plugin" transfer-ownership="none">
  27520. <doc xml:space="preserve">the plugin to check</doc>
  27521. <type name="Plugin" c:type="GstPlugin*"/>
  27522. </parameter>
  27523. <parameter name="user_data"
  27524. transfer-ownership="none"
  27525. nullable="1"
  27526. allow-none="1"
  27527. closure="1">
  27528. <doc xml:space="preserve">the user_data that has been passed on e.g. gst_registry_plugin_filter()</doc>
  27529. <type name="gpointer" c:type="gpointer"/>
  27530. </parameter>
  27531. </parameters>
  27532. </callback>
  27533. <bitfield name="PluginFlags"
  27534. glib:type-name="GstPluginFlags"
  27535. glib:get-type="gst_plugin_flags_get_type"
  27536. c:type="GstPluginFlags">
  27537. <doc xml:space="preserve">The plugin loading state</doc>
  27538. <member name="cached"
  27539. value="16"
  27540. c:identifier="GST_PLUGIN_FLAG_CACHED"
  27541. glib:nick="cached">
  27542. <doc xml:space="preserve">Temporarily loaded plugins</doc>
  27543. </member>
  27544. <member name="blacklisted"
  27545. value="32"
  27546. c:identifier="GST_PLUGIN_FLAG_BLACKLISTED"
  27547. glib:nick="blacklisted">
  27548. <doc xml:space="preserve">The plugin won't be scanned (again)</doc>
  27549. </member>
  27550. </bitfield>
  27551. <callback name="PluginInitFullFunc" c:type="GstPluginInitFullFunc">
  27552. <doc xml:space="preserve">A plugin should provide a pointer to a function of either #GstPluginInitFunc
  27553. or this type in the plugin_desc struct.
  27554. The function will be called by the loader at startup. One would then
  27555. register each #GstPluginFeature. This version allows
  27556. user data to be passed to init function (useful for bindings).</doc>
  27557. <return-value transfer-ownership="none">
  27558. <doc xml:space="preserve">%TRUE if plugin initialised successfully</doc>
  27559. <type name="gboolean" c:type="gboolean"/>
  27560. </return-value>
  27561. <parameters>
  27562. <parameter name="plugin" transfer-ownership="none">
  27563. <doc xml:space="preserve">The plugin object</doc>
  27564. <type name="Plugin" c:type="GstPlugin*"/>
  27565. </parameter>
  27566. <parameter name="user_data"
  27567. transfer-ownership="none"
  27568. nullable="1"
  27569. allow-none="1"
  27570. closure="1">
  27571. <doc xml:space="preserve">extra data</doc>
  27572. <type name="gpointer" c:type="gpointer"/>
  27573. </parameter>
  27574. </parameters>
  27575. </callback>
  27576. <callback name="PluginInitFunc" c:type="GstPluginInitFunc">
  27577. <doc xml:space="preserve">A plugin should provide a pointer to a function of this type in the
  27578. plugin_desc struct.
  27579. This function will be called by the loader at startup. One would then
  27580. register each #GstPluginFeature.</doc>
  27581. <return-value transfer-ownership="none">
  27582. <doc xml:space="preserve">%TRUE if plugin initialised successfully</doc>
  27583. <type name="gboolean" c:type="gboolean"/>
  27584. </return-value>
  27585. <parameters>
  27586. <parameter name="plugin" transfer-ownership="none">
  27587. <doc xml:space="preserve">The plugin object</doc>
  27588. <type name="Plugin" c:type="GstPlugin*"/>
  27589. </parameter>
  27590. </parameters>
  27591. </callback>
  27592. <record name="Poll" c:type="GstPoll" disguised="1">
  27593. <doc xml:space="preserve">A #GstPoll keeps track of file descriptors much like fd_set (used with
  27594. select()) or a struct pollfd array (used with poll()). Once created with
  27595. gst_poll_new(), the set can be used to wait for file descriptors to be
  27596. readable and/or writable. It is possible to make this wait be controlled
  27597. by specifying %TRUE for the @controllable flag when creating the set (or
  27598. later calling gst_poll_set_controllable()).
  27599. New file descriptors are added to the set using gst_poll_add_fd(), and
  27600. removed using gst_poll_remove_fd(). Controlling which file descriptors
  27601. should be waited for to become readable and/or writable are done using
  27602. gst_poll_fd_ctl_read() and gst_poll_fd_ctl_write().
  27603. Use gst_poll_wait() to wait for the file descriptors to actually become
  27604. readable and/or writable, or to timeout if no file descriptor is available
  27605. in time. The wait can be controlled by calling gst_poll_restart() and
  27606. gst_poll_set_flushing().
  27607. Once the file descriptor set has been waited for, one can use
  27608. gst_poll_fd_has_closed() to see if the file descriptor has been closed,
  27609. gst_poll_fd_has_error() to see if it has generated an error,
  27610. gst_poll_fd_can_read() to see if it is possible to read from the file
  27611. descriptor, and gst_poll_fd_can_write() to see if it is possible to
  27612. write to it.</doc>
  27613. <method name="add_fd" c:identifier="gst_poll_add_fd">
  27614. <doc xml:space="preserve">Add a file descriptor to the file descriptor set.</doc>
  27615. <return-value transfer-ownership="none">
  27616. <doc xml:space="preserve">%TRUE if the file descriptor was successfully added to the set.</doc>
  27617. <type name="gboolean" c:type="gboolean"/>
  27618. </return-value>
  27619. <parameters>
  27620. <instance-parameter name="set" transfer-ownership="none">
  27621. <doc xml:space="preserve">a file descriptor set.</doc>
  27622. <type name="Poll" c:type="GstPoll*"/>
  27623. </instance-parameter>
  27624. <parameter name="fd" transfer-ownership="none">
  27625. <doc xml:space="preserve">a file descriptor.</doc>
  27626. <type name="PollFD" c:type="GstPollFD*"/>
  27627. </parameter>
  27628. </parameters>
  27629. </method>
  27630. <method name="fd_can_read" c:identifier="gst_poll_fd_can_read">
  27631. <doc xml:space="preserve">Check if @fd in @set has data to be read.</doc>
  27632. <return-value transfer-ownership="none">
  27633. <doc xml:space="preserve">%TRUE if the descriptor has data to be read.</doc>
  27634. <type name="gboolean" c:type="gboolean"/>
  27635. </return-value>
  27636. <parameters>
  27637. <instance-parameter name="set" transfer-ownership="none">
  27638. <doc xml:space="preserve">a file descriptor set.</doc>
  27639. <type name="Poll" c:type="const GstPoll*"/>
  27640. </instance-parameter>
  27641. <parameter name="fd" transfer-ownership="none">
  27642. <doc xml:space="preserve">a file descriptor.</doc>
  27643. <type name="PollFD" c:type="GstPollFD*"/>
  27644. </parameter>
  27645. </parameters>
  27646. </method>
  27647. <method name="fd_can_write" c:identifier="gst_poll_fd_can_write">
  27648. <doc xml:space="preserve">Check if @fd in @set can be used for writing.</doc>
  27649. <return-value transfer-ownership="none">
  27650. <doc xml:space="preserve">%TRUE if the descriptor can be used for writing.</doc>
  27651. <type name="gboolean" c:type="gboolean"/>
  27652. </return-value>
  27653. <parameters>
  27654. <instance-parameter name="set" transfer-ownership="none">
  27655. <doc xml:space="preserve">a file descriptor set.</doc>
  27656. <type name="Poll" c:type="const GstPoll*"/>
  27657. </instance-parameter>
  27658. <parameter name="fd" transfer-ownership="none">
  27659. <doc xml:space="preserve">a file descriptor.</doc>
  27660. <type name="PollFD" c:type="GstPollFD*"/>
  27661. </parameter>
  27662. </parameters>
  27663. </method>
  27664. <method name="fd_ctl_read" c:identifier="gst_poll_fd_ctl_read">
  27665. <doc xml:space="preserve">Control whether the descriptor @fd in @set will be monitored for
  27666. readability.</doc>
  27667. <return-value transfer-ownership="none">
  27668. <doc xml:space="preserve">%TRUE if the descriptor was successfully updated.</doc>
  27669. <type name="gboolean" c:type="gboolean"/>
  27670. </return-value>
  27671. <parameters>
  27672. <instance-parameter name="set" transfer-ownership="none">
  27673. <doc xml:space="preserve">a file descriptor set.</doc>
  27674. <type name="Poll" c:type="GstPoll*"/>
  27675. </instance-parameter>
  27676. <parameter name="fd" transfer-ownership="none">
  27677. <doc xml:space="preserve">a file descriptor.</doc>
  27678. <type name="PollFD" c:type="GstPollFD*"/>
  27679. </parameter>
  27680. <parameter name="active" transfer-ownership="none">
  27681. <doc xml:space="preserve">a new status.</doc>
  27682. <type name="gboolean" c:type="gboolean"/>
  27683. </parameter>
  27684. </parameters>
  27685. </method>
  27686. <method name="fd_ctl_write" c:identifier="gst_poll_fd_ctl_write">
  27687. <doc xml:space="preserve">Control whether the descriptor @fd in @set will be monitored for
  27688. writability.</doc>
  27689. <return-value transfer-ownership="none">
  27690. <doc xml:space="preserve">%TRUE if the descriptor was successfully updated.</doc>
  27691. <type name="gboolean" c:type="gboolean"/>
  27692. </return-value>
  27693. <parameters>
  27694. <instance-parameter name="set" transfer-ownership="none">
  27695. <doc xml:space="preserve">a file descriptor set.</doc>
  27696. <type name="Poll" c:type="GstPoll*"/>
  27697. </instance-parameter>
  27698. <parameter name="fd" transfer-ownership="none">
  27699. <doc xml:space="preserve">a file descriptor.</doc>
  27700. <type name="PollFD" c:type="GstPollFD*"/>
  27701. </parameter>
  27702. <parameter name="active" transfer-ownership="none">
  27703. <doc xml:space="preserve">a new status.</doc>
  27704. <type name="gboolean" c:type="gboolean"/>
  27705. </parameter>
  27706. </parameters>
  27707. </method>
  27708. <method name="fd_has_closed" c:identifier="gst_poll_fd_has_closed">
  27709. <doc xml:space="preserve">Check if @fd in @set has closed the connection.</doc>
  27710. <return-value transfer-ownership="none">
  27711. <doc xml:space="preserve">%TRUE if the connection was closed.</doc>
  27712. <type name="gboolean" c:type="gboolean"/>
  27713. </return-value>
  27714. <parameters>
  27715. <instance-parameter name="set" transfer-ownership="none">
  27716. <doc xml:space="preserve">a file descriptor set.</doc>
  27717. <type name="Poll" c:type="const GstPoll*"/>
  27718. </instance-parameter>
  27719. <parameter name="fd" transfer-ownership="none">
  27720. <doc xml:space="preserve">a file descriptor.</doc>
  27721. <type name="PollFD" c:type="GstPollFD*"/>
  27722. </parameter>
  27723. </parameters>
  27724. </method>
  27725. <method name="fd_has_error" c:identifier="gst_poll_fd_has_error">
  27726. <doc xml:space="preserve">Check if @fd in @set has an error.</doc>
  27727. <return-value transfer-ownership="none">
  27728. <doc xml:space="preserve">%TRUE if the descriptor has an error.</doc>
  27729. <type name="gboolean" c:type="gboolean"/>
  27730. </return-value>
  27731. <parameters>
  27732. <instance-parameter name="set" transfer-ownership="none">
  27733. <doc xml:space="preserve">a file descriptor set.</doc>
  27734. <type name="Poll" c:type="const GstPoll*"/>
  27735. </instance-parameter>
  27736. <parameter name="fd" transfer-ownership="none">
  27737. <doc xml:space="preserve">a file descriptor.</doc>
  27738. <type name="PollFD" c:type="GstPollFD*"/>
  27739. </parameter>
  27740. </parameters>
  27741. </method>
  27742. <method name="fd_ignored" c:identifier="gst_poll_fd_ignored">
  27743. <doc xml:space="preserve">Mark @fd as ignored so that the next call to gst_poll_wait() will yield
  27744. the same result for @fd as last time. This function must be called if no
  27745. operation (read/write/recv/send/etc.) will be performed on @fd before
  27746. the next call to gst_poll_wait().
  27747. The reason why this is needed is because the underlying implementation
  27748. might not allow querying the fd more than once between calls to one of
  27749. the re-enabling operations.</doc>
  27750. <return-value transfer-ownership="none">
  27751. <type name="none" c:type="void"/>
  27752. </return-value>
  27753. <parameters>
  27754. <instance-parameter name="set" transfer-ownership="none">
  27755. <doc xml:space="preserve">a file descriptor set.</doc>
  27756. <type name="Poll" c:type="GstPoll*"/>
  27757. </instance-parameter>
  27758. <parameter name="fd" transfer-ownership="none">
  27759. <doc xml:space="preserve">a file descriptor.</doc>
  27760. <type name="PollFD" c:type="GstPollFD*"/>
  27761. </parameter>
  27762. </parameters>
  27763. </method>
  27764. <method name="free" c:identifier="gst_poll_free">
  27765. <doc xml:space="preserve">Free a file descriptor set.</doc>
  27766. <return-value transfer-ownership="none">
  27767. <type name="none" c:type="void"/>
  27768. </return-value>
  27769. <parameters>
  27770. <instance-parameter name="set" transfer-ownership="full">
  27771. <doc xml:space="preserve">a file descriptor set.</doc>
  27772. <type name="Poll" c:type="GstPoll*"/>
  27773. </instance-parameter>
  27774. </parameters>
  27775. </method>
  27776. <method name="get_read_gpollfd" c:identifier="gst_poll_get_read_gpollfd">
  27777. <doc xml:space="preserve">Get a GPollFD for the reading part of the control socket. This is useful when
  27778. integrating with a GSource and GMainLoop.</doc>
  27779. <return-value transfer-ownership="none">
  27780. <type name="none" c:type="void"/>
  27781. </return-value>
  27782. <parameters>
  27783. <instance-parameter name="set" transfer-ownership="none">
  27784. <doc xml:space="preserve">a #GstPoll</doc>
  27785. <type name="Poll" c:type="GstPoll*"/>
  27786. </instance-parameter>
  27787. <parameter name="fd" transfer-ownership="none">
  27788. <doc xml:space="preserve">a #GPollFD</doc>
  27789. <type name="GLib.PollFD" c:type="GPollFD*"/>
  27790. </parameter>
  27791. </parameters>
  27792. </method>
  27793. <method name="read_control" c:identifier="gst_poll_read_control">
  27794. <doc xml:space="preserve">Read a byte from the control socket of the controllable @set.
  27795. This function is mostly useful for timer #GstPoll objects created with
  27796. gst_poll_new_timer().</doc>
  27797. <return-value transfer-ownership="none">
  27798. <doc xml:space="preserve">%TRUE on success. %FALSE when @set is not controllable or when there
  27799. was no byte to read.</doc>
  27800. <type name="gboolean" c:type="gboolean"/>
  27801. </return-value>
  27802. <parameters>
  27803. <instance-parameter name="set" transfer-ownership="none">
  27804. <doc xml:space="preserve">a #GstPoll.</doc>
  27805. <type name="Poll" c:type="GstPoll*"/>
  27806. </instance-parameter>
  27807. </parameters>
  27808. </method>
  27809. <method name="remove_fd" c:identifier="gst_poll_remove_fd">
  27810. <doc xml:space="preserve">Remove a file descriptor from the file descriptor set.</doc>
  27811. <return-value transfer-ownership="none">
  27812. <doc xml:space="preserve">%TRUE if the file descriptor was successfully removed from the set.</doc>
  27813. <type name="gboolean" c:type="gboolean"/>
  27814. </return-value>
  27815. <parameters>
  27816. <instance-parameter name="set" transfer-ownership="none">
  27817. <doc xml:space="preserve">a file descriptor set.</doc>
  27818. <type name="Poll" c:type="GstPoll*"/>
  27819. </instance-parameter>
  27820. <parameter name="fd" transfer-ownership="none">
  27821. <doc xml:space="preserve">a file descriptor.</doc>
  27822. <type name="PollFD" c:type="GstPollFD*"/>
  27823. </parameter>
  27824. </parameters>
  27825. </method>
  27826. <method name="restart" c:identifier="gst_poll_restart">
  27827. <doc xml:space="preserve">Restart any gst_poll_wait() that is in progress. This function is typically
  27828. used after adding or removing descriptors to @set.
  27829. If @set is not controllable, then this call will have no effect.</doc>
  27830. <return-value transfer-ownership="none">
  27831. <type name="none" c:type="void"/>
  27832. </return-value>
  27833. <parameters>
  27834. <instance-parameter name="set" transfer-ownership="none">
  27835. <doc xml:space="preserve">a #GstPoll.</doc>
  27836. <type name="Poll" c:type="GstPoll*"/>
  27837. </instance-parameter>
  27838. </parameters>
  27839. </method>
  27840. <method name="set_controllable" c:identifier="gst_poll_set_controllable">
  27841. <doc xml:space="preserve">When @controllable is %TRUE, this function ensures that future calls to
  27842. gst_poll_wait() will be affected by gst_poll_restart() and
  27843. gst_poll_set_flushing().</doc>
  27844. <return-value transfer-ownership="none">
  27845. <doc xml:space="preserve">%TRUE if the controllability of @set could be updated.</doc>
  27846. <type name="gboolean" c:type="gboolean"/>
  27847. </return-value>
  27848. <parameters>
  27849. <instance-parameter name="set" transfer-ownership="none">
  27850. <doc xml:space="preserve">a #GstPoll.</doc>
  27851. <type name="Poll" c:type="GstPoll*"/>
  27852. </instance-parameter>
  27853. <parameter name="controllable" transfer-ownership="none">
  27854. <doc xml:space="preserve">new controllable state.</doc>
  27855. <type name="gboolean" c:type="gboolean"/>
  27856. </parameter>
  27857. </parameters>
  27858. </method>
  27859. <method name="set_flushing" c:identifier="gst_poll_set_flushing">
  27860. <doc xml:space="preserve">When @flushing is %TRUE, this function ensures that current and future calls
  27861. to gst_poll_wait() will return -1, with errno set to EBUSY.
  27862. Unsetting the flushing state will restore normal operation of @set.</doc>
  27863. <return-value transfer-ownership="none">
  27864. <type name="none" c:type="void"/>
  27865. </return-value>
  27866. <parameters>
  27867. <instance-parameter name="set" transfer-ownership="none">
  27868. <doc xml:space="preserve">a #GstPoll.</doc>
  27869. <type name="Poll" c:type="GstPoll*"/>
  27870. </instance-parameter>
  27871. <parameter name="flushing" transfer-ownership="none">
  27872. <doc xml:space="preserve">new flushing state.</doc>
  27873. <type name="gboolean" c:type="gboolean"/>
  27874. </parameter>
  27875. </parameters>
  27876. </method>
  27877. <method name="wait" c:identifier="gst_poll_wait">
  27878. <doc xml:space="preserve">Wait for activity on the file descriptors in @set. This function waits up to
  27879. the specified @timeout. A timeout of #GST_CLOCK_TIME_NONE waits forever.
  27880. For #GstPoll objects created with gst_poll_new(), this function can only be
  27881. called from a single thread at a time. If called from multiple threads,
  27882. -1 will be returned with errno set to EPERM.
  27883. This is not true for timer #GstPoll objects created with
  27884. gst_poll_new_timer(), where it is allowed to have multiple threads waiting
  27885. simultaneously.</doc>
  27886. <return-value transfer-ownership="none">
  27887. <doc xml:space="preserve">The number of #GstPollFD in @set that have activity or 0 when no
  27888. activity was detected after @timeout. If an error occurs, -1 is returned
  27889. and errno is set.</doc>
  27890. <type name="gint" c:type="gint"/>
  27891. </return-value>
  27892. <parameters>
  27893. <instance-parameter name="set" transfer-ownership="none">
  27894. <doc xml:space="preserve">a #GstPoll.</doc>
  27895. <type name="Poll" c:type="GstPoll*"/>
  27896. </instance-parameter>
  27897. <parameter name="timeout" transfer-ownership="none">
  27898. <doc xml:space="preserve">a timeout in nanoseconds.</doc>
  27899. <type name="ClockTime" c:type="GstClockTime"/>
  27900. </parameter>
  27901. </parameters>
  27902. </method>
  27903. <method name="write_control" c:identifier="gst_poll_write_control">
  27904. <doc xml:space="preserve">Write a byte to the control socket of the controllable @set.
  27905. This function is mostly useful for timer #GstPoll objects created with
  27906. gst_poll_new_timer().
  27907. It will make any current and future gst_poll_wait() function return with
  27908. 1, meaning the control socket is set. After an equal amount of calls to
  27909. gst_poll_read_control() have been performed, calls to gst_poll_wait() will
  27910. block again until their timeout expired.</doc>
  27911. <return-value transfer-ownership="none">
  27912. <doc xml:space="preserve">%TRUE on success. %FALSE when @set is not controllable or when the
  27913. byte could not be written.</doc>
  27914. <type name="gboolean" c:type="gboolean"/>
  27915. </return-value>
  27916. <parameters>
  27917. <instance-parameter name="set" transfer-ownership="none">
  27918. <doc xml:space="preserve">a #GstPoll.</doc>
  27919. <type name="Poll" c:type="GstPoll*"/>
  27920. </instance-parameter>
  27921. </parameters>
  27922. </method>
  27923. <function name="new" c:identifier="gst_poll_new" introspectable="0">
  27924. <doc xml:space="preserve">Create a new file descriptor set. If @controllable, it
  27925. is possible to restart or flush a call to gst_poll_wait() with
  27926. gst_poll_restart() and gst_poll_set_flushing() respectively.
  27927. Free-function: gst_poll_free</doc>
  27928. <return-value transfer-ownership="full" nullable="1">
  27929. <doc xml:space="preserve">a new #GstPoll, or %NULL in
  27930. case of an error. Free with gst_poll_free().</doc>
  27931. <type name="Poll" c:type="GstPoll*"/>
  27932. </return-value>
  27933. <parameters>
  27934. <parameter name="controllable" transfer-ownership="none">
  27935. <doc xml:space="preserve">whether it should be possible to control a wait.</doc>
  27936. <type name="gboolean" c:type="gboolean"/>
  27937. </parameter>
  27938. </parameters>
  27939. </function>
  27940. <function name="new_timer"
  27941. c:identifier="gst_poll_new_timer"
  27942. introspectable="0">
  27943. <doc xml:space="preserve">Create a new poll object that can be used for scheduling cancellable
  27944. timeouts.
  27945. A timeout is performed with gst_poll_wait(). Multiple timeouts can be
  27946. performed from different threads.
  27947. Free-function: gst_poll_free</doc>
  27948. <return-value transfer-ownership="full" nullable="1">
  27949. <doc xml:space="preserve">a new #GstPoll, or %NULL in
  27950. case of an error. Free with gst_poll_free().</doc>
  27951. <type name="Poll" c:type="GstPoll*"/>
  27952. </return-value>
  27953. </function>
  27954. </record>
  27955. <record name="PollFD" c:type="GstPollFD">
  27956. <doc xml:space="preserve">A file descriptor object.</doc>
  27957. <field name="fd" writable="1">
  27958. <doc xml:space="preserve">a file descriptor</doc>
  27959. <type name="gint" c:type="int"/>
  27960. </field>
  27961. <field name="idx" readable="0" private="1">
  27962. <type name="gint" c:type="gint"/>
  27963. </field>
  27964. <method name="init" c:identifier="gst_poll_fd_init">
  27965. <doc xml:space="preserve">Initializes @fd. Alternatively you can initialize it with
  27966. #GST_POLL_FD_INIT.</doc>
  27967. <return-value transfer-ownership="none">
  27968. <type name="none" c:type="void"/>
  27969. </return-value>
  27970. <parameters>
  27971. <instance-parameter name="fd" transfer-ownership="none">
  27972. <doc xml:space="preserve">a #GstPollFD</doc>
  27973. <type name="PollFD" c:type="GstPollFD*"/>
  27974. </instance-parameter>
  27975. </parameters>
  27976. </method>
  27977. </record>
  27978. <interface name="Preset"
  27979. c:symbol-prefix="preset"
  27980. c:type="GstPreset"
  27981. glib:type-name="GstPreset"
  27982. glib:get-type="gst_preset_get_type"
  27983. glib:type-struct="PresetInterface">
  27984. <doc xml:space="preserve">This interface offers methods to query and manipulate parameter preset sets.
  27985. A preset is a bunch of property settings, together with meta data and a name.
  27986. The name of a preset serves as key for subsequent method calls to manipulate
  27987. single presets.
  27988. All instances of one type will share the list of presets. The list is created
  27989. on demand, if presets are not used, the list is not created.
  27990. The interface comes with a default implementation that serves most plugins.
  27991. Wrapper plugins will override most methods to implement support for the
  27992. native preset format of those wrapped plugins.
  27993. One method that is useful to be overridden is gst_preset_get_property_names().
  27994. With that one can control which properties are saved and in which order.
  27995. When implementing support for read-only presets, one should set the vmethods
  27996. for gst_preset_save_preset() and gst_preset_delete_preset() to %NULL.
  27997. Applications can use gst_preset_is_editable() to check for that.
  27998. The default implementation supports presets located in a system directory,
  27999. application specific directory and in the users home directory. When getting
  28000. a list of presets individual presets are read and overlaid in 1) system,
  28001. 2) application and 3) user order. Whenever an earlier entry is newer, the
  28002. later entries will be updated. Since 1.8 you can also provide extra paths
  28003. where to find presets through the GST_PRESET_PATH environment variable.
  28004. Presets found in those paths will be concidered as "app presets".</doc>
  28005. <function name="get_app_dir" c:identifier="gst_preset_get_app_dir">
  28006. <doc xml:space="preserve">Gets the directory for application specific presets if set by the
  28007. application.</doc>
  28008. <return-value transfer-ownership="none" nullable="1">
  28009. <doc xml:space="preserve">the directory or %NULL, don't free or modify
  28010. the string</doc>
  28011. <type name="utf8" c:type="const gchar*"/>
  28012. </return-value>
  28013. </function>
  28014. <function name="set_app_dir" c:identifier="gst_preset_set_app_dir">
  28015. <doc xml:space="preserve">Sets an extra directory as an absolute path that should be considered when
  28016. looking for presets. Any presets in the application dir will shadow the
  28017. system presets.</doc>
  28018. <return-value transfer-ownership="none">
  28019. <doc xml:space="preserve">%TRUE for success, %FALSE if the dir already has been set</doc>
  28020. <type name="gboolean" c:type="gboolean"/>
  28021. </return-value>
  28022. <parameters>
  28023. <parameter name="app_dir" transfer-ownership="none">
  28024. <doc xml:space="preserve">the application specific preset dir</doc>
  28025. <type name="utf8" c:type="const gchar*"/>
  28026. </parameter>
  28027. </parameters>
  28028. </function>
  28029. <virtual-method name="delete_preset" invoker="delete_preset">
  28030. <doc xml:space="preserve">Delete the given preset.</doc>
  28031. <return-value transfer-ownership="none">
  28032. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28033. <type name="gboolean" c:type="gboolean"/>
  28034. </return-value>
  28035. <parameters>
  28036. <instance-parameter name="preset" transfer-ownership="none">
  28037. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28038. <type name="Preset" c:type="GstPreset*"/>
  28039. </instance-parameter>
  28040. <parameter name="name" transfer-ownership="none">
  28041. <doc xml:space="preserve">preset name to remove</doc>
  28042. <type name="utf8" c:type="const gchar*"/>
  28043. </parameter>
  28044. </parameters>
  28045. </virtual-method>
  28046. <virtual-method name="get_meta" invoker="get_meta">
  28047. <doc xml:space="preserve">Gets the @value for an existing meta data @tag. Meta data @tag names can be
  28048. something like e.g. "comment". Returned values need to be released when done.</doc>
  28049. <return-value transfer-ownership="none">
  28050. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name
  28051. or no value for the given @tag</doc>
  28052. <type name="gboolean" c:type="gboolean"/>
  28053. </return-value>
  28054. <parameters>
  28055. <instance-parameter name="preset" transfer-ownership="none">
  28056. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28057. <type name="Preset" c:type="GstPreset*"/>
  28058. </instance-parameter>
  28059. <parameter name="name" transfer-ownership="none">
  28060. <doc xml:space="preserve">preset name</doc>
  28061. <type name="utf8" c:type="const gchar*"/>
  28062. </parameter>
  28063. <parameter name="tag" transfer-ownership="none">
  28064. <doc xml:space="preserve">meta data item name</doc>
  28065. <type name="utf8" c:type="const gchar*"/>
  28066. </parameter>
  28067. <parameter name="value"
  28068. direction="out"
  28069. caller-allocates="0"
  28070. transfer-ownership="full">
  28071. <doc xml:space="preserve">value</doc>
  28072. <type name="utf8" c:type="gchar**"/>
  28073. </parameter>
  28074. </parameters>
  28075. </virtual-method>
  28076. <virtual-method name="get_preset_names" invoker="get_preset_names">
  28077. <doc xml:space="preserve">Get a copy of preset names as a %NULL terminated string array.</doc>
  28078. <return-value transfer-ownership="full">
  28079. <doc xml:space="preserve">
  28080. list with names, use g_strfreev() after usage.</doc>
  28081. <array c:type="gchar**">
  28082. <type name="utf8"/>
  28083. </array>
  28084. </return-value>
  28085. <parameters>
  28086. <instance-parameter name="preset" transfer-ownership="none">
  28087. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28088. <type name="Preset" c:type="GstPreset*"/>
  28089. </instance-parameter>
  28090. </parameters>
  28091. </virtual-method>
  28092. <virtual-method name="get_property_names" invoker="get_property_names">
  28093. <doc xml:space="preserve">Get a the names of the GObject properties that can be used for presets.</doc>
  28094. <return-value transfer-ownership="full">
  28095. <doc xml:space="preserve">an
  28096. array of property names which should be freed with g_strfreev() after use.</doc>
  28097. <array c:type="gchar**">
  28098. <type name="utf8"/>
  28099. </array>
  28100. </return-value>
  28101. <parameters>
  28102. <instance-parameter name="preset" transfer-ownership="none">
  28103. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28104. <type name="Preset" c:type="GstPreset*"/>
  28105. </instance-parameter>
  28106. </parameters>
  28107. </virtual-method>
  28108. <virtual-method name="load_preset" invoker="load_preset">
  28109. <doc xml:space="preserve">Load the given preset.</doc>
  28110. <return-value transfer-ownership="none">
  28111. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28112. <type name="gboolean" c:type="gboolean"/>
  28113. </return-value>
  28114. <parameters>
  28115. <instance-parameter name="preset" transfer-ownership="none">
  28116. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28117. <type name="Preset" c:type="GstPreset*"/>
  28118. </instance-parameter>
  28119. <parameter name="name" transfer-ownership="none">
  28120. <doc xml:space="preserve">preset name to load</doc>
  28121. <type name="utf8" c:type="const gchar*"/>
  28122. </parameter>
  28123. </parameters>
  28124. </virtual-method>
  28125. <virtual-method name="rename_preset" invoker="rename_preset">
  28126. <doc xml:space="preserve">Renames a preset. If there is already a preset by the @new_name it will be
  28127. overwritten.</doc>
  28128. <return-value transfer-ownership="none">
  28129. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
  28130. <type name="gboolean" c:type="gboolean"/>
  28131. </return-value>
  28132. <parameters>
  28133. <instance-parameter name="preset" transfer-ownership="none">
  28134. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28135. <type name="Preset" c:type="GstPreset*"/>
  28136. </instance-parameter>
  28137. <parameter name="old_name" transfer-ownership="none">
  28138. <doc xml:space="preserve">current preset name</doc>
  28139. <type name="utf8" c:type="const gchar*"/>
  28140. </parameter>
  28141. <parameter name="new_name" transfer-ownership="none">
  28142. <doc xml:space="preserve">new preset name</doc>
  28143. <type name="utf8" c:type="const gchar*"/>
  28144. </parameter>
  28145. </parameters>
  28146. </virtual-method>
  28147. <virtual-method name="save_preset" invoker="save_preset">
  28148. <doc xml:space="preserve">Save the current object settings as a preset under the given name. If there
  28149. is already a preset by this @name it will be overwritten.</doc>
  28150. <return-value transfer-ownership="none">
  28151. <doc xml:space="preserve">%TRUE for success, %FALSE</doc>
  28152. <type name="gboolean" c:type="gboolean"/>
  28153. </return-value>
  28154. <parameters>
  28155. <instance-parameter name="preset" transfer-ownership="none">
  28156. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28157. <type name="Preset" c:type="GstPreset*"/>
  28158. </instance-parameter>
  28159. <parameter name="name" transfer-ownership="none">
  28160. <doc xml:space="preserve">preset name to save</doc>
  28161. <type name="utf8" c:type="const gchar*"/>
  28162. </parameter>
  28163. </parameters>
  28164. </virtual-method>
  28165. <virtual-method name="set_meta" invoker="set_meta">
  28166. <doc xml:space="preserve">Sets a new @value for an existing meta data item or adds a new item. Meta
  28167. data @tag names can be something like e.g. "comment". Supplying %NULL for the
  28168. @value will unset an existing value.</doc>
  28169. <return-value transfer-ownership="none">
  28170. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28171. <type name="gboolean" c:type="gboolean"/>
  28172. </return-value>
  28173. <parameters>
  28174. <instance-parameter name="preset" transfer-ownership="none">
  28175. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28176. <type name="Preset" c:type="GstPreset*"/>
  28177. </instance-parameter>
  28178. <parameter name="name" transfer-ownership="none">
  28179. <doc xml:space="preserve">preset name</doc>
  28180. <type name="utf8" c:type="const gchar*"/>
  28181. </parameter>
  28182. <parameter name="tag" transfer-ownership="none">
  28183. <doc xml:space="preserve">meta data item name</doc>
  28184. <type name="utf8" c:type="const gchar*"/>
  28185. </parameter>
  28186. <parameter name="value"
  28187. transfer-ownership="none"
  28188. nullable="1"
  28189. allow-none="1">
  28190. <doc xml:space="preserve">new value</doc>
  28191. <type name="utf8" c:type="const gchar*"/>
  28192. </parameter>
  28193. </parameters>
  28194. </virtual-method>
  28195. <method name="delete_preset" c:identifier="gst_preset_delete_preset">
  28196. <doc xml:space="preserve">Delete the given preset.</doc>
  28197. <return-value transfer-ownership="none">
  28198. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28199. <type name="gboolean" c:type="gboolean"/>
  28200. </return-value>
  28201. <parameters>
  28202. <instance-parameter name="preset" transfer-ownership="none">
  28203. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28204. <type name="Preset" c:type="GstPreset*"/>
  28205. </instance-parameter>
  28206. <parameter name="name" transfer-ownership="none">
  28207. <doc xml:space="preserve">preset name to remove</doc>
  28208. <type name="utf8" c:type="const gchar*"/>
  28209. </parameter>
  28210. </parameters>
  28211. </method>
  28212. <method name="get_meta" c:identifier="gst_preset_get_meta">
  28213. <doc xml:space="preserve">Gets the @value for an existing meta data @tag. Meta data @tag names can be
  28214. something like e.g. "comment". Returned values need to be released when done.</doc>
  28215. <return-value transfer-ownership="none">
  28216. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name
  28217. or no value for the given @tag</doc>
  28218. <type name="gboolean" c:type="gboolean"/>
  28219. </return-value>
  28220. <parameters>
  28221. <instance-parameter name="preset" transfer-ownership="none">
  28222. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28223. <type name="Preset" c:type="GstPreset*"/>
  28224. </instance-parameter>
  28225. <parameter name="name" transfer-ownership="none">
  28226. <doc xml:space="preserve">preset name</doc>
  28227. <type name="utf8" c:type="const gchar*"/>
  28228. </parameter>
  28229. <parameter name="tag" transfer-ownership="none">
  28230. <doc xml:space="preserve">meta data item name</doc>
  28231. <type name="utf8" c:type="const gchar*"/>
  28232. </parameter>
  28233. <parameter name="value"
  28234. direction="out"
  28235. caller-allocates="0"
  28236. transfer-ownership="full">
  28237. <doc xml:space="preserve">value</doc>
  28238. <type name="utf8" c:type="gchar**"/>
  28239. </parameter>
  28240. </parameters>
  28241. </method>
  28242. <method name="get_preset_names"
  28243. c:identifier="gst_preset_get_preset_names">
  28244. <doc xml:space="preserve">Get a copy of preset names as a %NULL terminated string array.</doc>
  28245. <return-value transfer-ownership="full">
  28246. <doc xml:space="preserve">
  28247. list with names, use g_strfreev() after usage.</doc>
  28248. <array c:type="gchar**">
  28249. <type name="utf8"/>
  28250. </array>
  28251. </return-value>
  28252. <parameters>
  28253. <instance-parameter name="preset" transfer-ownership="none">
  28254. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28255. <type name="Preset" c:type="GstPreset*"/>
  28256. </instance-parameter>
  28257. </parameters>
  28258. </method>
  28259. <method name="get_property_names"
  28260. c:identifier="gst_preset_get_property_names">
  28261. <doc xml:space="preserve">Get a the names of the GObject properties that can be used for presets.</doc>
  28262. <return-value transfer-ownership="full">
  28263. <doc xml:space="preserve">an
  28264. array of property names which should be freed with g_strfreev() after use.</doc>
  28265. <array c:type="gchar**">
  28266. <type name="utf8"/>
  28267. </array>
  28268. </return-value>
  28269. <parameters>
  28270. <instance-parameter name="preset" transfer-ownership="none">
  28271. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28272. <type name="Preset" c:type="GstPreset*"/>
  28273. </instance-parameter>
  28274. </parameters>
  28275. </method>
  28276. <method name="is_editable"
  28277. c:identifier="gst_preset_is_editable"
  28278. version="1.6">
  28279. <doc xml:space="preserve">Check if one can add new presets, change existing ones and remove presets.</doc>
  28280. <return-value transfer-ownership="none">
  28281. <doc xml:space="preserve">%TRUE if presets are editable or %FALSE if they are static</doc>
  28282. <type name="gboolean" c:type="gboolean"/>
  28283. </return-value>
  28284. <parameters>
  28285. <instance-parameter name="preset" transfer-ownership="none">
  28286. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28287. <type name="Preset" c:type="GstPreset*"/>
  28288. </instance-parameter>
  28289. </parameters>
  28290. </method>
  28291. <method name="load_preset" c:identifier="gst_preset_load_preset">
  28292. <doc xml:space="preserve">Load the given preset.</doc>
  28293. <return-value transfer-ownership="none">
  28294. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28295. <type name="gboolean" c:type="gboolean"/>
  28296. </return-value>
  28297. <parameters>
  28298. <instance-parameter name="preset" transfer-ownership="none">
  28299. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28300. <type name="Preset" c:type="GstPreset*"/>
  28301. </instance-parameter>
  28302. <parameter name="name" transfer-ownership="none">
  28303. <doc xml:space="preserve">preset name to load</doc>
  28304. <type name="utf8" c:type="const gchar*"/>
  28305. </parameter>
  28306. </parameters>
  28307. </method>
  28308. <method name="rename_preset" c:identifier="gst_preset_rename_preset">
  28309. <doc xml:space="preserve">Renames a preset. If there is already a preset by the @new_name it will be
  28310. overwritten.</doc>
  28311. <return-value transfer-ownership="none">
  28312. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
  28313. <type name="gboolean" c:type="gboolean"/>
  28314. </return-value>
  28315. <parameters>
  28316. <instance-parameter name="preset" transfer-ownership="none">
  28317. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28318. <type name="Preset" c:type="GstPreset*"/>
  28319. </instance-parameter>
  28320. <parameter name="old_name" transfer-ownership="none">
  28321. <doc xml:space="preserve">current preset name</doc>
  28322. <type name="utf8" c:type="const gchar*"/>
  28323. </parameter>
  28324. <parameter name="new_name" transfer-ownership="none">
  28325. <doc xml:space="preserve">new preset name</doc>
  28326. <type name="utf8" c:type="const gchar*"/>
  28327. </parameter>
  28328. </parameters>
  28329. </method>
  28330. <method name="save_preset" c:identifier="gst_preset_save_preset">
  28331. <doc xml:space="preserve">Save the current object settings as a preset under the given name. If there
  28332. is already a preset by this @name it will be overwritten.</doc>
  28333. <return-value transfer-ownership="none">
  28334. <doc xml:space="preserve">%TRUE for success, %FALSE</doc>
  28335. <type name="gboolean" c:type="gboolean"/>
  28336. </return-value>
  28337. <parameters>
  28338. <instance-parameter name="preset" transfer-ownership="none">
  28339. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28340. <type name="Preset" c:type="GstPreset*"/>
  28341. </instance-parameter>
  28342. <parameter name="name" transfer-ownership="none">
  28343. <doc xml:space="preserve">preset name to save</doc>
  28344. <type name="utf8" c:type="const gchar*"/>
  28345. </parameter>
  28346. </parameters>
  28347. </method>
  28348. <method name="set_meta" c:identifier="gst_preset_set_meta">
  28349. <doc xml:space="preserve">Sets a new @value for an existing meta data item or adds a new item. Meta
  28350. data @tag names can be something like e.g. "comment". Supplying %NULL for the
  28351. @value will unset an existing value.</doc>
  28352. <return-value transfer-ownership="none">
  28353. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28354. <type name="gboolean" c:type="gboolean"/>
  28355. </return-value>
  28356. <parameters>
  28357. <instance-parameter name="preset" transfer-ownership="none">
  28358. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28359. <type name="Preset" c:type="GstPreset*"/>
  28360. </instance-parameter>
  28361. <parameter name="name" transfer-ownership="none">
  28362. <doc xml:space="preserve">preset name</doc>
  28363. <type name="utf8" c:type="const gchar*"/>
  28364. </parameter>
  28365. <parameter name="tag" transfer-ownership="none">
  28366. <doc xml:space="preserve">meta data item name</doc>
  28367. <type name="utf8" c:type="const gchar*"/>
  28368. </parameter>
  28369. <parameter name="value"
  28370. transfer-ownership="none"
  28371. nullable="1"
  28372. allow-none="1">
  28373. <doc xml:space="preserve">new value</doc>
  28374. <type name="utf8" c:type="const gchar*"/>
  28375. </parameter>
  28376. </parameters>
  28377. </method>
  28378. </interface>
  28379. <record name="PresetInterface"
  28380. c:type="GstPresetInterface"
  28381. glib:is-gtype-struct-for="Preset">
  28382. <doc xml:space="preserve">#GstPreset interface.</doc>
  28383. <field name="parent">
  28384. <doc xml:space="preserve">parent interface type.</doc>
  28385. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  28386. </field>
  28387. <field name="get_preset_names">
  28388. <callback name="get_preset_names">
  28389. <return-value transfer-ownership="full">
  28390. <doc xml:space="preserve">
  28391. list with names, use g_strfreev() after usage.</doc>
  28392. <array c:type="gchar**">
  28393. <type name="utf8"/>
  28394. </array>
  28395. </return-value>
  28396. <parameters>
  28397. <parameter name="preset" transfer-ownership="none">
  28398. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28399. <type name="Preset" c:type="GstPreset*"/>
  28400. </parameter>
  28401. </parameters>
  28402. </callback>
  28403. </field>
  28404. <field name="get_property_names">
  28405. <callback name="get_property_names">
  28406. <return-value transfer-ownership="full">
  28407. <doc xml:space="preserve">an
  28408. array of property names which should be freed with g_strfreev() after use.</doc>
  28409. <array c:type="gchar**">
  28410. <type name="utf8"/>
  28411. </array>
  28412. </return-value>
  28413. <parameters>
  28414. <parameter name="preset" transfer-ownership="none">
  28415. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28416. <type name="Preset" c:type="GstPreset*"/>
  28417. </parameter>
  28418. </parameters>
  28419. </callback>
  28420. </field>
  28421. <field name="load_preset">
  28422. <callback name="load_preset">
  28423. <return-value transfer-ownership="none">
  28424. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28425. <type name="gboolean" c:type="gboolean"/>
  28426. </return-value>
  28427. <parameters>
  28428. <parameter name="preset" transfer-ownership="none">
  28429. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28430. <type name="Preset" c:type="GstPreset*"/>
  28431. </parameter>
  28432. <parameter name="name" transfer-ownership="none">
  28433. <doc xml:space="preserve">preset name to load</doc>
  28434. <type name="utf8" c:type="const gchar*"/>
  28435. </parameter>
  28436. </parameters>
  28437. </callback>
  28438. </field>
  28439. <field name="save_preset">
  28440. <callback name="save_preset">
  28441. <return-value transfer-ownership="none">
  28442. <doc xml:space="preserve">%TRUE for success, %FALSE</doc>
  28443. <type name="gboolean" c:type="gboolean"/>
  28444. </return-value>
  28445. <parameters>
  28446. <parameter name="preset" transfer-ownership="none">
  28447. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28448. <type name="Preset" c:type="GstPreset*"/>
  28449. </parameter>
  28450. <parameter name="name" transfer-ownership="none">
  28451. <doc xml:space="preserve">preset name to save</doc>
  28452. <type name="utf8" c:type="const gchar*"/>
  28453. </parameter>
  28454. </parameters>
  28455. </callback>
  28456. </field>
  28457. <field name="rename_preset">
  28458. <callback name="rename_preset">
  28459. <return-value transfer-ownership="none">
  28460. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with @old_name</doc>
  28461. <type name="gboolean" c:type="gboolean"/>
  28462. </return-value>
  28463. <parameters>
  28464. <parameter name="preset" transfer-ownership="none">
  28465. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28466. <type name="Preset" c:type="GstPreset*"/>
  28467. </parameter>
  28468. <parameter name="old_name" transfer-ownership="none">
  28469. <doc xml:space="preserve">current preset name</doc>
  28470. <type name="utf8" c:type="const gchar*"/>
  28471. </parameter>
  28472. <parameter name="new_name" transfer-ownership="none">
  28473. <doc xml:space="preserve">new preset name</doc>
  28474. <type name="utf8" c:type="const gchar*"/>
  28475. </parameter>
  28476. </parameters>
  28477. </callback>
  28478. </field>
  28479. <field name="delete_preset">
  28480. <callback name="delete_preset">
  28481. <return-value transfer-ownership="none">
  28482. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28483. <type name="gboolean" c:type="gboolean"/>
  28484. </return-value>
  28485. <parameters>
  28486. <parameter name="preset" transfer-ownership="none">
  28487. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28488. <type name="Preset" c:type="GstPreset*"/>
  28489. </parameter>
  28490. <parameter name="name" transfer-ownership="none">
  28491. <doc xml:space="preserve">preset name to remove</doc>
  28492. <type name="utf8" c:type="const gchar*"/>
  28493. </parameter>
  28494. </parameters>
  28495. </callback>
  28496. </field>
  28497. <field name="set_meta">
  28498. <callback name="set_meta">
  28499. <return-value transfer-ownership="none">
  28500. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name</doc>
  28501. <type name="gboolean" c:type="gboolean"/>
  28502. </return-value>
  28503. <parameters>
  28504. <parameter name="preset" transfer-ownership="none">
  28505. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28506. <type name="Preset" c:type="GstPreset*"/>
  28507. </parameter>
  28508. <parameter name="name" transfer-ownership="none">
  28509. <doc xml:space="preserve">preset name</doc>
  28510. <type name="utf8" c:type="const gchar*"/>
  28511. </parameter>
  28512. <parameter name="tag" transfer-ownership="none">
  28513. <doc xml:space="preserve">meta data item name</doc>
  28514. <type name="utf8" c:type="const gchar*"/>
  28515. </parameter>
  28516. <parameter name="value"
  28517. transfer-ownership="none"
  28518. nullable="1"
  28519. allow-none="1">
  28520. <doc xml:space="preserve">new value</doc>
  28521. <type name="utf8" c:type="const gchar*"/>
  28522. </parameter>
  28523. </parameters>
  28524. </callback>
  28525. </field>
  28526. <field name="get_meta">
  28527. <callback name="get_meta">
  28528. <return-value transfer-ownership="none">
  28529. <doc xml:space="preserve">%TRUE for success, %FALSE if e.g. there is no preset with that @name
  28530. or no value for the given @tag</doc>
  28531. <type name="gboolean" c:type="gboolean"/>
  28532. </return-value>
  28533. <parameters>
  28534. <parameter name="preset" transfer-ownership="none">
  28535. <doc xml:space="preserve">a #GObject that implements #GstPreset</doc>
  28536. <type name="Preset" c:type="GstPreset*"/>
  28537. </parameter>
  28538. <parameter name="name" transfer-ownership="none">
  28539. <doc xml:space="preserve">preset name</doc>
  28540. <type name="utf8" c:type="const gchar*"/>
  28541. </parameter>
  28542. <parameter name="tag" transfer-ownership="none">
  28543. <doc xml:space="preserve">meta data item name</doc>
  28544. <type name="utf8" c:type="const gchar*"/>
  28545. </parameter>
  28546. <parameter name="value"
  28547. direction="out"
  28548. caller-allocates="0"
  28549. transfer-ownership="full">
  28550. <doc xml:space="preserve">value</doc>
  28551. <type name="utf8" c:type="gchar**"/>
  28552. </parameter>
  28553. </parameters>
  28554. </callback>
  28555. </field>
  28556. <field name="_gst_reserved" readable="0" private="1">
  28557. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  28558. <type name="gpointer" c:type="gpointer"/>
  28559. </array>
  28560. </field>
  28561. </record>
  28562. <enumeration name="ProgressType"
  28563. glib:type-name="GstProgressType"
  28564. glib:get-type="gst_progress_type_get_type"
  28565. c:type="GstProgressType">
  28566. <doc xml:space="preserve">The type of a %GST_MESSAGE_PROGRESS. The progress messages inform the
  28567. application of the status of asynchronous tasks.</doc>
  28568. <member name="start"
  28569. value="0"
  28570. c:identifier="GST_PROGRESS_TYPE_START"
  28571. glib:nick="start">
  28572. <doc xml:space="preserve">A new task started.</doc>
  28573. </member>
  28574. <member name="continue"
  28575. value="1"
  28576. c:identifier="GST_PROGRESS_TYPE_CONTINUE"
  28577. glib:nick="continue">
  28578. <doc xml:space="preserve">A task completed and a new one continues.</doc>
  28579. </member>
  28580. <member name="complete"
  28581. value="2"
  28582. c:identifier="GST_PROGRESS_TYPE_COMPLETE"
  28583. glib:nick="complete">
  28584. <doc xml:space="preserve">A task completed.</doc>
  28585. </member>
  28586. <member name="canceled"
  28587. value="3"
  28588. c:identifier="GST_PROGRESS_TYPE_CANCELED"
  28589. glib:nick="canceled">
  28590. <doc xml:space="preserve">A task was canceled.</doc>
  28591. </member>
  28592. <member name="error"
  28593. value="4"
  28594. c:identifier="GST_PROGRESS_TYPE_ERROR"
  28595. glib:nick="error">
  28596. <doc xml:space="preserve">A task caused an error. An error message is also
  28597. posted on the bus.</doc>
  28598. </member>
  28599. </enumeration>
  28600. <record name="ProtectionMeta" c:type="GstProtectionMeta" version="1.6">
  28601. <doc xml:space="preserve">Metadata type that holds information about a sample from a protection-protected
  28602. track, including the information needed to decrypt it (if it is encrypted).</doc>
  28603. <field name="meta" writable="1">
  28604. <doc xml:space="preserve">the parent #GstMeta.</doc>
  28605. <type name="Meta" c:type="GstMeta"/>
  28606. </field>
  28607. <field name="info" writable="1">
  28608. <doc xml:space="preserve">the cryptographic information needed to decrypt the sample.</doc>
  28609. <type name="Structure" c:type="GstStructure*"/>
  28610. </field>
  28611. <function name="get_info" c:identifier="gst_protection_meta_get_info">
  28612. <return-value transfer-ownership="none">
  28613. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  28614. </return-value>
  28615. </function>
  28616. </record>
  28617. <class name="ProxyPad"
  28618. c:symbol-prefix="proxy_pad"
  28619. c:type="GstProxyPad"
  28620. parent="Pad"
  28621. glib:type-name="GstProxyPad"
  28622. glib:get-type="gst_proxy_pad_get_type"
  28623. glib:type-struct="ProxyPadClass">
  28624. <function name="chain_default"
  28625. c:identifier="gst_proxy_pad_chain_default">
  28626. <doc xml:space="preserve">Invoke the default chain function of the proxy pad.</doc>
  28627. <return-value transfer-ownership="none">
  28628. <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
  28629. <type name="FlowReturn" c:type="GstFlowReturn"/>
  28630. </return-value>
  28631. <parameters>
  28632. <parameter name="pad" transfer-ownership="none">
  28633. <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
  28634. <type name="Pad" c:type="GstPad*"/>
  28635. </parameter>
  28636. <parameter name="parent"
  28637. transfer-ownership="none"
  28638. nullable="1"
  28639. allow-none="1">
  28640. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  28641. <type name="Object" c:type="GstObject*"/>
  28642. </parameter>
  28643. <parameter name="buffer" transfer-ownership="full">
  28644. <doc xml:space="preserve">the #GstBuffer to send, return GST_FLOW_ERROR
  28645. if not.</doc>
  28646. <type name="Buffer" c:type="GstBuffer*"/>
  28647. </parameter>
  28648. </parameters>
  28649. </function>
  28650. <function name="chain_list_default"
  28651. c:identifier="gst_proxy_pad_chain_list_default">
  28652. <doc xml:space="preserve">Invoke the default chain list function of the proxy pad.</doc>
  28653. <return-value transfer-ownership="none">
  28654. <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
  28655. <type name="FlowReturn" c:type="GstFlowReturn"/>
  28656. </return-value>
  28657. <parameters>
  28658. <parameter name="pad" transfer-ownership="none">
  28659. <doc xml:space="preserve">a sink #GstPad, returns GST_FLOW_ERROR if not.</doc>
  28660. <type name="Pad" c:type="GstPad*"/>
  28661. </parameter>
  28662. <parameter name="parent"
  28663. transfer-ownership="none"
  28664. nullable="1"
  28665. allow-none="1">
  28666. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  28667. <type name="Object" c:type="GstObject*"/>
  28668. </parameter>
  28669. <parameter name="list" transfer-ownership="full">
  28670. <doc xml:space="preserve">the #GstBufferList to send, return GST_FLOW_ERROR
  28671. if not.</doc>
  28672. <type name="BufferList" c:type="GstBufferList*"/>
  28673. </parameter>
  28674. </parameters>
  28675. </function>
  28676. <function name="getrange_default"
  28677. c:identifier="gst_proxy_pad_getrange_default">
  28678. <doc xml:space="preserve">Invoke the default getrange function of the proxy pad.</doc>
  28679. <return-value transfer-ownership="none">
  28680. <doc xml:space="preserve">a #GstFlowReturn from the pad.</doc>
  28681. <type name="FlowReturn" c:type="GstFlowReturn"/>
  28682. </return-value>
  28683. <parameters>
  28684. <parameter name="pad" transfer-ownership="none">
  28685. <doc xml:space="preserve">a src #GstPad, returns #GST_FLOW_ERROR if not.</doc>
  28686. <type name="Pad" c:type="GstPad*"/>
  28687. </parameter>
  28688. <parameter name="parent" transfer-ownership="none">
  28689. <doc xml:space="preserve">the parent of @pad</doc>
  28690. <type name="Object" c:type="GstObject*"/>
  28691. </parameter>
  28692. <parameter name="offset" transfer-ownership="none">
  28693. <doc xml:space="preserve">The start offset of the buffer</doc>
  28694. <type name="guint64" c:type="guint64"/>
  28695. </parameter>
  28696. <parameter name="size" transfer-ownership="none">
  28697. <doc xml:space="preserve">The length of the buffer</doc>
  28698. <type name="guint" c:type="guint"/>
  28699. </parameter>
  28700. <parameter name="buffer"
  28701. direction="out"
  28702. caller-allocates="0"
  28703. transfer-ownership="full">
  28704. <doc xml:space="preserve">a pointer to hold the #GstBuffer,
  28705. returns #GST_FLOW_ERROR if %NULL.</doc>
  28706. <type name="Buffer" c:type="GstBuffer**"/>
  28707. </parameter>
  28708. </parameters>
  28709. </function>
  28710. <function name="iterate_internal_links_default"
  28711. c:identifier="gst_proxy_pad_iterate_internal_links_default">
  28712. <doc xml:space="preserve">Invoke the default iterate internal links function of the proxy pad.</doc>
  28713. <return-value transfer-ownership="full" nullable="1">
  28714. <doc xml:space="preserve">a #GstIterator of #GstPad, or %NULL if @pad
  28715. has no parent. Unref each returned pad with gst_object_unref().</doc>
  28716. <type name="Iterator" c:type="GstIterator*"/>
  28717. </return-value>
  28718. <parameters>
  28719. <parameter name="pad" transfer-ownership="none">
  28720. <doc xml:space="preserve">the #GstPad to get the internal links of.</doc>
  28721. <type name="Pad" c:type="GstPad*"/>
  28722. </parameter>
  28723. <parameter name="parent"
  28724. transfer-ownership="none"
  28725. nullable="1"
  28726. allow-none="1">
  28727. <doc xml:space="preserve">the parent of @pad or %NULL</doc>
  28728. <type name="Object" c:type="GstObject*"/>
  28729. </parameter>
  28730. </parameters>
  28731. </function>
  28732. <method name="get_internal" c:identifier="gst_proxy_pad_get_internal">
  28733. <doc xml:space="preserve">Get the internal pad of @pad. Unref target pad after usage.
  28734. The internal pad of a #GstGhostPad is the internally used
  28735. pad of opposite direction, which is used to link to the target.</doc>
  28736. <return-value transfer-ownership="full" nullable="1">
  28737. <doc xml:space="preserve">the target #GstProxyPad, can
  28738. be %NULL. Unref target pad after usage.</doc>
  28739. <type name="ProxyPad" c:type="GstProxyPad*"/>
  28740. </return-value>
  28741. <parameters>
  28742. <instance-parameter name="pad" transfer-ownership="none">
  28743. <doc xml:space="preserve">the #GstProxyPad</doc>
  28744. <type name="ProxyPad" c:type="GstProxyPad*"/>
  28745. </instance-parameter>
  28746. </parameters>
  28747. </method>
  28748. <field name="pad">
  28749. <type name="Pad" c:type="GstPad"/>
  28750. </field>
  28751. <field name="priv" readable="0" private="1">
  28752. <type name="ProxyPadPrivate" c:type="GstProxyPadPrivate*"/>
  28753. </field>
  28754. </class>
  28755. <record name="ProxyPadClass"
  28756. c:type="GstProxyPadClass"
  28757. glib:is-gtype-struct-for="ProxyPad">
  28758. <field name="parent_class">
  28759. <type name="PadClass" c:type="GstPadClass"/>
  28760. </field>
  28761. <field name="_gst_reserved" readable="0" private="1">
  28762. <array zero-terminated="0" c:type="gpointer" fixed-size="1">
  28763. <type name="gpointer" c:type="gpointer"/>
  28764. </array>
  28765. </field>
  28766. </record>
  28767. <record name="ProxyPadPrivate" c:type="GstProxyPadPrivate" disguised="1">
  28768. </record>
  28769. <enumeration name="QOSType"
  28770. glib:type-name="GstQOSType"
  28771. glib:get-type="gst_qos_type_get_type"
  28772. c:type="GstQOSType">
  28773. <doc xml:space="preserve">The different types of QoS events that can be given to the
  28774. gst_event_new_qos() method.</doc>
  28775. <member name="overflow"
  28776. value="0"
  28777. c:identifier="GST_QOS_TYPE_OVERFLOW"
  28778. glib:nick="overflow">
  28779. <doc xml:space="preserve">The QoS event type that is produced when upstream
  28780. elements are producing data too quickly and the element can't keep up
  28781. processing the data. Upstream should reduce their production rate. This
  28782. type is also used when buffers arrive early or in time.</doc>
  28783. </member>
  28784. <member name="underflow"
  28785. value="1"
  28786. c:identifier="GST_QOS_TYPE_UNDERFLOW"
  28787. glib:nick="underflow">
  28788. <doc xml:space="preserve">The QoS event type that is produced when upstream
  28789. elements are producing data too slowly and need to speed up their
  28790. production rate.</doc>
  28791. </member>
  28792. <member name="throttle"
  28793. value="2"
  28794. c:identifier="GST_QOS_TYPE_THROTTLE"
  28795. glib:nick="throttle">
  28796. <doc xml:space="preserve">The QoS event type that is produced when the
  28797. application enabled throttling to limit the data rate.</doc>
  28798. </member>
  28799. </enumeration>
  28800. <constant name="QUERY_NUM_SHIFT" value="8" c:type="GST_QUERY_NUM_SHIFT">
  28801. <type name="gint" c:type="gint"/>
  28802. </constant>
  28803. <constant name="QUERY_TYPE_BOTH" value="0" c:type="GST_QUERY_TYPE_BOTH">
  28804. <doc xml:space="preserve">The same thing as #GST_QUERY_TYPE_UPSTREAM | #GST_QUERY_TYPE_DOWNSTREAM.</doc>
  28805. <type name="gint" c:type="gint"/>
  28806. </constant>
  28807. <record name="Query"
  28808. c:type="GstQuery"
  28809. glib:type-name="GstQuery"
  28810. glib:get-type="gst_query_get_type"
  28811. c:symbol-prefix="query">
  28812. <doc xml:space="preserve">Queries can be performed on pads (gst_pad_query()) and elements
  28813. (gst_element_query()). Please note that some queries might need a running
  28814. pipeline to work.
  28815. Queries can be created using the gst_query_new_*() functions.
  28816. Query values can be set using gst_query_set_*(), and parsed using
  28817. gst_query_parse_*() helpers.
  28818. The following example shows how to query the duration of a pipeline:
  28819. |[&lt;!-- language="C" --&gt;
  28820. GstQuery *query;
  28821. gboolean res;
  28822. query = gst_query_new_duration (GST_FORMAT_TIME);
  28823. res = gst_element_query (pipeline, query);
  28824. if (res) {
  28825. gint64 duration;
  28826. gst_query_parse_duration (query, NULL, &amp;amp;duration);
  28827. g_print ("duration = %"GST_TIME_FORMAT, GST_TIME_ARGS (duration));
  28828. } else {
  28829. g_print ("duration query failed...");
  28830. }
  28831. gst_query_unref (query);
  28832. ]|</doc>
  28833. <field name="mini_object" writable="1">
  28834. <doc xml:space="preserve">The parent #GstMiniObject type</doc>
  28835. <type name="MiniObject" c:type="GstMiniObject"/>
  28836. </field>
  28837. <field name="type" writable="1">
  28838. <doc xml:space="preserve">the #GstQueryType</doc>
  28839. <type name="QueryType" c:type="GstQueryType"/>
  28840. </field>
  28841. <constructor name="new_accept_caps"
  28842. c:identifier="gst_query_new_accept_caps">
  28843. <doc xml:space="preserve">Constructs a new query object for querying if @caps are accepted.
  28844. Free-function: gst_query_unref</doc>
  28845. <return-value transfer-ownership="full">
  28846. <doc xml:space="preserve">a new #GstQuery</doc>
  28847. <type name="Query" c:type="GstQuery*"/>
  28848. </return-value>
  28849. <parameters>
  28850. <parameter name="caps" transfer-ownership="none">
  28851. <doc xml:space="preserve">a fixed #GstCaps</doc>
  28852. <type name="Caps" c:type="GstCaps*"/>
  28853. </parameter>
  28854. </parameters>
  28855. </constructor>
  28856. <constructor name="new_allocation"
  28857. c:identifier="gst_query_new_allocation">
  28858. <doc xml:space="preserve">Constructs a new query object for querying the allocation properties.
  28859. Free-function: gst_query_unref</doc>
  28860. <return-value transfer-ownership="full">
  28861. <doc xml:space="preserve">a new #GstQuery</doc>
  28862. <type name="Query" c:type="GstQuery*"/>
  28863. </return-value>
  28864. <parameters>
  28865. <parameter name="caps" transfer-ownership="none">
  28866. <doc xml:space="preserve">the negotiated caps</doc>
  28867. <type name="Caps" c:type="GstCaps*"/>
  28868. </parameter>
  28869. <parameter name="need_pool" transfer-ownership="none">
  28870. <doc xml:space="preserve">return a pool</doc>
  28871. <type name="gboolean" c:type="gboolean"/>
  28872. </parameter>
  28873. </parameters>
  28874. </constructor>
  28875. <constructor name="new_buffering" c:identifier="gst_query_new_buffering">
  28876. <doc xml:space="preserve">Constructs a new query object for querying the buffering status of
  28877. a stream.
  28878. Free-function: gst_query_unref</doc>
  28879. <return-value transfer-ownership="full">
  28880. <doc xml:space="preserve">a new #GstQuery</doc>
  28881. <type name="Query" c:type="GstQuery*"/>
  28882. </return-value>
  28883. <parameters>
  28884. <parameter name="format" transfer-ownership="none">
  28885. <doc xml:space="preserve">the default #GstFormat for the new query</doc>
  28886. <type name="Format" c:type="GstFormat"/>
  28887. </parameter>
  28888. </parameters>
  28889. </constructor>
  28890. <constructor name="new_caps" c:identifier="gst_query_new_caps">
  28891. <doc xml:space="preserve">Constructs a new query object for querying the caps.
  28892. The CAPS query should return the allowable caps for a pad in the context
  28893. of the element's state, its link to other elements, and the devices or files
  28894. it has opened. These caps must be a subset of the pad template caps. In the
  28895. NULL state with no links, the CAPS query should ideally return the same caps
  28896. as the pad template. In rare circumstances, an object property can affect
  28897. the caps returned by the CAPS query, but this is discouraged.
  28898. For most filters, the caps returned by CAPS query is directly affected by the
  28899. allowed caps on other pads. For demuxers and decoders, the caps returned by
  28900. the srcpad's getcaps function is directly related to the stream data. Again,
  28901. the CAPS query should return the most specific caps it reasonably can, since this
  28902. helps with autoplugging.
  28903. The @filter is used to restrict the result caps, only the caps matching
  28904. @filter should be returned from the CAPS query. Specifying a filter might
  28905. greatly reduce the amount of processing an element needs to do.
  28906. Free-function: gst_query_unref</doc>
  28907. <return-value transfer-ownership="full">
  28908. <doc xml:space="preserve">a new #GstQuery</doc>
  28909. <type name="Query" c:type="GstQuery*"/>
  28910. </return-value>
  28911. <parameters>
  28912. <parameter name="filter" transfer-ownership="none">
  28913. <doc xml:space="preserve">a filter</doc>
  28914. <type name="Caps" c:type="GstCaps*"/>
  28915. </parameter>
  28916. </parameters>
  28917. </constructor>
  28918. <constructor name="new_context"
  28919. c:identifier="gst_query_new_context"
  28920. version="1.2">
  28921. <doc xml:space="preserve">Constructs a new query object for querying the pipeline-local context.
  28922. Free-function: gst_query_unref</doc>
  28923. <return-value transfer-ownership="full">
  28924. <doc xml:space="preserve">a new #GstQuery</doc>
  28925. <type name="Query" c:type="GstQuery*"/>
  28926. </return-value>
  28927. <parameters>
  28928. <parameter name="context_type" transfer-ownership="none">
  28929. <doc xml:space="preserve">Context type to query</doc>
  28930. <type name="utf8" c:type="const gchar*"/>
  28931. </parameter>
  28932. </parameters>
  28933. </constructor>
  28934. <constructor name="new_convert" c:identifier="gst_query_new_convert">
  28935. <doc xml:space="preserve">Constructs a new convert query object. Use gst_query_unref()
  28936. when done with it. A convert query is used to ask for a conversion between
  28937. one format and another.
  28938. Free-function: gst_query_unref</doc>
  28939. <return-value transfer-ownership="full">
  28940. <doc xml:space="preserve">a #GstQuery</doc>
  28941. <type name="Query" c:type="GstQuery*"/>
  28942. </return-value>
  28943. <parameters>
  28944. <parameter name="src_format" transfer-ownership="none">
  28945. <doc xml:space="preserve">the source #GstFormat for the new query</doc>
  28946. <type name="Format" c:type="GstFormat"/>
  28947. </parameter>
  28948. <parameter name="value" transfer-ownership="none">
  28949. <doc xml:space="preserve">the value to convert</doc>
  28950. <type name="gint64" c:type="gint64"/>
  28951. </parameter>
  28952. <parameter name="dest_format" transfer-ownership="none">
  28953. <doc xml:space="preserve">the target #GstFormat</doc>
  28954. <type name="Format" c:type="GstFormat"/>
  28955. </parameter>
  28956. </parameters>
  28957. </constructor>
  28958. <constructor name="new_custom" c:identifier="gst_query_new_custom">
  28959. <doc xml:space="preserve">Constructs a new custom query object. Use gst_query_unref()
  28960. when done with it.
  28961. Free-function: gst_query_unref</doc>
  28962. <return-value transfer-ownership="full">
  28963. <doc xml:space="preserve">a new #GstQuery</doc>
  28964. <type name="Query" c:type="GstQuery*"/>
  28965. </return-value>
  28966. <parameters>
  28967. <parameter name="type" transfer-ownership="none">
  28968. <doc xml:space="preserve">the query type</doc>
  28969. <type name="QueryType" c:type="GstQueryType"/>
  28970. </parameter>
  28971. <parameter name="structure"
  28972. transfer-ownership="full"
  28973. nullable="1"
  28974. allow-none="1">
  28975. <doc xml:space="preserve">a structure for the query</doc>
  28976. <type name="Structure" c:type="GstStructure*"/>
  28977. </parameter>
  28978. </parameters>
  28979. </constructor>
  28980. <constructor name="new_drain" c:identifier="gst_query_new_drain">
  28981. <doc xml:space="preserve">Constructs a new query object for querying the drain state.
  28982. Free-function: gst_query_unref</doc>
  28983. <return-value transfer-ownership="full">
  28984. <doc xml:space="preserve">a new #GstQuery</doc>
  28985. <type name="Query" c:type="GstQuery*"/>
  28986. </return-value>
  28987. </constructor>
  28988. <constructor name="new_duration" c:identifier="gst_query_new_duration">
  28989. <doc xml:space="preserve">Constructs a new stream duration query object to query in the given format.
  28990. Use gst_query_unref() when done with it. A duration query will give the
  28991. total length of the stream.
  28992. Free-function: gst_query_unref</doc>
  28993. <return-value transfer-ownership="full">
  28994. <doc xml:space="preserve">a new #GstQuery</doc>
  28995. <type name="Query" c:type="GstQuery*"/>
  28996. </return-value>
  28997. <parameters>
  28998. <parameter name="format" transfer-ownership="none">
  28999. <doc xml:space="preserve">the #GstFormat for this duration query</doc>
  29000. <type name="Format" c:type="GstFormat"/>
  29001. </parameter>
  29002. </parameters>
  29003. </constructor>
  29004. <constructor name="new_formats" c:identifier="gst_query_new_formats">
  29005. <doc xml:space="preserve">Constructs a new query object for querying formats of
  29006. the stream.
  29007. Free-function: gst_query_unref</doc>
  29008. <return-value transfer-ownership="full">
  29009. <doc xml:space="preserve">a new #GstQuery</doc>
  29010. <type name="Query" c:type="GstQuery*"/>
  29011. </return-value>
  29012. </constructor>
  29013. <constructor name="new_latency" c:identifier="gst_query_new_latency">
  29014. <doc xml:space="preserve">Constructs a new latency query object.
  29015. Use gst_query_unref() when done with it. A latency query is usually performed
  29016. by sinks to compensate for additional latency introduced by elements in the
  29017. pipeline.
  29018. Free-function: gst_query_unref</doc>
  29019. <return-value transfer-ownership="full">
  29020. <doc xml:space="preserve">a #GstQuery</doc>
  29021. <type name="Query" c:type="GstQuery*"/>
  29022. </return-value>
  29023. </constructor>
  29024. <constructor name="new_position" c:identifier="gst_query_new_position">
  29025. <doc xml:space="preserve">Constructs a new query stream position query object. Use gst_query_unref()
  29026. when done with it. A position query is used to query the current position
  29027. of playback in the streams, in some format.
  29028. Free-function: gst_query_unref</doc>
  29029. <return-value transfer-ownership="full">
  29030. <doc xml:space="preserve">a new #GstQuery</doc>
  29031. <type name="Query" c:type="GstQuery*"/>
  29032. </return-value>
  29033. <parameters>
  29034. <parameter name="format" transfer-ownership="none">
  29035. <doc xml:space="preserve">the default #GstFormat for the new query</doc>
  29036. <type name="Format" c:type="GstFormat"/>
  29037. </parameter>
  29038. </parameters>
  29039. </constructor>
  29040. <constructor name="new_scheduling"
  29041. c:identifier="gst_query_new_scheduling">
  29042. <doc xml:space="preserve">Constructs a new query object for querying the scheduling properties.
  29043. Free-function: gst_query_unref</doc>
  29044. <return-value transfer-ownership="full">
  29045. <doc xml:space="preserve">a new #GstQuery</doc>
  29046. <type name="Query" c:type="GstQuery*"/>
  29047. </return-value>
  29048. </constructor>
  29049. <constructor name="new_seeking" c:identifier="gst_query_new_seeking">
  29050. <doc xml:space="preserve">Constructs a new query object for querying seeking properties of
  29051. the stream.
  29052. Free-function: gst_query_unref</doc>
  29053. <return-value transfer-ownership="full">
  29054. <doc xml:space="preserve">a new #GstQuery</doc>
  29055. <type name="Query" c:type="GstQuery*"/>
  29056. </return-value>
  29057. <parameters>
  29058. <parameter name="format" transfer-ownership="none">
  29059. <doc xml:space="preserve">the default #GstFormat for the new query</doc>
  29060. <type name="Format" c:type="GstFormat"/>
  29061. </parameter>
  29062. </parameters>
  29063. </constructor>
  29064. <constructor name="new_segment" c:identifier="gst_query_new_segment">
  29065. <doc xml:space="preserve">Constructs a new segment query object. Use gst_query_unref()
  29066. when done with it. A segment query is used to discover information about the
  29067. currently configured segment for playback.
  29068. Free-function: gst_query_unref</doc>
  29069. <return-value transfer-ownership="full">
  29070. <doc xml:space="preserve">a new #GstQuery</doc>
  29071. <type name="Query" c:type="GstQuery*"/>
  29072. </return-value>
  29073. <parameters>
  29074. <parameter name="format" transfer-ownership="none">
  29075. <doc xml:space="preserve">the #GstFormat for the new query</doc>
  29076. <type name="Format" c:type="GstFormat"/>
  29077. </parameter>
  29078. </parameters>
  29079. </constructor>
  29080. <constructor name="new_uri" c:identifier="gst_query_new_uri">
  29081. <doc xml:space="preserve">Constructs a new query URI query object. Use gst_query_unref()
  29082. when done with it. An URI query is used to query the current URI
  29083. that is used by the source or sink.
  29084. Free-function: gst_query_unref</doc>
  29085. <return-value transfer-ownership="full">
  29086. <doc xml:space="preserve">a new #GstQuery</doc>
  29087. <type name="Query" c:type="GstQuery*"/>
  29088. </return-value>
  29089. </constructor>
  29090. <method name="add_allocation_meta"
  29091. c:identifier="gst_query_add_allocation_meta">
  29092. <doc xml:space="preserve">Add @api with @params as one of the supported metadata API to @query.</doc>
  29093. <return-value transfer-ownership="none">
  29094. <type name="none" c:type="void"/>
  29095. </return-value>
  29096. <parameters>
  29097. <instance-parameter name="query" transfer-ownership="none">
  29098. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29099. <type name="Query" c:type="GstQuery*"/>
  29100. </instance-parameter>
  29101. <parameter name="api" transfer-ownership="none">
  29102. <doc xml:space="preserve">the metadata API</doc>
  29103. <type name="GType" c:type="GType"/>
  29104. </parameter>
  29105. <parameter name="params"
  29106. transfer-ownership="none"
  29107. nullable="1"
  29108. allow-none="1">
  29109. <doc xml:space="preserve">API specific parameters</doc>
  29110. <type name="Structure" c:type="const GstStructure*"/>
  29111. </parameter>
  29112. </parameters>
  29113. </method>
  29114. <method name="add_allocation_param"
  29115. c:identifier="gst_query_add_allocation_param">
  29116. <doc xml:space="preserve">Add @allocator and its @params as a supported memory allocator.</doc>
  29117. <return-value transfer-ownership="none">
  29118. <type name="none" c:type="void"/>
  29119. </return-value>
  29120. <parameters>
  29121. <instance-parameter name="query" transfer-ownership="none">
  29122. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29123. <type name="Query" c:type="GstQuery*"/>
  29124. </instance-parameter>
  29125. <parameter name="allocator"
  29126. transfer-ownership="none"
  29127. nullable="1"
  29128. allow-none="1">
  29129. <doc xml:space="preserve">the memory allocator</doc>
  29130. <type name="Allocator" c:type="GstAllocator*"/>
  29131. </parameter>
  29132. <parameter name="params"
  29133. transfer-ownership="none"
  29134. nullable="1"
  29135. allow-none="1">
  29136. <doc xml:space="preserve">a #GstAllocationParams</doc>
  29137. <type name="AllocationParams" c:type="const GstAllocationParams*"/>
  29138. </parameter>
  29139. </parameters>
  29140. </method>
  29141. <method name="add_allocation_pool"
  29142. c:identifier="gst_query_add_allocation_pool">
  29143. <doc xml:space="preserve">Set the pool parameters in @query.</doc>
  29144. <return-value transfer-ownership="none">
  29145. <type name="none" c:type="void"/>
  29146. </return-value>
  29147. <parameters>
  29148. <instance-parameter name="query" transfer-ownership="none">
  29149. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc>
  29150. <type name="Query" c:type="GstQuery*"/>
  29151. </instance-parameter>
  29152. <parameter name="pool"
  29153. transfer-ownership="none"
  29154. nullable="1"
  29155. allow-none="1">
  29156. <doc xml:space="preserve">the #GstBufferPool</doc>
  29157. <type name="BufferPool" c:type="GstBufferPool*"/>
  29158. </parameter>
  29159. <parameter name="size" transfer-ownership="none">
  29160. <doc xml:space="preserve">the size</doc>
  29161. <type name="guint" c:type="guint"/>
  29162. </parameter>
  29163. <parameter name="min_buffers" transfer-ownership="none">
  29164. <doc xml:space="preserve">the min buffers</doc>
  29165. <type name="guint" c:type="guint"/>
  29166. </parameter>
  29167. <parameter name="max_buffers" transfer-ownership="none">
  29168. <doc xml:space="preserve">the max buffers</doc>
  29169. <type name="guint" c:type="guint"/>
  29170. </parameter>
  29171. </parameters>
  29172. </method>
  29173. <method name="add_buffering_range"
  29174. c:identifier="gst_query_add_buffering_range">
  29175. <doc xml:space="preserve">Set the buffering-ranges array field in @query. The current last
  29176. start position of the array should be inferior to @start.</doc>
  29177. <return-value transfer-ownership="none">
  29178. <doc xml:space="preserve">a #gboolean indicating if the range was added or not.</doc>
  29179. <type name="gboolean" c:type="gboolean"/>
  29180. </return-value>
  29181. <parameters>
  29182. <instance-parameter name="query" transfer-ownership="none">
  29183. <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
  29184. <type name="Query" c:type="GstQuery*"/>
  29185. </instance-parameter>
  29186. <parameter name="start" transfer-ownership="none">
  29187. <doc xml:space="preserve">start position of the range</doc>
  29188. <type name="gint64" c:type="gint64"/>
  29189. </parameter>
  29190. <parameter name="stop" transfer-ownership="none">
  29191. <doc xml:space="preserve">stop position of the range</doc>
  29192. <type name="gint64" c:type="gint64"/>
  29193. </parameter>
  29194. </parameters>
  29195. </method>
  29196. <method name="add_scheduling_mode"
  29197. c:identifier="gst_query_add_scheduling_mode">
  29198. <doc xml:space="preserve">Add @mode as one of the supported scheduling modes to @query.</doc>
  29199. <return-value transfer-ownership="none">
  29200. <type name="none" c:type="void"/>
  29201. </return-value>
  29202. <parameters>
  29203. <instance-parameter name="query" transfer-ownership="none">
  29204. <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
  29205. <type name="Query" c:type="GstQuery*"/>
  29206. </instance-parameter>
  29207. <parameter name="mode" transfer-ownership="none">
  29208. <doc xml:space="preserve">a #GstPadMode</doc>
  29209. <type name="PadMode" c:type="GstPadMode"/>
  29210. </parameter>
  29211. </parameters>
  29212. </method>
  29213. <method name="find_allocation_meta"
  29214. c:identifier="gst_query_find_allocation_meta">
  29215. <doc xml:space="preserve">Check if @query has metadata @api set. When this function returns %TRUE,
  29216. @index will contain the index where the requested API and the parameters
  29217. can be found.</doc>
  29218. <return-value transfer-ownership="none">
  29219. <doc xml:space="preserve">%TRUE when @api is in the list of metadata.</doc>
  29220. <type name="gboolean" c:type="gboolean"/>
  29221. </return-value>
  29222. <parameters>
  29223. <instance-parameter name="query" transfer-ownership="none">
  29224. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29225. <type name="Query" c:type="GstQuery*"/>
  29226. </instance-parameter>
  29227. <parameter name="api" transfer-ownership="none">
  29228. <doc xml:space="preserve">the metadata API</doc>
  29229. <type name="GType" c:type="GType"/>
  29230. </parameter>
  29231. <parameter name="index"
  29232. direction="out"
  29233. caller-allocates="0"
  29234. transfer-ownership="none"
  29235. optional="1"
  29236. allow-none="1">
  29237. <doc xml:space="preserve">the index</doc>
  29238. <type name="guint" c:type="guint*"/>
  29239. </parameter>
  29240. </parameters>
  29241. </method>
  29242. <method name="get_n_allocation_metas"
  29243. c:identifier="gst_query_get_n_allocation_metas">
  29244. <doc xml:space="preserve">Retrieve the number of values currently stored in the
  29245. meta API array of the query's structure.</doc>
  29246. <return-value transfer-ownership="none">
  29247. <doc xml:space="preserve">the metadata API array size as a #guint.</doc>
  29248. <type name="guint" c:type="guint"/>
  29249. </return-value>
  29250. <parameters>
  29251. <instance-parameter name="query" transfer-ownership="none">
  29252. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29253. <type name="Query" c:type="GstQuery*"/>
  29254. </instance-parameter>
  29255. </parameters>
  29256. </method>
  29257. <method name="get_n_allocation_params"
  29258. c:identifier="gst_query_get_n_allocation_params">
  29259. <doc xml:space="preserve">Retrieve the number of values currently stored in the
  29260. allocator params array of the query's structure.
  29261. If no memory allocator is specified, the downstream element can handle
  29262. the default memory allocator. The first memory allocator in the query
  29263. should be generic and allow mapping to system memory, all following
  29264. allocators should be ordered by preference with the preferred one first.</doc>
  29265. <return-value transfer-ownership="none">
  29266. <doc xml:space="preserve">the allocator array size as a #guint.</doc>
  29267. <type name="guint" c:type="guint"/>
  29268. </return-value>
  29269. <parameters>
  29270. <instance-parameter name="query" transfer-ownership="none">
  29271. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29272. <type name="Query" c:type="GstQuery*"/>
  29273. </instance-parameter>
  29274. </parameters>
  29275. </method>
  29276. <method name="get_n_allocation_pools"
  29277. c:identifier="gst_query_get_n_allocation_pools">
  29278. <doc xml:space="preserve">Retrieve the number of values currently stored in the
  29279. pool array of the query's structure.</doc>
  29280. <return-value transfer-ownership="none">
  29281. <doc xml:space="preserve">the pool array size as a #guint.</doc>
  29282. <type name="guint" c:type="guint"/>
  29283. </return-value>
  29284. <parameters>
  29285. <instance-parameter name="query" transfer-ownership="none">
  29286. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29287. <type name="Query" c:type="GstQuery*"/>
  29288. </instance-parameter>
  29289. </parameters>
  29290. </method>
  29291. <method name="get_n_buffering_ranges"
  29292. c:identifier="gst_query_get_n_buffering_ranges">
  29293. <doc xml:space="preserve">Retrieve the number of values currently stored in the
  29294. buffered-ranges array of the query's structure.</doc>
  29295. <return-value transfer-ownership="none">
  29296. <doc xml:space="preserve">the range array size as a #guint.</doc>
  29297. <type name="guint" c:type="guint"/>
  29298. </return-value>
  29299. <parameters>
  29300. <instance-parameter name="query" transfer-ownership="none">
  29301. <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
  29302. <type name="Query" c:type="GstQuery*"/>
  29303. </instance-parameter>
  29304. </parameters>
  29305. </method>
  29306. <method name="get_n_scheduling_modes"
  29307. c:identifier="gst_query_get_n_scheduling_modes">
  29308. <doc xml:space="preserve">Retrieve the number of values currently stored in the
  29309. scheduling mode array of the query's structure.</doc>
  29310. <return-value transfer-ownership="none">
  29311. <doc xml:space="preserve">the scheduling mode array size as a #guint.</doc>
  29312. <type name="guint" c:type="guint"/>
  29313. </return-value>
  29314. <parameters>
  29315. <instance-parameter name="query" transfer-ownership="none">
  29316. <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
  29317. <type name="Query" c:type="GstQuery*"/>
  29318. </instance-parameter>
  29319. </parameters>
  29320. </method>
  29321. <method name="get_structure" c:identifier="gst_query_get_structure">
  29322. <doc xml:space="preserve">Get the structure of a query.</doc>
  29323. <return-value transfer-ownership="none">
  29324. <doc xml:space="preserve">the #GstStructure of the query. The structure is
  29325. still owned by the query and will therefore be freed when the query
  29326. is unreffed.</doc>
  29327. <type name="Structure" c:type="const GstStructure*"/>
  29328. </return-value>
  29329. <parameters>
  29330. <instance-parameter name="query" transfer-ownership="none">
  29331. <doc xml:space="preserve">a #GstQuery</doc>
  29332. <type name="Query" c:type="GstQuery*"/>
  29333. </instance-parameter>
  29334. </parameters>
  29335. </method>
  29336. <method name="has_scheduling_mode"
  29337. c:identifier="gst_query_has_scheduling_mode">
  29338. <doc xml:space="preserve">Check if @query has scheduling mode set.
  29339. &lt;note&gt;
  29340. &lt;para&gt;
  29341. When checking if upstream supports pull mode, it is usually not
  29342. enough to just check for GST_PAD_MODE_PULL with this function, you
  29343. also want to check whether the scheduling flags returned by
  29344. gst_query_parse_scheduling() have the seeking flag set (meaning
  29345. random access is supported, not only sequential pulls).
  29346. &lt;/para&gt;
  29347. &lt;/note&gt;</doc>
  29348. <return-value transfer-ownership="none">
  29349. <doc xml:space="preserve">%TRUE when @mode is in the list of scheduling modes.</doc>
  29350. <type name="gboolean" c:type="gboolean"/>
  29351. </return-value>
  29352. <parameters>
  29353. <instance-parameter name="query" transfer-ownership="none">
  29354. <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
  29355. <type name="Query" c:type="GstQuery*"/>
  29356. </instance-parameter>
  29357. <parameter name="mode" transfer-ownership="none">
  29358. <doc xml:space="preserve">the scheduling mode</doc>
  29359. <type name="PadMode" c:type="GstPadMode"/>
  29360. </parameter>
  29361. </parameters>
  29362. </method>
  29363. <method name="has_scheduling_mode_with_flags"
  29364. c:identifier="gst_query_has_scheduling_mode_with_flags">
  29365. <doc xml:space="preserve">Check if @query has scheduling mode set and @flags is set in
  29366. query scheduling flags.</doc>
  29367. <return-value transfer-ownership="none">
  29368. <doc xml:space="preserve">%TRUE when @mode is in the list of scheduling modes
  29369. and @flags are compatible with query flags.</doc>
  29370. <type name="gboolean" c:type="gboolean"/>
  29371. </return-value>
  29372. <parameters>
  29373. <instance-parameter name="query" transfer-ownership="none">
  29374. <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
  29375. <type name="Query" c:type="GstQuery*"/>
  29376. </instance-parameter>
  29377. <parameter name="mode" transfer-ownership="none">
  29378. <doc xml:space="preserve">the scheduling mode</doc>
  29379. <type name="PadMode" c:type="GstPadMode"/>
  29380. </parameter>
  29381. <parameter name="flags" transfer-ownership="none">
  29382. <doc xml:space="preserve">#GstSchedulingFlags</doc>
  29383. <type name="SchedulingFlags" c:type="GstSchedulingFlags"/>
  29384. </parameter>
  29385. </parameters>
  29386. </method>
  29387. <method name="parse_accept_caps"
  29388. c:identifier="gst_query_parse_accept_caps">
  29389. <doc xml:space="preserve">Get the caps from @query. The caps remains valid as long as @query remains
  29390. valid.</doc>
  29391. <return-value transfer-ownership="none">
  29392. <type name="none" c:type="void"/>
  29393. </return-value>
  29394. <parameters>
  29395. <instance-parameter name="query" transfer-ownership="none">
  29396. <doc xml:space="preserve">The query to parse</doc>
  29397. <type name="Query" c:type="GstQuery*"/>
  29398. </instance-parameter>
  29399. <parameter name="caps"
  29400. direction="out"
  29401. caller-allocates="0"
  29402. transfer-ownership="none">
  29403. <doc xml:space="preserve">A pointer to the caps</doc>
  29404. <type name="Caps" c:type="GstCaps**"/>
  29405. </parameter>
  29406. </parameters>
  29407. </method>
  29408. <method name="parse_accept_caps_result"
  29409. c:identifier="gst_query_parse_accept_caps_result">
  29410. <doc xml:space="preserve">Parse the result from @query and store in @result.</doc>
  29411. <return-value transfer-ownership="none">
  29412. <type name="none" c:type="void"/>
  29413. </return-value>
  29414. <parameters>
  29415. <instance-parameter name="query" transfer-ownership="none">
  29416. <doc xml:space="preserve">a GST_QUERY_ACCEPT_CAPS type query #GstQuery</doc>
  29417. <type name="Query" c:type="GstQuery*"/>
  29418. </instance-parameter>
  29419. <parameter name="result" transfer-ownership="none">
  29420. <doc xml:space="preserve">location for the result</doc>
  29421. <type name="gboolean" c:type="gboolean*"/>
  29422. </parameter>
  29423. </parameters>
  29424. </method>
  29425. <method name="parse_allocation"
  29426. c:identifier="gst_query_parse_allocation">
  29427. <doc xml:space="preserve">Parse an allocation query, writing the requested caps in @caps and
  29428. whether a pool is needed in @need_pool, if the respective parameters
  29429. are non-%NULL.</doc>
  29430. <return-value transfer-ownership="none">
  29431. <type name="none" c:type="void"/>
  29432. </return-value>
  29433. <parameters>
  29434. <instance-parameter name="query" transfer-ownership="none">
  29435. <doc xml:space="preserve">a #GstQuery</doc>
  29436. <type name="Query" c:type="GstQuery*"/>
  29437. </instance-parameter>
  29438. <parameter name="caps"
  29439. direction="out"
  29440. caller-allocates="0"
  29441. transfer-ownership="none"
  29442. optional="1"
  29443. allow-none="1">
  29444. <doc xml:space="preserve">The #GstCaps</doc>
  29445. <type name="Caps" c:type="GstCaps**"/>
  29446. </parameter>
  29447. <parameter name="need_pool"
  29448. direction="out"
  29449. caller-allocates="0"
  29450. transfer-ownership="full"
  29451. optional="1"
  29452. allow-none="1">
  29453. <doc xml:space="preserve">Whether a #GstBufferPool is needed</doc>
  29454. <type name="gboolean" c:type="gboolean*"/>
  29455. </parameter>
  29456. </parameters>
  29457. </method>
  29458. <method name="parse_buffering_percent"
  29459. c:identifier="gst_query_parse_buffering_percent">
  29460. <doc xml:space="preserve">Get the percentage of buffered data. This is a value between 0 and 100.
  29461. The @busy indicator is %TRUE when the buffering is in progress.</doc>
  29462. <return-value transfer-ownership="none">
  29463. <type name="none" c:type="void"/>
  29464. </return-value>
  29465. <parameters>
  29466. <instance-parameter name="query" transfer-ownership="none">
  29467. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
  29468. <type name="Query" c:type="GstQuery*"/>
  29469. </instance-parameter>
  29470. <parameter name="busy"
  29471. direction="out"
  29472. caller-allocates="0"
  29473. transfer-ownership="full"
  29474. optional="1"
  29475. allow-none="1">
  29476. <doc xml:space="preserve">if buffering is busy, or %NULL</doc>
  29477. <type name="gboolean" c:type="gboolean*"/>
  29478. </parameter>
  29479. <parameter name="percent"
  29480. direction="out"
  29481. caller-allocates="0"
  29482. transfer-ownership="full"
  29483. optional="1"
  29484. allow-none="1">
  29485. <doc xml:space="preserve">a buffering percent, or %NULL</doc>
  29486. <type name="gint" c:type="gint*"/>
  29487. </parameter>
  29488. </parameters>
  29489. </method>
  29490. <method name="parse_buffering_range"
  29491. c:identifier="gst_query_parse_buffering_range">
  29492. <doc xml:space="preserve">Parse an available query, writing the format into @format, and
  29493. other results into the passed parameters, if the respective parameters
  29494. are non-%NULL</doc>
  29495. <return-value transfer-ownership="none">
  29496. <type name="none" c:type="void"/>
  29497. </return-value>
  29498. <parameters>
  29499. <instance-parameter name="query" transfer-ownership="none">
  29500. <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
  29501. <type name="Query" c:type="GstQuery*"/>
  29502. </instance-parameter>
  29503. <parameter name="format"
  29504. direction="out"
  29505. caller-allocates="0"
  29506. transfer-ownership="full"
  29507. optional="1"
  29508. allow-none="1">
  29509. <doc xml:space="preserve">the format to set for the @segment_start
  29510. and @segment_end values, or %NULL</doc>
  29511. <type name="Format" c:type="GstFormat*"/>
  29512. </parameter>
  29513. <parameter name="start"
  29514. direction="out"
  29515. caller-allocates="0"
  29516. transfer-ownership="full"
  29517. optional="1"
  29518. allow-none="1">
  29519. <doc xml:space="preserve">the start to set, or %NULL</doc>
  29520. <type name="gint64" c:type="gint64*"/>
  29521. </parameter>
  29522. <parameter name="stop"
  29523. direction="out"
  29524. caller-allocates="0"
  29525. transfer-ownership="full"
  29526. optional="1"
  29527. allow-none="1">
  29528. <doc xml:space="preserve">the stop to set, or %NULL</doc>
  29529. <type name="gint64" c:type="gint64*"/>
  29530. </parameter>
  29531. <parameter name="estimated_total"
  29532. direction="out"
  29533. caller-allocates="0"
  29534. transfer-ownership="full"
  29535. optional="1"
  29536. allow-none="1">
  29537. <doc xml:space="preserve">estimated total amount of download
  29538. time remaining in milliseconds, or %NULL</doc>
  29539. <type name="gint64" c:type="gint64*"/>
  29540. </parameter>
  29541. </parameters>
  29542. </method>
  29543. <method name="parse_buffering_stats"
  29544. c:identifier="gst_query_parse_buffering_stats">
  29545. <doc xml:space="preserve">Extracts the buffering stats values from @query.</doc>
  29546. <return-value transfer-ownership="none">
  29547. <type name="none" c:type="void"/>
  29548. </return-value>
  29549. <parameters>
  29550. <instance-parameter name="query" transfer-ownership="none">
  29551. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
  29552. <type name="Query" c:type="GstQuery*"/>
  29553. </instance-parameter>
  29554. <parameter name="mode"
  29555. direction="out"
  29556. caller-allocates="0"
  29557. transfer-ownership="full"
  29558. optional="1"
  29559. allow-none="1">
  29560. <doc xml:space="preserve">a buffering mode, or %NULL</doc>
  29561. <type name="BufferingMode" c:type="GstBufferingMode*"/>
  29562. </parameter>
  29563. <parameter name="avg_in"
  29564. direction="out"
  29565. caller-allocates="0"
  29566. transfer-ownership="full"
  29567. optional="1"
  29568. allow-none="1">
  29569. <doc xml:space="preserve">the average input rate, or %NULL</doc>
  29570. <type name="gint" c:type="gint*"/>
  29571. </parameter>
  29572. <parameter name="avg_out"
  29573. direction="out"
  29574. caller-allocates="0"
  29575. transfer-ownership="full"
  29576. optional="1"
  29577. allow-none="1">
  29578. <doc xml:space="preserve">the average output rat, or %NULL</doc>
  29579. <type name="gint" c:type="gint*"/>
  29580. </parameter>
  29581. <parameter name="buffering_left"
  29582. direction="out"
  29583. caller-allocates="0"
  29584. transfer-ownership="full"
  29585. optional="1"
  29586. allow-none="1">
  29587. <doc xml:space="preserve">amount of buffering time left in
  29588. milliseconds, or %NULL</doc>
  29589. <type name="gint64" c:type="gint64*"/>
  29590. </parameter>
  29591. </parameters>
  29592. </method>
  29593. <method name="parse_caps" c:identifier="gst_query_parse_caps">
  29594. <doc xml:space="preserve">Get the filter from the caps @query. The caps remains valid as long as
  29595. @query remains valid.</doc>
  29596. <return-value transfer-ownership="none">
  29597. <type name="none" c:type="void"/>
  29598. </return-value>
  29599. <parameters>
  29600. <instance-parameter name="query" transfer-ownership="none">
  29601. <doc xml:space="preserve">The query to parse</doc>
  29602. <type name="Query" c:type="GstQuery*"/>
  29603. </instance-parameter>
  29604. <parameter name="filter"
  29605. direction="out"
  29606. caller-allocates="0"
  29607. transfer-ownership="none">
  29608. <doc xml:space="preserve">A pointer to the caps filter</doc>
  29609. <type name="Caps" c:type="GstCaps**"/>
  29610. </parameter>
  29611. </parameters>
  29612. </method>
  29613. <method name="parse_caps_result"
  29614. c:identifier="gst_query_parse_caps_result">
  29615. <doc xml:space="preserve">Get the caps result from @query. The caps remains valid as long as
  29616. @query remains valid.</doc>
  29617. <return-value transfer-ownership="none">
  29618. <type name="none" c:type="void"/>
  29619. </return-value>
  29620. <parameters>
  29621. <instance-parameter name="query" transfer-ownership="none">
  29622. <doc xml:space="preserve">The query to parse</doc>
  29623. <type name="Query" c:type="GstQuery*"/>
  29624. </instance-parameter>
  29625. <parameter name="caps"
  29626. direction="out"
  29627. caller-allocates="0"
  29628. transfer-ownership="none">
  29629. <doc xml:space="preserve">A pointer to the caps</doc>
  29630. <type name="Caps" c:type="GstCaps**"/>
  29631. </parameter>
  29632. </parameters>
  29633. </method>
  29634. <method name="parse_context"
  29635. c:identifier="gst_query_parse_context"
  29636. version="1.2">
  29637. <doc xml:space="preserve">Get the context from the context @query. The context remains valid as long as
  29638. @query remains valid.</doc>
  29639. <return-value transfer-ownership="none">
  29640. <type name="none" c:type="void"/>
  29641. </return-value>
  29642. <parameters>
  29643. <instance-parameter name="query" transfer-ownership="none">
  29644. <doc xml:space="preserve">The query to parse</doc>
  29645. <type name="Query" c:type="GstQuery*"/>
  29646. </instance-parameter>
  29647. <parameter name="context"
  29648. direction="out"
  29649. caller-allocates="0"
  29650. transfer-ownership="none">
  29651. <doc xml:space="preserve">A pointer to store the #GstContext</doc>
  29652. <type name="Context" c:type="GstContext**"/>
  29653. </parameter>
  29654. </parameters>
  29655. </method>
  29656. <method name="parse_context_type"
  29657. c:identifier="gst_query_parse_context_type"
  29658. version="1.2">
  29659. <doc xml:space="preserve">Parse a context type from an existing GST_QUERY_CONTEXT query.</doc>
  29660. <return-value transfer-ownership="none">
  29661. <doc xml:space="preserve">a #gboolean indicating if the parsing succeeded.</doc>
  29662. <type name="gboolean" c:type="gboolean"/>
  29663. </return-value>
  29664. <parameters>
  29665. <instance-parameter name="query" transfer-ownership="none">
  29666. <doc xml:space="preserve">a GST_QUERY_CONTEXT type query</doc>
  29667. <type name="Query" c:type="GstQuery*"/>
  29668. </instance-parameter>
  29669. <parameter name="context_type"
  29670. direction="out"
  29671. caller-allocates="0"
  29672. transfer-ownership="none"
  29673. optional="1"
  29674. allow-none="1">
  29675. <doc xml:space="preserve">the context type, or %NULL</doc>
  29676. <type name="utf8" c:type="const gchar**"/>
  29677. </parameter>
  29678. </parameters>
  29679. </method>
  29680. <method name="parse_convert" c:identifier="gst_query_parse_convert">
  29681. <doc xml:space="preserve">Parse a convert query answer. Any of @src_format, @src_value, @dest_format,
  29682. and @dest_value may be %NULL, in which case that value is omitted.</doc>
  29683. <return-value transfer-ownership="none">
  29684. <type name="none" c:type="void"/>
  29685. </return-value>
  29686. <parameters>
  29687. <instance-parameter name="query" transfer-ownership="none">
  29688. <doc xml:space="preserve">a #GstQuery</doc>
  29689. <type name="Query" c:type="GstQuery*"/>
  29690. </instance-parameter>
  29691. <parameter name="src_format"
  29692. direction="out"
  29693. caller-allocates="0"
  29694. transfer-ownership="full"
  29695. optional="1"
  29696. allow-none="1">
  29697. <doc xml:space="preserve">the storage for the #GstFormat of the
  29698. source value, or %NULL</doc>
  29699. <type name="Format" c:type="GstFormat*"/>
  29700. </parameter>
  29701. <parameter name="src_value"
  29702. direction="out"
  29703. caller-allocates="0"
  29704. transfer-ownership="full"
  29705. optional="1"
  29706. allow-none="1">
  29707. <doc xml:space="preserve">the storage for the source value, or %NULL</doc>
  29708. <type name="gint64" c:type="gint64*"/>
  29709. </parameter>
  29710. <parameter name="dest_format"
  29711. direction="out"
  29712. caller-allocates="0"
  29713. transfer-ownership="full"
  29714. optional="1"
  29715. allow-none="1">
  29716. <doc xml:space="preserve">the storage for the #GstFormat of the
  29717. destination value, or %NULL</doc>
  29718. <type name="Format" c:type="GstFormat*"/>
  29719. </parameter>
  29720. <parameter name="dest_value"
  29721. direction="out"
  29722. caller-allocates="0"
  29723. transfer-ownership="full"
  29724. optional="1"
  29725. allow-none="1">
  29726. <doc xml:space="preserve">the storage for the destination value,
  29727. or %NULL</doc>
  29728. <type name="gint64" c:type="gint64*"/>
  29729. </parameter>
  29730. </parameters>
  29731. </method>
  29732. <method name="parse_duration" c:identifier="gst_query_parse_duration">
  29733. <doc xml:space="preserve">Parse a duration query answer. Write the format of the duration into @format,
  29734. and the value into @duration, if the respective variables are non-%NULL.</doc>
  29735. <return-value transfer-ownership="none">
  29736. <type name="none" c:type="void"/>
  29737. </return-value>
  29738. <parameters>
  29739. <instance-parameter name="query" transfer-ownership="none">
  29740. <doc xml:space="preserve">a #GstQuery</doc>
  29741. <type name="Query" c:type="GstQuery*"/>
  29742. </instance-parameter>
  29743. <parameter name="format"
  29744. direction="out"
  29745. caller-allocates="0"
  29746. transfer-ownership="full"
  29747. optional="1"
  29748. allow-none="1">
  29749. <doc xml:space="preserve">the storage for the #GstFormat of the duration
  29750. value, or %NULL.</doc>
  29751. <type name="Format" c:type="GstFormat*"/>
  29752. </parameter>
  29753. <parameter name="duration"
  29754. direction="out"
  29755. caller-allocates="0"
  29756. transfer-ownership="full"
  29757. optional="1"
  29758. allow-none="1">
  29759. <doc xml:space="preserve">the storage for the total duration, or %NULL.</doc>
  29760. <type name="gint64" c:type="gint64*"/>
  29761. </parameter>
  29762. </parameters>
  29763. </method>
  29764. <method name="parse_latency" c:identifier="gst_query_parse_latency">
  29765. <doc xml:space="preserve">Parse a latency query answer.</doc>
  29766. <return-value transfer-ownership="none">
  29767. <type name="none" c:type="void"/>
  29768. </return-value>
  29769. <parameters>
  29770. <instance-parameter name="query" transfer-ownership="none">
  29771. <doc xml:space="preserve">a #GstQuery</doc>
  29772. <type name="Query" c:type="GstQuery*"/>
  29773. </instance-parameter>
  29774. <parameter name="live"
  29775. direction="out"
  29776. caller-allocates="0"
  29777. transfer-ownership="full"
  29778. optional="1"
  29779. allow-none="1">
  29780. <doc xml:space="preserve">storage for live or %NULL</doc>
  29781. <type name="gboolean" c:type="gboolean*"/>
  29782. </parameter>
  29783. <parameter name="min_latency"
  29784. direction="out"
  29785. caller-allocates="0"
  29786. transfer-ownership="full"
  29787. optional="1"
  29788. allow-none="1">
  29789. <doc xml:space="preserve">the storage for the min latency or %NULL</doc>
  29790. <type name="ClockTime" c:type="GstClockTime*"/>
  29791. </parameter>
  29792. <parameter name="max_latency"
  29793. direction="out"
  29794. caller-allocates="0"
  29795. transfer-ownership="full"
  29796. optional="1"
  29797. allow-none="1">
  29798. <doc xml:space="preserve">the storage for the max latency or %NULL</doc>
  29799. <type name="ClockTime" c:type="GstClockTime*"/>
  29800. </parameter>
  29801. </parameters>
  29802. </method>
  29803. <method name="parse_n_formats" c:identifier="gst_query_parse_n_formats">
  29804. <doc xml:space="preserve">Parse the number of formats in the formats @query.</doc>
  29805. <return-value transfer-ownership="none">
  29806. <type name="none" c:type="void"/>
  29807. </return-value>
  29808. <parameters>
  29809. <instance-parameter name="query" transfer-ownership="none">
  29810. <doc xml:space="preserve">a #GstQuery</doc>
  29811. <type name="Query" c:type="GstQuery*"/>
  29812. </instance-parameter>
  29813. <parameter name="n_formats"
  29814. direction="out"
  29815. caller-allocates="0"
  29816. transfer-ownership="full"
  29817. optional="1"
  29818. allow-none="1">
  29819. <doc xml:space="preserve">the number of formats in this query.</doc>
  29820. <type name="guint" c:type="guint*"/>
  29821. </parameter>
  29822. </parameters>
  29823. </method>
  29824. <method name="parse_nth_allocation_meta"
  29825. c:identifier="gst_query_parse_nth_allocation_meta">
  29826. <doc xml:space="preserve">Parse an available query and get the metadata API
  29827. at @index of the metadata API array.</doc>
  29828. <return-value transfer-ownership="none">
  29829. <doc xml:space="preserve">a #GType of the metadata API at @index.</doc>
  29830. <type name="GType" c:type="GType"/>
  29831. </return-value>
  29832. <parameters>
  29833. <instance-parameter name="query" transfer-ownership="none">
  29834. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29835. <type name="Query" c:type="GstQuery*"/>
  29836. </instance-parameter>
  29837. <parameter name="index" transfer-ownership="none">
  29838. <doc xml:space="preserve">position in the metadata API array to read</doc>
  29839. <type name="guint" c:type="guint"/>
  29840. </parameter>
  29841. <parameter name="params"
  29842. direction="out"
  29843. caller-allocates="0"
  29844. transfer-ownership="none"
  29845. optional="1"
  29846. allow-none="1">
  29847. <doc xml:space="preserve">API specific parameters</doc>
  29848. <type name="Structure" c:type="const GstStructure**"/>
  29849. </parameter>
  29850. </parameters>
  29851. </method>
  29852. <method name="parse_nth_allocation_param"
  29853. c:identifier="gst_query_parse_nth_allocation_param">
  29854. <doc xml:space="preserve">Parse an available query and get the allocator and its params
  29855. at @index of the allocator array.</doc>
  29856. <return-value transfer-ownership="none">
  29857. <type name="none" c:type="void"/>
  29858. </return-value>
  29859. <parameters>
  29860. <instance-parameter name="query" transfer-ownership="none">
  29861. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  29862. <type name="Query" c:type="GstQuery*"/>
  29863. </instance-parameter>
  29864. <parameter name="index" transfer-ownership="none">
  29865. <doc xml:space="preserve">position in the allocator array to read</doc>
  29866. <type name="guint" c:type="guint"/>
  29867. </parameter>
  29868. <parameter name="allocator"
  29869. direction="out"
  29870. caller-allocates="0"
  29871. transfer-ownership="full"
  29872. optional="1"
  29873. allow-none="1">
  29874. <doc xml:space="preserve">variable to hold the result</doc>
  29875. <type name="Allocator" c:type="GstAllocator**"/>
  29876. </parameter>
  29877. <parameter name="params"
  29878. direction="out"
  29879. caller-allocates="1"
  29880. transfer-ownership="none"
  29881. optional="1"
  29882. allow-none="1">
  29883. <doc xml:space="preserve">parameters for the allocator</doc>
  29884. <type name="AllocationParams" c:type="GstAllocationParams*"/>
  29885. </parameter>
  29886. </parameters>
  29887. </method>
  29888. <method name="parse_nth_allocation_pool"
  29889. c:identifier="gst_query_parse_nth_allocation_pool">
  29890. <doc xml:space="preserve">Get the pool parameters in @query.
  29891. Unref @pool with gst_object_unref() when it's not needed any more.</doc>
  29892. <return-value transfer-ownership="none">
  29893. <type name="none" c:type="void"/>
  29894. </return-value>
  29895. <parameters>
  29896. <instance-parameter name="query" transfer-ownership="none">
  29897. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc>
  29898. <type name="Query" c:type="GstQuery*"/>
  29899. </instance-parameter>
  29900. <parameter name="index" transfer-ownership="none">
  29901. <doc xml:space="preserve">index to parse</doc>
  29902. <type name="guint" c:type="guint"/>
  29903. </parameter>
  29904. <parameter name="pool"
  29905. direction="out"
  29906. caller-allocates="0"
  29907. transfer-ownership="full"
  29908. optional="1"
  29909. allow-none="1">
  29910. <doc xml:space="preserve">the #GstBufferPool</doc>
  29911. <type name="BufferPool" c:type="GstBufferPool**"/>
  29912. </parameter>
  29913. <parameter name="size"
  29914. direction="out"
  29915. caller-allocates="0"
  29916. transfer-ownership="full"
  29917. optional="1"
  29918. allow-none="1">
  29919. <doc xml:space="preserve">the size</doc>
  29920. <type name="guint" c:type="guint*"/>
  29921. </parameter>
  29922. <parameter name="min_buffers"
  29923. direction="out"
  29924. caller-allocates="0"
  29925. transfer-ownership="full"
  29926. optional="1"
  29927. allow-none="1">
  29928. <doc xml:space="preserve">the min buffers</doc>
  29929. <type name="guint" c:type="guint*"/>
  29930. </parameter>
  29931. <parameter name="max_buffers"
  29932. direction="out"
  29933. caller-allocates="0"
  29934. transfer-ownership="full"
  29935. optional="1"
  29936. allow-none="1">
  29937. <doc xml:space="preserve">the max buffers</doc>
  29938. <type name="guint" c:type="guint*"/>
  29939. </parameter>
  29940. </parameters>
  29941. </method>
  29942. <method name="parse_nth_buffering_range"
  29943. c:identifier="gst_query_parse_nth_buffering_range">
  29944. <doc xml:space="preserve">Parse an available query and get the start and stop values stored
  29945. at the @index of the buffered ranges array.</doc>
  29946. <return-value transfer-ownership="none">
  29947. <doc xml:space="preserve">a #gboolean indicating if the parsing succeeded.</doc>
  29948. <type name="gboolean" c:type="gboolean"/>
  29949. </return-value>
  29950. <parameters>
  29951. <instance-parameter name="query" transfer-ownership="none">
  29952. <doc xml:space="preserve">a GST_QUERY_BUFFERING type query #GstQuery</doc>
  29953. <type name="Query" c:type="GstQuery*"/>
  29954. </instance-parameter>
  29955. <parameter name="index" transfer-ownership="none">
  29956. <doc xml:space="preserve">position in the buffered-ranges array to read</doc>
  29957. <type name="guint" c:type="guint"/>
  29958. </parameter>
  29959. <parameter name="start"
  29960. direction="out"
  29961. caller-allocates="0"
  29962. transfer-ownership="full"
  29963. optional="1"
  29964. allow-none="1">
  29965. <doc xml:space="preserve">the start position to set, or %NULL</doc>
  29966. <type name="gint64" c:type="gint64*"/>
  29967. </parameter>
  29968. <parameter name="stop"
  29969. direction="out"
  29970. caller-allocates="0"
  29971. transfer-ownership="full"
  29972. optional="1"
  29973. allow-none="1">
  29974. <doc xml:space="preserve">the stop position to set, or %NULL</doc>
  29975. <type name="gint64" c:type="gint64*"/>
  29976. </parameter>
  29977. </parameters>
  29978. </method>
  29979. <method name="parse_nth_format"
  29980. c:identifier="gst_query_parse_nth_format">
  29981. <doc xml:space="preserve">Parse the format query and retrieve the @nth format from it into
  29982. @format. If the list contains less elements than @nth, @format will be
  29983. set to GST_FORMAT_UNDEFINED.</doc>
  29984. <return-value transfer-ownership="none">
  29985. <type name="none" c:type="void"/>
  29986. </return-value>
  29987. <parameters>
  29988. <instance-parameter name="query" transfer-ownership="none">
  29989. <doc xml:space="preserve">a #GstQuery</doc>
  29990. <type name="Query" c:type="GstQuery*"/>
  29991. </instance-parameter>
  29992. <parameter name="nth"
  29993. direction="out"
  29994. caller-allocates="0"
  29995. transfer-ownership="full">
  29996. <doc xml:space="preserve">the nth format to retrieve.</doc>
  29997. <type name="guint" c:type="guint"/>
  29998. </parameter>
  29999. <parameter name="format"
  30000. direction="out"
  30001. caller-allocates="0"
  30002. transfer-ownership="full"
  30003. optional="1"
  30004. allow-none="1">
  30005. <doc xml:space="preserve">a pointer to store the nth format</doc>
  30006. <type name="Format" c:type="GstFormat*"/>
  30007. </parameter>
  30008. </parameters>
  30009. </method>
  30010. <method name="parse_nth_scheduling_mode"
  30011. c:identifier="gst_query_parse_nth_scheduling_mode">
  30012. <doc xml:space="preserve">Parse an available query and get the scheduling mode
  30013. at @index of the scheduling modes array.</doc>
  30014. <return-value transfer-ownership="none">
  30015. <doc xml:space="preserve">a #GstPadMode of the scheduling mode at @index.</doc>
  30016. <type name="PadMode" c:type="GstPadMode"/>
  30017. </return-value>
  30018. <parameters>
  30019. <instance-parameter name="query" transfer-ownership="none">
  30020. <doc xml:space="preserve">a GST_QUERY_SCHEDULING type query #GstQuery</doc>
  30021. <type name="Query" c:type="GstQuery*"/>
  30022. </instance-parameter>
  30023. <parameter name="index" transfer-ownership="none">
  30024. <doc xml:space="preserve">position in the scheduling modes array to read</doc>
  30025. <type name="guint" c:type="guint"/>
  30026. </parameter>
  30027. </parameters>
  30028. </method>
  30029. <method name="parse_position" c:identifier="gst_query_parse_position">
  30030. <doc xml:space="preserve">Parse a position query, writing the format into @format, and the position
  30031. into @cur, if the respective parameters are non-%NULL.</doc>
  30032. <return-value transfer-ownership="none">
  30033. <type name="none" c:type="void"/>
  30034. </return-value>
  30035. <parameters>
  30036. <instance-parameter name="query" transfer-ownership="none">
  30037. <doc xml:space="preserve">a #GstQuery</doc>
  30038. <type name="Query" c:type="GstQuery*"/>
  30039. </instance-parameter>
  30040. <parameter name="format"
  30041. direction="out"
  30042. caller-allocates="0"
  30043. transfer-ownership="full"
  30044. optional="1"
  30045. allow-none="1">
  30046. <doc xml:space="preserve">the storage for the #GstFormat of the
  30047. position values (may be %NULL)</doc>
  30048. <type name="Format" c:type="GstFormat*"/>
  30049. </parameter>
  30050. <parameter name="cur"
  30051. direction="out"
  30052. caller-allocates="0"
  30053. transfer-ownership="full"
  30054. optional="1"
  30055. allow-none="1">
  30056. <doc xml:space="preserve">the storage for the current position (may be %NULL)</doc>
  30057. <type name="gint64" c:type="gint64*"/>
  30058. </parameter>
  30059. </parameters>
  30060. </method>
  30061. <method name="parse_scheduling"
  30062. c:identifier="gst_query_parse_scheduling">
  30063. <doc xml:space="preserve">Set the scheduling properties.</doc>
  30064. <return-value transfer-ownership="none">
  30065. <type name="none" c:type="void"/>
  30066. </return-value>
  30067. <parameters>
  30068. <instance-parameter name="query" transfer-ownership="none">
  30069. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_SCHEDULING.</doc>
  30070. <type name="Query" c:type="GstQuery*"/>
  30071. </instance-parameter>
  30072. <parameter name="flags"
  30073. direction="out"
  30074. caller-allocates="0"
  30075. transfer-ownership="full"
  30076. optional="1"
  30077. allow-none="1">
  30078. <doc xml:space="preserve">#GstSchedulingFlags</doc>
  30079. <type name="SchedulingFlags" c:type="GstSchedulingFlags*"/>
  30080. </parameter>
  30081. <parameter name="minsize"
  30082. direction="out"
  30083. caller-allocates="0"
  30084. transfer-ownership="full"
  30085. optional="1"
  30086. allow-none="1">
  30087. <doc xml:space="preserve">the suggested minimum size of pull requests</doc>
  30088. <type name="gint" c:type="gint*"/>
  30089. </parameter>
  30090. <parameter name="maxsize"
  30091. direction="out"
  30092. caller-allocates="0"
  30093. transfer-ownership="full"
  30094. optional="1"
  30095. allow-none="1">
  30096. <doc xml:space="preserve">the suggested maximum size of pull requests:</doc>
  30097. <type name="gint" c:type="gint*"/>
  30098. </parameter>
  30099. <parameter name="align"
  30100. direction="out"
  30101. caller-allocates="0"
  30102. transfer-ownership="full"
  30103. optional="1"
  30104. allow-none="1">
  30105. <doc xml:space="preserve">the suggested alignment of pull requests</doc>
  30106. <type name="gint" c:type="gint*"/>
  30107. </parameter>
  30108. </parameters>
  30109. </method>
  30110. <method name="parse_seeking" c:identifier="gst_query_parse_seeking">
  30111. <doc xml:space="preserve">Parse a seeking query, writing the format into @format, and
  30112. other results into the passed parameters, if the respective parameters
  30113. are non-%NULL</doc>
  30114. <return-value transfer-ownership="none">
  30115. <type name="none" c:type="void"/>
  30116. </return-value>
  30117. <parameters>
  30118. <instance-parameter name="query" transfer-ownership="none">
  30119. <doc xml:space="preserve">a GST_QUERY_SEEKING type query #GstQuery</doc>
  30120. <type name="Query" c:type="GstQuery*"/>
  30121. </instance-parameter>
  30122. <parameter name="format"
  30123. direction="out"
  30124. caller-allocates="0"
  30125. transfer-ownership="full"
  30126. optional="1"
  30127. allow-none="1">
  30128. <doc xml:space="preserve">the format to set for the @segment_start
  30129. and @segment_end values, or %NULL</doc>
  30130. <type name="Format" c:type="GstFormat*"/>
  30131. </parameter>
  30132. <parameter name="seekable"
  30133. direction="out"
  30134. caller-allocates="0"
  30135. transfer-ownership="full"
  30136. optional="1"
  30137. allow-none="1">
  30138. <doc xml:space="preserve">the seekable flag to set, or %NULL</doc>
  30139. <type name="gboolean" c:type="gboolean*"/>
  30140. </parameter>
  30141. <parameter name="segment_start"
  30142. direction="out"
  30143. caller-allocates="0"
  30144. transfer-ownership="full"
  30145. optional="1"
  30146. allow-none="1">
  30147. <doc xml:space="preserve">the segment_start to set, or %NULL</doc>
  30148. <type name="gint64" c:type="gint64*"/>
  30149. </parameter>
  30150. <parameter name="segment_end"
  30151. direction="out"
  30152. caller-allocates="0"
  30153. transfer-ownership="full"
  30154. optional="1"
  30155. allow-none="1">
  30156. <doc xml:space="preserve">the segment_end to set, or %NULL</doc>
  30157. <type name="gint64" c:type="gint64*"/>
  30158. </parameter>
  30159. </parameters>
  30160. </method>
  30161. <method name="parse_segment" c:identifier="gst_query_parse_segment">
  30162. <doc xml:space="preserve">Parse a segment query answer. Any of @rate, @format, @start_value, and
  30163. @stop_value may be %NULL, which will cause this value to be omitted.
  30164. See gst_query_set_segment() for an explanation of the function arguments.</doc>
  30165. <return-value transfer-ownership="none">
  30166. <type name="none" c:type="void"/>
  30167. </return-value>
  30168. <parameters>
  30169. <instance-parameter name="query" transfer-ownership="none">
  30170. <doc xml:space="preserve">a #GstQuery</doc>
  30171. <type name="Query" c:type="GstQuery*"/>
  30172. </instance-parameter>
  30173. <parameter name="rate"
  30174. direction="out"
  30175. caller-allocates="0"
  30176. transfer-ownership="full"
  30177. optional="1"
  30178. allow-none="1">
  30179. <doc xml:space="preserve">the storage for the rate of the segment, or %NULL</doc>
  30180. <type name="gdouble" c:type="gdouble*"/>
  30181. </parameter>
  30182. <parameter name="format"
  30183. direction="out"
  30184. caller-allocates="0"
  30185. transfer-ownership="full"
  30186. optional="1"
  30187. allow-none="1">
  30188. <doc xml:space="preserve">the storage for the #GstFormat of the values,
  30189. or %NULL</doc>
  30190. <type name="Format" c:type="GstFormat*"/>
  30191. </parameter>
  30192. <parameter name="start_value"
  30193. direction="out"
  30194. caller-allocates="0"
  30195. transfer-ownership="full"
  30196. optional="1"
  30197. allow-none="1">
  30198. <doc xml:space="preserve">the storage for the start value, or %NULL</doc>
  30199. <type name="gint64" c:type="gint64*"/>
  30200. </parameter>
  30201. <parameter name="stop_value"
  30202. direction="out"
  30203. caller-allocates="0"
  30204. transfer-ownership="full"
  30205. optional="1"
  30206. allow-none="1">
  30207. <doc xml:space="preserve">the storage for the stop value, or %NULL</doc>
  30208. <type name="gint64" c:type="gint64*"/>
  30209. </parameter>
  30210. </parameters>
  30211. </method>
  30212. <method name="parse_uri" c:identifier="gst_query_parse_uri">
  30213. <doc xml:space="preserve">Parse an URI query, writing the URI into @uri as a newly
  30214. allocated string, if the respective parameters are non-%NULL.
  30215. Free the string with g_free() after usage.</doc>
  30216. <return-value transfer-ownership="none">
  30217. <type name="none" c:type="void"/>
  30218. </return-value>
  30219. <parameters>
  30220. <instance-parameter name="query" transfer-ownership="none">
  30221. <doc xml:space="preserve">a #GstQuery</doc>
  30222. <type name="Query" c:type="GstQuery*"/>
  30223. </instance-parameter>
  30224. <parameter name="uri"
  30225. direction="out"
  30226. caller-allocates="0"
  30227. transfer-ownership="full"
  30228. optional="1"
  30229. allow-none="1">
  30230. <doc xml:space="preserve">the storage for the current URI
  30231. (may be %NULL)</doc>
  30232. <type name="utf8" c:type="gchar**"/>
  30233. </parameter>
  30234. </parameters>
  30235. </method>
  30236. <method name="parse_uri_redirection"
  30237. c:identifier="gst_query_parse_uri_redirection"
  30238. version="1.2">
  30239. <doc xml:space="preserve">Parse an URI query, writing the URI into @uri as a newly
  30240. allocated string, if the respective parameters are non-%NULL.
  30241. Free the string with g_free() after usage.</doc>
  30242. <return-value transfer-ownership="none">
  30243. <type name="none" c:type="void"/>
  30244. </return-value>
  30245. <parameters>
  30246. <instance-parameter name="query" transfer-ownership="none">
  30247. <doc xml:space="preserve">a #GstQuery</doc>
  30248. <type name="Query" c:type="GstQuery*"/>
  30249. </instance-parameter>
  30250. <parameter name="uri"
  30251. direction="out"
  30252. caller-allocates="0"
  30253. transfer-ownership="full"
  30254. optional="1"
  30255. allow-none="1">
  30256. <doc xml:space="preserve">the storage for the redirect URI
  30257. (may be %NULL)</doc>
  30258. <type name="utf8" c:type="gchar**"/>
  30259. </parameter>
  30260. </parameters>
  30261. </method>
  30262. <method name="parse_uri_redirection_permanent"
  30263. c:identifier="gst_query_parse_uri_redirection_permanent"
  30264. version="1.4">
  30265. <doc xml:space="preserve">Parse an URI query, and set @permanent to %TRUE if there is a redirection
  30266. and it should be considered permanent. If a redirection is permanent,
  30267. applications should update their internal storage of the URI, otherwise
  30268. they should make all future requests to the original URI.</doc>
  30269. <return-value transfer-ownership="none">
  30270. <type name="none" c:type="void"/>
  30271. </return-value>
  30272. <parameters>
  30273. <instance-parameter name="query" transfer-ownership="none">
  30274. <doc xml:space="preserve">a #GstQuery</doc>
  30275. <type name="Query" c:type="GstQuery*"/>
  30276. </instance-parameter>
  30277. <parameter name="permanent"
  30278. direction="out"
  30279. caller-allocates="0"
  30280. transfer-ownership="full"
  30281. optional="1"
  30282. allow-none="1">
  30283. <doc xml:space="preserve">if the URI redirection is permanent
  30284. (may be %NULL)</doc>
  30285. <type name="gboolean" c:type="gboolean*"/>
  30286. </parameter>
  30287. </parameters>
  30288. </method>
  30289. <method name="remove_nth_allocation_meta"
  30290. c:identifier="gst_query_remove_nth_allocation_meta">
  30291. <doc xml:space="preserve">Remove the metadata API at @index of the metadata API array.</doc>
  30292. <return-value transfer-ownership="none">
  30293. <type name="none" c:type="void"/>
  30294. </return-value>
  30295. <parameters>
  30296. <instance-parameter name="query" transfer-ownership="none">
  30297. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  30298. <type name="Query" c:type="GstQuery*"/>
  30299. </instance-parameter>
  30300. <parameter name="index" transfer-ownership="none">
  30301. <doc xml:space="preserve">position in the metadata API array to remove</doc>
  30302. <type name="guint" c:type="guint"/>
  30303. </parameter>
  30304. </parameters>
  30305. </method>
  30306. <method name="remove_nth_allocation_param"
  30307. c:identifier="gst_query_remove_nth_allocation_param"
  30308. version="1.2">
  30309. <doc xml:space="preserve">Remove the allocation param at @index of the allocation param array.</doc>
  30310. <return-value transfer-ownership="none">
  30311. <type name="none" c:type="void"/>
  30312. </return-value>
  30313. <parameters>
  30314. <instance-parameter name="query" transfer-ownership="none">
  30315. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  30316. <type name="Query" c:type="GstQuery*"/>
  30317. </instance-parameter>
  30318. <parameter name="index" transfer-ownership="none">
  30319. <doc xml:space="preserve">position in the allocation param array to remove</doc>
  30320. <type name="guint" c:type="guint"/>
  30321. </parameter>
  30322. </parameters>
  30323. </method>
  30324. <method name="remove_nth_allocation_pool"
  30325. c:identifier="gst_query_remove_nth_allocation_pool"
  30326. version="1.2">
  30327. <doc xml:space="preserve">Remove the allocation pool at @index of the allocation pool array.</doc>
  30328. <return-value transfer-ownership="none">
  30329. <type name="none" c:type="void"/>
  30330. </return-value>
  30331. <parameters>
  30332. <instance-parameter name="query" transfer-ownership="none">
  30333. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  30334. <type name="Query" c:type="GstQuery*"/>
  30335. </instance-parameter>
  30336. <parameter name="index" transfer-ownership="none">
  30337. <doc xml:space="preserve">position in the allocation pool array to remove</doc>
  30338. <type name="guint" c:type="guint"/>
  30339. </parameter>
  30340. </parameters>
  30341. </method>
  30342. <method name="set_accept_caps_result"
  30343. c:identifier="gst_query_set_accept_caps_result">
  30344. <doc xml:space="preserve">Set @result as the result for the @query.</doc>
  30345. <return-value transfer-ownership="none">
  30346. <type name="none" c:type="void"/>
  30347. </return-value>
  30348. <parameters>
  30349. <instance-parameter name="query" transfer-ownership="none">
  30350. <doc xml:space="preserve">a GST_QUERY_ACCEPT_CAPS type query #GstQuery</doc>
  30351. <type name="Query" c:type="GstQuery*"/>
  30352. </instance-parameter>
  30353. <parameter name="result" transfer-ownership="none">
  30354. <doc xml:space="preserve">the result to set</doc>
  30355. <type name="gboolean" c:type="gboolean"/>
  30356. </parameter>
  30357. </parameters>
  30358. </method>
  30359. <method name="set_buffering_percent"
  30360. c:identifier="gst_query_set_buffering_percent">
  30361. <doc xml:space="preserve">Set the percentage of buffered data. This is a value between 0 and 100.
  30362. The @busy indicator is %TRUE when the buffering is in progress.</doc>
  30363. <return-value transfer-ownership="none">
  30364. <type name="none" c:type="void"/>
  30365. </return-value>
  30366. <parameters>
  30367. <instance-parameter name="query" transfer-ownership="none">
  30368. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
  30369. <type name="Query" c:type="GstQuery*"/>
  30370. </instance-parameter>
  30371. <parameter name="busy" transfer-ownership="none">
  30372. <doc xml:space="preserve">if buffering is busy</doc>
  30373. <type name="gboolean" c:type="gboolean"/>
  30374. </parameter>
  30375. <parameter name="percent" transfer-ownership="none">
  30376. <doc xml:space="preserve">a buffering percent</doc>
  30377. <type name="gint" c:type="gint"/>
  30378. </parameter>
  30379. </parameters>
  30380. </method>
  30381. <method name="set_buffering_range"
  30382. c:identifier="gst_query_set_buffering_range">
  30383. <doc xml:space="preserve">Set the available query result fields in @query.</doc>
  30384. <return-value transfer-ownership="none">
  30385. <type name="none" c:type="void"/>
  30386. </return-value>
  30387. <parameters>
  30388. <instance-parameter name="query" transfer-ownership="none">
  30389. <doc xml:space="preserve">a #GstQuery</doc>
  30390. <type name="Query" c:type="GstQuery*"/>
  30391. </instance-parameter>
  30392. <parameter name="format" transfer-ownership="none">
  30393. <doc xml:space="preserve">the format to set for the @start and @stop values</doc>
  30394. <type name="Format" c:type="GstFormat"/>
  30395. </parameter>
  30396. <parameter name="start" transfer-ownership="none">
  30397. <doc xml:space="preserve">the start to set</doc>
  30398. <type name="gint64" c:type="gint64"/>
  30399. </parameter>
  30400. <parameter name="stop" transfer-ownership="none">
  30401. <doc xml:space="preserve">the stop to set</doc>
  30402. <type name="gint64" c:type="gint64"/>
  30403. </parameter>
  30404. <parameter name="estimated_total" transfer-ownership="none">
  30405. <doc xml:space="preserve">estimated total amount of download time remaining in
  30406. milliseconds</doc>
  30407. <type name="gint64" c:type="gint64"/>
  30408. </parameter>
  30409. </parameters>
  30410. </method>
  30411. <method name="set_buffering_stats"
  30412. c:identifier="gst_query_set_buffering_stats">
  30413. <doc xml:space="preserve">Configures the buffering stats values in @query.</doc>
  30414. <return-value transfer-ownership="none">
  30415. <type name="none" c:type="void"/>
  30416. </return-value>
  30417. <parameters>
  30418. <instance-parameter name="query" transfer-ownership="none">
  30419. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_BUFFERING.</doc>
  30420. <type name="Query" c:type="GstQuery*"/>
  30421. </instance-parameter>
  30422. <parameter name="mode" transfer-ownership="none">
  30423. <doc xml:space="preserve">a buffering mode</doc>
  30424. <type name="BufferingMode" c:type="GstBufferingMode"/>
  30425. </parameter>
  30426. <parameter name="avg_in" transfer-ownership="none">
  30427. <doc xml:space="preserve">the average input rate</doc>
  30428. <type name="gint" c:type="gint"/>
  30429. </parameter>
  30430. <parameter name="avg_out" transfer-ownership="none">
  30431. <doc xml:space="preserve">the average output rate</doc>
  30432. <type name="gint" c:type="gint"/>
  30433. </parameter>
  30434. <parameter name="buffering_left" transfer-ownership="none">
  30435. <doc xml:space="preserve">amount of buffering time left in milliseconds</doc>
  30436. <type name="gint64" c:type="gint64"/>
  30437. </parameter>
  30438. </parameters>
  30439. </method>
  30440. <method name="set_caps_result" c:identifier="gst_query_set_caps_result">
  30441. <doc xml:space="preserve">Set the @caps result in @query.</doc>
  30442. <return-value transfer-ownership="none">
  30443. <type name="none" c:type="void"/>
  30444. </return-value>
  30445. <parameters>
  30446. <instance-parameter name="query" transfer-ownership="none">
  30447. <doc xml:space="preserve">The query to use</doc>
  30448. <type name="Query" c:type="GstQuery*"/>
  30449. </instance-parameter>
  30450. <parameter name="caps" transfer-ownership="none">
  30451. <doc xml:space="preserve">A pointer to the caps</doc>
  30452. <type name="Caps" c:type="GstCaps*"/>
  30453. </parameter>
  30454. </parameters>
  30455. </method>
  30456. <method name="set_context"
  30457. c:identifier="gst_query_set_context"
  30458. version="1.2">
  30459. <doc xml:space="preserve">Answer a context query by setting the requested context.</doc>
  30460. <return-value transfer-ownership="none">
  30461. <type name="none" c:type="void"/>
  30462. </return-value>
  30463. <parameters>
  30464. <instance-parameter name="query" transfer-ownership="none">
  30465. <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_CONTEXT</doc>
  30466. <type name="Query" c:type="GstQuery*"/>
  30467. </instance-parameter>
  30468. <parameter name="context" transfer-ownership="none">
  30469. <doc xml:space="preserve">the requested #GstContext</doc>
  30470. <type name="Context" c:type="GstContext*"/>
  30471. </parameter>
  30472. </parameters>
  30473. </method>
  30474. <method name="set_convert" c:identifier="gst_query_set_convert">
  30475. <doc xml:space="preserve">Answer a convert query by setting the requested values.</doc>
  30476. <return-value transfer-ownership="none">
  30477. <type name="none" c:type="void"/>
  30478. </return-value>
  30479. <parameters>
  30480. <instance-parameter name="query" transfer-ownership="none">
  30481. <doc xml:space="preserve">a #GstQuery</doc>
  30482. <type name="Query" c:type="GstQuery*"/>
  30483. </instance-parameter>
  30484. <parameter name="src_format" transfer-ownership="none">
  30485. <doc xml:space="preserve">the source #GstFormat</doc>
  30486. <type name="Format" c:type="GstFormat"/>
  30487. </parameter>
  30488. <parameter name="src_value" transfer-ownership="none">
  30489. <doc xml:space="preserve">the source value</doc>
  30490. <type name="gint64" c:type="gint64"/>
  30491. </parameter>
  30492. <parameter name="dest_format" transfer-ownership="none">
  30493. <doc xml:space="preserve">the destination #GstFormat</doc>
  30494. <type name="Format" c:type="GstFormat"/>
  30495. </parameter>
  30496. <parameter name="dest_value" transfer-ownership="none">
  30497. <doc xml:space="preserve">the destination value</doc>
  30498. <type name="gint64" c:type="gint64"/>
  30499. </parameter>
  30500. </parameters>
  30501. </method>
  30502. <method name="set_duration" c:identifier="gst_query_set_duration">
  30503. <doc xml:space="preserve">Answer a duration query by setting the requested value in the given format.</doc>
  30504. <return-value transfer-ownership="none">
  30505. <type name="none" c:type="void"/>
  30506. </return-value>
  30507. <parameters>
  30508. <instance-parameter name="query" transfer-ownership="none">
  30509. <doc xml:space="preserve">a #GstQuery</doc>
  30510. <type name="Query" c:type="GstQuery*"/>
  30511. </instance-parameter>
  30512. <parameter name="format" transfer-ownership="none">
  30513. <doc xml:space="preserve">the #GstFormat for the duration</doc>
  30514. <type name="Format" c:type="GstFormat"/>
  30515. </parameter>
  30516. <parameter name="duration" transfer-ownership="none">
  30517. <doc xml:space="preserve">the duration of the stream</doc>
  30518. <type name="gint64" c:type="gint64"/>
  30519. </parameter>
  30520. </parameters>
  30521. </method>
  30522. <method name="set_formats"
  30523. c:identifier="gst_query_set_formats"
  30524. introspectable="0">
  30525. <doc xml:space="preserve">Set the formats query result fields in @query. The number of formats passed
  30526. must be equal to @n_formats.</doc>
  30527. <return-value transfer-ownership="none">
  30528. <type name="none" c:type="void"/>
  30529. </return-value>
  30530. <parameters>
  30531. <instance-parameter name="query" transfer-ownership="none">
  30532. <doc xml:space="preserve">a #GstQuery</doc>
  30533. <type name="Query" c:type="GstQuery*"/>
  30534. </instance-parameter>
  30535. <parameter name="n_formats" transfer-ownership="none">
  30536. <doc xml:space="preserve">the number of formats to set.</doc>
  30537. <type name="gint" c:type="gint"/>
  30538. </parameter>
  30539. <parameter name="..." transfer-ownership="none">
  30540. <doc xml:space="preserve">A number of @GstFormats equal to @n_formats.</doc>
  30541. <varargs/>
  30542. </parameter>
  30543. </parameters>
  30544. </method>
  30545. <method name="set_formatsv" c:identifier="gst_query_set_formatsv">
  30546. <doc xml:space="preserve">Set the formats query result fields in @query. The number of formats passed
  30547. in the @formats array must be equal to @n_formats.</doc>
  30548. <return-value transfer-ownership="none">
  30549. <type name="none" c:type="void"/>
  30550. </return-value>
  30551. <parameters>
  30552. <instance-parameter name="query" transfer-ownership="none">
  30553. <doc xml:space="preserve">a #GstQuery</doc>
  30554. <type name="Query" c:type="GstQuery*"/>
  30555. </instance-parameter>
  30556. <parameter name="n_formats" transfer-ownership="none">
  30557. <doc xml:space="preserve">the number of formats to set.</doc>
  30558. <type name="gint" c:type="gint"/>
  30559. </parameter>
  30560. <parameter name="formats" transfer-ownership="none">
  30561. <doc xml:space="preserve">an array containing @n_formats
  30562. @GstFormat values.</doc>
  30563. <array length="0" zero-terminated="0" c:type="GstFormat*">
  30564. <type name="Format" c:type="GstFormat"/>
  30565. </array>
  30566. </parameter>
  30567. </parameters>
  30568. </method>
  30569. <method name="set_latency" c:identifier="gst_query_set_latency">
  30570. <doc xml:space="preserve">Answer a latency query by setting the requested values in the given format.</doc>
  30571. <return-value transfer-ownership="none">
  30572. <type name="none" c:type="void"/>
  30573. </return-value>
  30574. <parameters>
  30575. <instance-parameter name="query" transfer-ownership="none">
  30576. <doc xml:space="preserve">a #GstQuery</doc>
  30577. <type name="Query" c:type="GstQuery*"/>
  30578. </instance-parameter>
  30579. <parameter name="live" transfer-ownership="none">
  30580. <doc xml:space="preserve">if there is a live element upstream</doc>
  30581. <type name="gboolean" c:type="gboolean"/>
  30582. </parameter>
  30583. <parameter name="min_latency" transfer-ownership="none">
  30584. <doc xml:space="preserve">the minimal latency of the upstream elements</doc>
  30585. <type name="ClockTime" c:type="GstClockTime"/>
  30586. </parameter>
  30587. <parameter name="max_latency" transfer-ownership="none">
  30588. <doc xml:space="preserve">the maximal latency of the upstream elements</doc>
  30589. <type name="ClockTime" c:type="GstClockTime"/>
  30590. </parameter>
  30591. </parameters>
  30592. </method>
  30593. <method name="set_nth_allocation_param"
  30594. c:identifier="gst_query_set_nth_allocation_param">
  30595. <doc xml:space="preserve">Parse an available query and get the allocator and its params
  30596. at @index of the allocator array.</doc>
  30597. <return-value transfer-ownership="none">
  30598. <type name="none" c:type="void"/>
  30599. </return-value>
  30600. <parameters>
  30601. <instance-parameter name="query" transfer-ownership="none">
  30602. <doc xml:space="preserve">a GST_QUERY_ALLOCATION type query #GstQuery</doc>
  30603. <type name="Query" c:type="GstQuery*"/>
  30604. </instance-parameter>
  30605. <parameter name="index" transfer-ownership="none">
  30606. <doc xml:space="preserve">position in the allocator array to set</doc>
  30607. <type name="guint" c:type="guint"/>
  30608. </parameter>
  30609. <parameter name="allocator"
  30610. transfer-ownership="none"
  30611. nullable="1"
  30612. allow-none="1">
  30613. <doc xml:space="preserve">new allocator to set</doc>
  30614. <type name="Allocator" c:type="GstAllocator*"/>
  30615. </parameter>
  30616. <parameter name="params"
  30617. transfer-ownership="none"
  30618. nullable="1"
  30619. allow-none="1">
  30620. <doc xml:space="preserve">parameters for the allocator</doc>
  30621. <type name="AllocationParams" c:type="const GstAllocationParams*"/>
  30622. </parameter>
  30623. </parameters>
  30624. </method>
  30625. <method name="set_nth_allocation_pool"
  30626. c:identifier="gst_query_set_nth_allocation_pool">
  30627. <doc xml:space="preserve">Set the pool parameters in @query.</doc>
  30628. <return-value transfer-ownership="none">
  30629. <type name="none" c:type="void"/>
  30630. </return-value>
  30631. <parameters>
  30632. <instance-parameter name="query" transfer-ownership="none">
  30633. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_ALLOCATION.</doc>
  30634. <type name="Query" c:type="GstQuery*"/>
  30635. </instance-parameter>
  30636. <parameter name="index" transfer-ownership="none">
  30637. <doc xml:space="preserve">index to modify</doc>
  30638. <type name="guint" c:type="guint"/>
  30639. </parameter>
  30640. <parameter name="pool"
  30641. transfer-ownership="none"
  30642. nullable="1"
  30643. allow-none="1">
  30644. <doc xml:space="preserve">the #GstBufferPool</doc>
  30645. <type name="BufferPool" c:type="GstBufferPool*"/>
  30646. </parameter>
  30647. <parameter name="size" transfer-ownership="none">
  30648. <doc xml:space="preserve">the size</doc>
  30649. <type name="guint" c:type="guint"/>
  30650. </parameter>
  30651. <parameter name="min_buffers" transfer-ownership="none">
  30652. <doc xml:space="preserve">the min buffers</doc>
  30653. <type name="guint" c:type="guint"/>
  30654. </parameter>
  30655. <parameter name="max_buffers" transfer-ownership="none">
  30656. <doc xml:space="preserve">the max buffers</doc>
  30657. <type name="guint" c:type="guint"/>
  30658. </parameter>
  30659. </parameters>
  30660. </method>
  30661. <method name="set_position" c:identifier="gst_query_set_position">
  30662. <doc xml:space="preserve">Answer a position query by setting the requested value in the given format.</doc>
  30663. <return-value transfer-ownership="none">
  30664. <type name="none" c:type="void"/>
  30665. </return-value>
  30666. <parameters>
  30667. <instance-parameter name="query" transfer-ownership="none">
  30668. <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_POSITION</doc>
  30669. <type name="Query" c:type="GstQuery*"/>
  30670. </instance-parameter>
  30671. <parameter name="format" transfer-ownership="none">
  30672. <doc xml:space="preserve">the requested #GstFormat</doc>
  30673. <type name="Format" c:type="GstFormat"/>
  30674. </parameter>
  30675. <parameter name="cur" transfer-ownership="none">
  30676. <doc xml:space="preserve">the position to set</doc>
  30677. <type name="gint64" c:type="gint64"/>
  30678. </parameter>
  30679. </parameters>
  30680. </method>
  30681. <method name="set_scheduling" c:identifier="gst_query_set_scheduling">
  30682. <doc xml:space="preserve">Set the scheduling properties.</doc>
  30683. <return-value transfer-ownership="none">
  30684. <type name="none" c:type="void"/>
  30685. </return-value>
  30686. <parameters>
  30687. <instance-parameter name="query" transfer-ownership="none">
  30688. <doc xml:space="preserve">A valid #GstQuery of type GST_QUERY_SCHEDULING.</doc>
  30689. <type name="Query" c:type="GstQuery*"/>
  30690. </instance-parameter>
  30691. <parameter name="flags" transfer-ownership="none">
  30692. <doc xml:space="preserve">#GstSchedulingFlags</doc>
  30693. <type name="SchedulingFlags" c:type="GstSchedulingFlags"/>
  30694. </parameter>
  30695. <parameter name="minsize" transfer-ownership="none">
  30696. <doc xml:space="preserve">the suggested minimum size of pull requests</doc>
  30697. <type name="gint" c:type="gint"/>
  30698. </parameter>
  30699. <parameter name="maxsize" transfer-ownership="none">
  30700. <doc xml:space="preserve">the suggested maximum size of pull requests</doc>
  30701. <type name="gint" c:type="gint"/>
  30702. </parameter>
  30703. <parameter name="align" transfer-ownership="none">
  30704. <doc xml:space="preserve">the suggested alignment of pull requests</doc>
  30705. <type name="gint" c:type="gint"/>
  30706. </parameter>
  30707. </parameters>
  30708. </method>
  30709. <method name="set_seeking" c:identifier="gst_query_set_seeking">
  30710. <doc xml:space="preserve">Set the seeking query result fields in @query.</doc>
  30711. <return-value transfer-ownership="none">
  30712. <type name="none" c:type="void"/>
  30713. </return-value>
  30714. <parameters>
  30715. <instance-parameter name="query" transfer-ownership="none">
  30716. <doc xml:space="preserve">a #GstQuery</doc>
  30717. <type name="Query" c:type="GstQuery*"/>
  30718. </instance-parameter>
  30719. <parameter name="format" transfer-ownership="none">
  30720. <doc xml:space="preserve">the format to set for the @segment_start and @segment_end values</doc>
  30721. <type name="Format" c:type="GstFormat"/>
  30722. </parameter>
  30723. <parameter name="seekable" transfer-ownership="none">
  30724. <doc xml:space="preserve">the seekable flag to set</doc>
  30725. <type name="gboolean" c:type="gboolean"/>
  30726. </parameter>
  30727. <parameter name="segment_start" transfer-ownership="none">
  30728. <doc xml:space="preserve">the segment_start to set</doc>
  30729. <type name="gint64" c:type="gint64"/>
  30730. </parameter>
  30731. <parameter name="segment_end" transfer-ownership="none">
  30732. <doc xml:space="preserve">the segment_end to set</doc>
  30733. <type name="gint64" c:type="gint64"/>
  30734. </parameter>
  30735. </parameters>
  30736. </method>
  30737. <method name="set_segment" c:identifier="gst_query_set_segment">
  30738. <doc xml:space="preserve">Answer a segment query by setting the requested values. The normal
  30739. playback segment of a pipeline is 0 to duration at the default rate of
  30740. 1.0. If a seek was performed on the pipeline to play a different
  30741. segment, this query will return the range specified in the last seek.
  30742. @start_value and @stop_value will respectively contain the configured
  30743. playback range start and stop values expressed in @format.
  30744. The values are always between 0 and the duration of the media and
  30745. @start_value &lt;= @stop_value. @rate will contain the playback rate. For
  30746. negative rates, playback will actually happen from @stop_value to
  30747. @start_value.</doc>
  30748. <return-value transfer-ownership="none">
  30749. <type name="none" c:type="void"/>
  30750. </return-value>
  30751. <parameters>
  30752. <instance-parameter name="query" transfer-ownership="none">
  30753. <doc xml:space="preserve">a #GstQuery</doc>
  30754. <type name="Query" c:type="GstQuery*"/>
  30755. </instance-parameter>
  30756. <parameter name="rate" transfer-ownership="none">
  30757. <doc xml:space="preserve">the rate of the segment</doc>
  30758. <type name="gdouble" c:type="gdouble"/>
  30759. </parameter>
  30760. <parameter name="format" transfer-ownership="none">
  30761. <doc xml:space="preserve">the #GstFormat of the segment values (@start_value and @stop_value)</doc>
  30762. <type name="Format" c:type="GstFormat"/>
  30763. </parameter>
  30764. <parameter name="start_value" transfer-ownership="none">
  30765. <doc xml:space="preserve">the start value</doc>
  30766. <type name="gint64" c:type="gint64"/>
  30767. </parameter>
  30768. <parameter name="stop_value" transfer-ownership="none">
  30769. <doc xml:space="preserve">the stop value</doc>
  30770. <type name="gint64" c:type="gint64"/>
  30771. </parameter>
  30772. </parameters>
  30773. </method>
  30774. <method name="set_uri" c:identifier="gst_query_set_uri">
  30775. <doc xml:space="preserve">Answer a URI query by setting the requested URI.</doc>
  30776. <return-value transfer-ownership="none">
  30777. <type name="none" c:type="void"/>
  30778. </return-value>
  30779. <parameters>
  30780. <instance-parameter name="query" transfer-ownership="none">
  30781. <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_URI</doc>
  30782. <type name="Query" c:type="GstQuery*"/>
  30783. </instance-parameter>
  30784. <parameter name="uri" transfer-ownership="none">
  30785. <doc xml:space="preserve">the URI to set</doc>
  30786. <type name="utf8" c:type="const gchar*"/>
  30787. </parameter>
  30788. </parameters>
  30789. </method>
  30790. <method name="set_uri_redirection"
  30791. c:identifier="gst_query_set_uri_redirection"
  30792. version="1.2">
  30793. <doc xml:space="preserve">Answer a URI query by setting the requested URI redirection.</doc>
  30794. <return-value transfer-ownership="none">
  30795. <type name="none" c:type="void"/>
  30796. </return-value>
  30797. <parameters>
  30798. <instance-parameter name="query" transfer-ownership="none">
  30799. <doc xml:space="preserve">a #GstQuery with query type GST_QUERY_URI</doc>
  30800. <type name="Query" c:type="GstQuery*"/>
  30801. </instance-parameter>
  30802. <parameter name="uri" transfer-ownership="none">
  30803. <doc xml:space="preserve">the URI to set</doc>
  30804. <type name="utf8" c:type="const gchar*"/>
  30805. </parameter>
  30806. </parameters>
  30807. </method>
  30808. <method name="set_uri_redirection_permanent"
  30809. c:identifier="gst_query_set_uri_redirection_permanent"
  30810. version="1.4">
  30811. <doc xml:space="preserve">Answer a URI query by setting the requested URI redirection
  30812. to permanent or not.</doc>
  30813. <return-value transfer-ownership="none">
  30814. <type name="none" c:type="void"/>
  30815. </return-value>
  30816. <parameters>
  30817. <instance-parameter name="query" transfer-ownership="none">
  30818. <doc xml:space="preserve">a #GstQuery with query type %GST_QUERY_URI</doc>
  30819. <type name="Query" c:type="GstQuery*"/>
  30820. </instance-parameter>
  30821. <parameter name="permanent" transfer-ownership="none">
  30822. <doc xml:space="preserve">whether the redirect is permanent or not</doc>
  30823. <type name="gboolean" c:type="gboolean"/>
  30824. </parameter>
  30825. </parameters>
  30826. </method>
  30827. <method name="writable_structure"
  30828. c:identifier="gst_query_writable_structure">
  30829. <doc xml:space="preserve">Get the structure of a query. This method should be called with a writable
  30830. @query so that the returned structure is guaranteed to be writable.</doc>
  30831. <return-value transfer-ownership="none">
  30832. <doc xml:space="preserve">the #GstStructure of the query. The structure is
  30833. still owned by the query and will therefore be freed when the query
  30834. is unreffed.</doc>
  30835. <type name="Structure" c:type="GstStructure*"/>
  30836. </return-value>
  30837. <parameters>
  30838. <instance-parameter name="query" transfer-ownership="none">
  30839. <doc xml:space="preserve">a #GstQuery</doc>
  30840. <type name="Query" c:type="GstQuery*"/>
  30841. </instance-parameter>
  30842. </parameters>
  30843. </method>
  30844. </record>
  30845. <enumeration name="QueryType"
  30846. glib:type-name="GstQueryType"
  30847. glib:get-type="gst_query_type_get_type"
  30848. c:type="GstQueryType">
  30849. <doc xml:space="preserve">Standard predefined Query types</doc>
  30850. <member name="unknown"
  30851. value="0"
  30852. c:identifier="GST_QUERY_UNKNOWN"
  30853. glib:nick="unknown">
  30854. <doc xml:space="preserve">unknown query type</doc>
  30855. </member>
  30856. <member name="position"
  30857. value="2563"
  30858. c:identifier="GST_QUERY_POSITION"
  30859. glib:nick="position">
  30860. <doc xml:space="preserve">current position in stream</doc>
  30861. </member>
  30862. <member name="duration"
  30863. value="5123"
  30864. c:identifier="GST_QUERY_DURATION"
  30865. glib:nick="duration">
  30866. <doc xml:space="preserve">total duration of the stream</doc>
  30867. </member>
  30868. <member name="latency"
  30869. value="7683"
  30870. c:identifier="GST_QUERY_LATENCY"
  30871. glib:nick="latency">
  30872. <doc xml:space="preserve">latency of stream</doc>
  30873. </member>
  30874. <member name="jitter"
  30875. value="10243"
  30876. c:identifier="GST_QUERY_JITTER"
  30877. glib:nick="jitter">
  30878. <doc xml:space="preserve">current jitter of stream</doc>
  30879. </member>
  30880. <member name="rate"
  30881. value="12803"
  30882. c:identifier="GST_QUERY_RATE"
  30883. glib:nick="rate">
  30884. <doc xml:space="preserve">current rate of the stream</doc>
  30885. </member>
  30886. <member name="seeking"
  30887. value="15363"
  30888. c:identifier="GST_QUERY_SEEKING"
  30889. glib:nick="seeking">
  30890. <doc xml:space="preserve">seeking capabilities</doc>
  30891. </member>
  30892. <member name="segment"
  30893. value="17923"
  30894. c:identifier="GST_QUERY_SEGMENT"
  30895. glib:nick="segment">
  30896. <doc xml:space="preserve">segment start/stop positions</doc>
  30897. </member>
  30898. <member name="convert"
  30899. value="20483"
  30900. c:identifier="GST_QUERY_CONVERT"
  30901. glib:nick="convert">
  30902. <doc xml:space="preserve">convert values between formats</doc>
  30903. </member>
  30904. <member name="formats"
  30905. value="23043"
  30906. c:identifier="GST_QUERY_FORMATS"
  30907. glib:nick="formats">
  30908. <doc xml:space="preserve">query supported formats for convert</doc>
  30909. </member>
  30910. <member name="buffering"
  30911. value="28163"
  30912. c:identifier="GST_QUERY_BUFFERING"
  30913. glib:nick="buffering">
  30914. <doc xml:space="preserve">query available media for efficient seeking.</doc>
  30915. </member>
  30916. <member name="custom"
  30917. value="30723"
  30918. c:identifier="GST_QUERY_CUSTOM"
  30919. glib:nick="custom">
  30920. <doc xml:space="preserve">a custom application or element defined query.</doc>
  30921. </member>
  30922. <member name="uri"
  30923. value="33283"
  30924. c:identifier="GST_QUERY_URI"
  30925. glib:nick="uri">
  30926. <doc xml:space="preserve">query the URI of the source or sink.</doc>
  30927. </member>
  30928. <member name="allocation"
  30929. value="35846"
  30930. c:identifier="GST_QUERY_ALLOCATION"
  30931. glib:nick="allocation">
  30932. <doc xml:space="preserve">the buffer allocation properties</doc>
  30933. </member>
  30934. <member name="scheduling"
  30935. value="38401"
  30936. c:identifier="GST_QUERY_SCHEDULING"
  30937. glib:nick="scheduling">
  30938. <doc xml:space="preserve">the scheduling properties</doc>
  30939. </member>
  30940. <member name="accept_caps"
  30941. value="40963"
  30942. c:identifier="GST_QUERY_ACCEPT_CAPS"
  30943. glib:nick="accept-caps">
  30944. <doc xml:space="preserve">the accept caps query</doc>
  30945. </member>
  30946. <member name="caps"
  30947. value="43523"
  30948. c:identifier="GST_QUERY_CAPS"
  30949. glib:nick="caps">
  30950. <doc xml:space="preserve">the caps query</doc>
  30951. </member>
  30952. <member name="drain"
  30953. value="46086"
  30954. c:identifier="GST_QUERY_DRAIN"
  30955. glib:nick="drain">
  30956. <doc xml:space="preserve">wait till all serialized data is consumed downstream</doc>
  30957. </member>
  30958. <member name="context"
  30959. value="48643"
  30960. c:identifier="GST_QUERY_CONTEXT"
  30961. glib:nick="context">
  30962. <doc xml:space="preserve">query the pipeline-local context from
  30963. downstream or upstream (since 1.2)</doc>
  30964. </member>
  30965. <function name="get_flags" c:identifier="gst_query_type_get_flags">
  30966. <doc xml:space="preserve">Gets the #GstQueryTypeFlags associated with @type.</doc>
  30967. <return-value transfer-ownership="none">
  30968. <doc xml:space="preserve">a #GstQueryTypeFlags.</doc>
  30969. <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/>
  30970. </return-value>
  30971. <parameters>
  30972. <parameter name="type" transfer-ownership="none">
  30973. <doc xml:space="preserve">a #GstQueryType</doc>
  30974. <type name="QueryType" c:type="GstQueryType"/>
  30975. </parameter>
  30976. </parameters>
  30977. </function>
  30978. <function name="get_name" c:identifier="gst_query_type_get_name">
  30979. <doc xml:space="preserve">Get a printable name for the given query type. Do not modify or free.</doc>
  30980. <return-value transfer-ownership="none">
  30981. <doc xml:space="preserve">a reference to the static name of the query.</doc>
  30982. <type name="utf8" c:type="const gchar*"/>
  30983. </return-value>
  30984. <parameters>
  30985. <parameter name="type" transfer-ownership="none">
  30986. <doc xml:space="preserve">the query type</doc>
  30987. <type name="QueryType" c:type="GstQueryType"/>
  30988. </parameter>
  30989. </parameters>
  30990. </function>
  30991. <function name="to_quark" c:identifier="gst_query_type_to_quark">
  30992. <doc xml:space="preserve">Get the unique quark for the given query type.</doc>
  30993. <return-value transfer-ownership="none">
  30994. <doc xml:space="preserve">the quark associated with the query type</doc>
  30995. <type name="GLib.Quark" c:type="GQuark"/>
  30996. </return-value>
  30997. <parameters>
  30998. <parameter name="type" transfer-ownership="none">
  30999. <doc xml:space="preserve">the query type</doc>
  31000. <type name="QueryType" c:type="GstQueryType"/>
  31001. </parameter>
  31002. </parameters>
  31003. </function>
  31004. </enumeration>
  31005. <bitfield name="QueryTypeFlags"
  31006. glib:type-name="GstQueryTypeFlags"
  31007. glib:get-type="gst_query_type_flags_get_type"
  31008. c:type="GstQueryTypeFlags">
  31009. <doc xml:space="preserve">#GstQueryTypeFlags indicate the aspects of the different #GstQueryType
  31010. values. You can get the type flags of a #GstQueryType with the
  31011. gst_query_type_get_flags() function.</doc>
  31012. <member name="upstream"
  31013. value="1"
  31014. c:identifier="GST_QUERY_TYPE_UPSTREAM"
  31015. glib:nick="upstream">
  31016. <doc xml:space="preserve">Set if the query can travel upstream.</doc>
  31017. </member>
  31018. <member name="downstream"
  31019. value="2"
  31020. c:identifier="GST_QUERY_TYPE_DOWNSTREAM"
  31021. glib:nick="downstream">
  31022. <doc xml:space="preserve">Set if the query can travel downstream.</doc>
  31023. </member>
  31024. <member name="serialized"
  31025. value="4"
  31026. c:identifier="GST_QUERY_TYPE_SERIALIZED"
  31027. glib:nick="serialized">
  31028. <doc xml:space="preserve">Set if the query should be serialized with data
  31029. flow.</doc>
  31030. </member>
  31031. </bitfield>
  31032. <enumeration name="Rank"
  31033. glib:type-name="GstRank"
  31034. glib:get-type="gst_rank_get_type"
  31035. c:type="GstRank">
  31036. <doc xml:space="preserve">Element priority ranks. Defines the order in which the autoplugger (or
  31037. similar rank-picking mechanisms, such as e.g. gst_element_make_from_uri())
  31038. will choose this element over an alternative one with the same function.
  31039. These constants serve as a rough guidance for defining the rank of a
  31040. #GstPluginFeature. Any value is valid, including values bigger than
  31041. @GST_RANK_PRIMARY.</doc>
  31042. <member name="none"
  31043. value="0"
  31044. c:identifier="GST_RANK_NONE"
  31045. glib:nick="none">
  31046. <doc xml:space="preserve">will be chosen last or not at all</doc>
  31047. </member>
  31048. <member name="marginal"
  31049. value="64"
  31050. c:identifier="GST_RANK_MARGINAL"
  31051. glib:nick="marginal">
  31052. <doc xml:space="preserve">unlikely to be chosen</doc>
  31053. </member>
  31054. <member name="secondary"
  31055. value="128"
  31056. c:identifier="GST_RANK_SECONDARY"
  31057. glib:nick="secondary">
  31058. <doc xml:space="preserve">likely to be chosen</doc>
  31059. </member>
  31060. <member name="primary"
  31061. value="256"
  31062. c:identifier="GST_RANK_PRIMARY"
  31063. glib:nick="primary">
  31064. <doc xml:space="preserve">will be chosen first</doc>
  31065. </member>
  31066. </enumeration>
  31067. <class name="Registry"
  31068. c:symbol-prefix="registry"
  31069. c:type="GstRegistry"
  31070. parent="Object"
  31071. glib:type-name="GstRegistry"
  31072. glib:get-type="gst_registry_get_type"
  31073. glib:type-struct="RegistryClass">
  31074. <doc xml:space="preserve">One registry holds the metadata of a set of plugins.
  31075. &lt;emphasis role="bold"&gt;Design:&lt;/emphasis&gt;
  31076. The #GstRegistry object is a list of plugins and some functions for dealing
  31077. with them. Each #GstPlugin is matched 1-1 with a file on disk, and may or may
  31078. not be loaded at a given time.
  31079. The primary source, at all times, of plugin information is each plugin file
  31080. itself. Thus, if an application wants information about a particular plugin,
  31081. or wants to search for a feature that satisfies given criteria, the primary
  31082. means of doing so is to load every plugin and look at the resulting
  31083. information that is gathered in the default registry. Clearly, this is a time
  31084. consuming process, so we cache information in the registry file. The format
  31085. and location of the cache file is internal to gstreamer.
  31086. On startup, plugins are searched for in the plugin search path. The following
  31087. locations are checked in this order:
  31088. &lt;itemizedlist&gt;
  31089. &lt;listitem&gt;
  31090. &lt;para&gt;location from --gst-plugin-path commandline option.&lt;/para&gt;
  31091. &lt;/listitem&gt;
  31092. &lt;listitem&gt;
  31093. &lt;para&gt;the GST_PLUGIN_PATH environment variable.&lt;/para&gt;
  31094. &lt;/listitem&gt;
  31095. &lt;listitem&gt;
  31096. &lt;para&gt;the GST_PLUGIN_SYSTEM_PATH environment variable.&lt;/para&gt;
  31097. &lt;/listitem&gt;
  31098. &lt;listitem&gt;
  31099. &lt;para&gt;default locations (if GST_PLUGIN_SYSTEM_PATH is not set). Those
  31100. default locations are:
  31101. &lt;filename&gt;$XDG_DATA_HOME/gstreamer-$GST_API_VERSION/plugins/&lt;/filename&gt;
  31102. and &lt;filename&gt;$prefix/libs/gstreamer-$GST_API_VERSION/&lt;/filename&gt;.
  31103. &lt;ulink url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html"&gt;
  31104. &lt;filename&gt;$XDG_DATA_HOME&lt;/filename&gt;&lt;/ulink&gt; defaults to
  31105. &lt;filename&gt;$HOME/.local/share&lt;/filename&gt;.
  31106. &lt;/para&gt;
  31107. &lt;/listitem&gt;
  31108. &lt;/itemizedlist&gt;
  31109. The registry cache file is loaded from
  31110. &lt;filename&gt;$XDG_CACHE_HOME/gstreamer-$GST_API_VERSION/registry-$ARCH.bin&lt;/filename&gt;
  31111. (where
  31112. &lt;ulink url="http://standards.freedesktop.org/basedir-spec/basedir-spec-latest.html"&gt;
  31113. &lt;filename&gt;$XDG_CACHE_HOME&lt;/filename&gt;&lt;/ulink&gt; defaults to
  31114. &lt;filename&gt;$HOME/.cache&lt;/filename&gt;) or the file listed in the GST_REGISTRY
  31115. env var. One reason to change the registry location is for testing.
  31116. For each plugin that is found in the plugin search path, there could be 3
  31117. possibilities for cached information:
  31118. &lt;itemizedlist&gt;
  31119. &lt;listitem&gt;
  31120. &lt;para&gt;the cache may not contain information about a given file.&lt;/para&gt;
  31121. &lt;/listitem&gt;
  31122. &lt;listitem&gt;
  31123. &lt;para&gt;the cache may have stale information.&lt;/para&gt;
  31124. &lt;/listitem&gt;
  31125. &lt;listitem&gt;
  31126. &lt;para&gt;the cache may have current information.&lt;/para&gt;
  31127. &lt;/listitem&gt;
  31128. &lt;/itemizedlist&gt;
  31129. In the first two cases, the plugin is loaded and the cache updated. In
  31130. addition to these cases, the cache may have entries for plugins that are not
  31131. relevant to the current process. These are marked as not available to the
  31132. current process. If the cache is updated for whatever reason, it is marked
  31133. dirty.
  31134. A dirty cache is written out at the end of initialization. Each entry is
  31135. checked to make sure the information is minimally valid. If not, the entry is
  31136. simply dropped.
  31137. &lt;emphasis role="bold"&gt;Implementation notes:&lt;/emphasis&gt;
  31138. The "cache" and "registry" are different concepts and can represent
  31139. different sets of plugins. For various reasons, at init time, the cache is
  31140. stored in the default registry, and plugins not relevant to the current
  31141. process are marked with the %GST_PLUGIN_FLAG_CACHED bit. These plugins are
  31142. removed at the end of initialization.</doc>
  31143. <function name="fork_is_enabled"
  31144. c:identifier="gst_registry_fork_is_enabled">
  31145. <doc xml:space="preserve">By default GStreamer will perform scanning and rebuilding of the
  31146. registry file using a helper child process.
  31147. Applications might want to disable this behaviour with the
  31148. gst_registry_fork_set_enabled() function, in which case new plugins
  31149. are scanned (and loaded) into the application process.</doc>
  31150. <return-value transfer-ownership="none">
  31151. <doc xml:space="preserve">%TRUE if GStreamer will use the child helper process when
  31152. rebuilding the registry.</doc>
  31153. <type name="gboolean" c:type="gboolean"/>
  31154. </return-value>
  31155. </function>
  31156. <function name="fork_set_enabled"
  31157. c:identifier="gst_registry_fork_set_enabled">
  31158. <doc xml:space="preserve">Applications might want to disable/enable spawning of a child helper process
  31159. when rebuilding the registry. See gst_registry_fork_is_enabled() for more
  31160. information.</doc>
  31161. <return-value transfer-ownership="none">
  31162. <type name="none" c:type="void"/>
  31163. </return-value>
  31164. <parameters>
  31165. <parameter name="enabled" transfer-ownership="none">
  31166. <doc xml:space="preserve">whether rebuilding the registry can use a temporary child helper process.</doc>
  31167. <type name="gboolean" c:type="gboolean"/>
  31168. </parameter>
  31169. </parameters>
  31170. </function>
  31171. <function name="get" c:identifier="gst_registry_get">
  31172. <doc xml:space="preserve">Retrieves the singleton plugin registry. The caller does not own a
  31173. reference on the registry, as it is alive as long as GStreamer is
  31174. initialized.</doc>
  31175. <return-value transfer-ownership="none">
  31176. <doc xml:space="preserve">the #GstRegistry.</doc>
  31177. <type name="Registry" c:type="GstRegistry*"/>
  31178. </return-value>
  31179. </function>
  31180. <method name="add_feature" c:identifier="gst_registry_add_feature">
  31181. <doc xml:space="preserve">Add the feature to the registry. The feature-added signal will be emitted.
  31182. This function sinks @feature.</doc>
  31183. <return-value transfer-ownership="none">
  31184. <doc xml:space="preserve">%TRUE on success.
  31185. MT safe.</doc>
  31186. <type name="gboolean" c:type="gboolean"/>
  31187. </return-value>
  31188. <parameters>
  31189. <instance-parameter name="registry" transfer-ownership="none">
  31190. <doc xml:space="preserve">the registry to add the plugin to</doc>
  31191. <type name="Registry" c:type="GstRegistry*"/>
  31192. </instance-parameter>
  31193. <parameter name="feature" transfer-ownership="full">
  31194. <doc xml:space="preserve">the feature to add</doc>
  31195. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  31196. </parameter>
  31197. </parameters>
  31198. </method>
  31199. <method name="add_plugin" c:identifier="gst_registry_add_plugin">
  31200. <doc xml:space="preserve">Add the plugin to the registry. The plugin-added signal will be emitted.
  31201. This function will sink @plugin.</doc>
  31202. <return-value transfer-ownership="none">
  31203. <doc xml:space="preserve">%TRUE on success.
  31204. MT safe.</doc>
  31205. <type name="gboolean" c:type="gboolean"/>
  31206. </return-value>
  31207. <parameters>
  31208. <instance-parameter name="registry" transfer-ownership="none">
  31209. <doc xml:space="preserve">the registry to add the plugin to</doc>
  31210. <type name="Registry" c:type="GstRegistry*"/>
  31211. </instance-parameter>
  31212. <parameter name="plugin" transfer-ownership="full">
  31213. <doc xml:space="preserve">the plugin to add</doc>
  31214. <type name="Plugin" c:type="GstPlugin*"/>
  31215. </parameter>
  31216. </parameters>
  31217. </method>
  31218. <method name="check_feature_version"
  31219. c:identifier="gst_registry_check_feature_version">
  31220. <doc xml:space="preserve">Checks whether a plugin feature by the given name exists in
  31221. @registry and whether its version is at least the
  31222. version required.</doc>
  31223. <return-value transfer-ownership="none">
  31224. <doc xml:space="preserve">%TRUE if the feature could be found and the version is
  31225. the same as the required version or newer, and %FALSE otherwise.</doc>
  31226. <type name="gboolean" c:type="gboolean"/>
  31227. </return-value>
  31228. <parameters>
  31229. <instance-parameter name="registry" transfer-ownership="none">
  31230. <doc xml:space="preserve">a #GstRegistry</doc>
  31231. <type name="Registry" c:type="GstRegistry*"/>
  31232. </instance-parameter>
  31233. <parameter name="feature_name" transfer-ownership="none">
  31234. <doc xml:space="preserve">the name of the feature (e.g. "oggdemux")</doc>
  31235. <type name="utf8" c:type="const gchar*"/>
  31236. </parameter>
  31237. <parameter name="min_major" transfer-ownership="none">
  31238. <doc xml:space="preserve">the minimum major version number</doc>
  31239. <type name="guint" c:type="guint"/>
  31240. </parameter>
  31241. <parameter name="min_minor" transfer-ownership="none">
  31242. <doc xml:space="preserve">the minimum minor version number</doc>
  31243. <type name="guint" c:type="guint"/>
  31244. </parameter>
  31245. <parameter name="min_micro" transfer-ownership="none">
  31246. <doc xml:space="preserve">the minimum micro version number</doc>
  31247. <type name="guint" c:type="guint"/>
  31248. </parameter>
  31249. </parameters>
  31250. </method>
  31251. <method name="feature_filter" c:identifier="gst_registry_feature_filter">
  31252. <doc xml:space="preserve">Runs a filter against all features of the plugins in the registry
  31253. and returns a GList with the results.
  31254. If the first flag is set, only the first match is
  31255. returned (as a list with a single object).</doc>
  31256. <return-value transfer-ownership="full">
  31257. <doc xml:space="preserve">a #GList of
  31258. #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.
  31259. MT safe.</doc>
  31260. <type name="GLib.List" c:type="GList*">
  31261. <type name="PluginFeature"/>
  31262. </type>
  31263. </return-value>
  31264. <parameters>
  31265. <instance-parameter name="registry" transfer-ownership="none">
  31266. <doc xml:space="preserve">registry to query</doc>
  31267. <type name="Registry" c:type="GstRegistry*"/>
  31268. </instance-parameter>
  31269. <parameter name="filter"
  31270. transfer-ownership="none"
  31271. scope="call"
  31272. closure="2">
  31273. <doc xml:space="preserve">the filter to use</doc>
  31274. <type name="PluginFeatureFilter" c:type="GstPluginFeatureFilter"/>
  31275. </parameter>
  31276. <parameter name="first" transfer-ownership="none">
  31277. <doc xml:space="preserve">only return first match</doc>
  31278. <type name="gboolean" c:type="gboolean"/>
  31279. </parameter>
  31280. <parameter name="user_data"
  31281. transfer-ownership="none"
  31282. nullable="1"
  31283. allow-none="1">
  31284. <doc xml:space="preserve">user data passed to the filter function</doc>
  31285. <type name="gpointer" c:type="gpointer"/>
  31286. </parameter>
  31287. </parameters>
  31288. </method>
  31289. <method name="find_feature" c:identifier="gst_registry_find_feature">
  31290. <doc xml:space="preserve">Find the pluginfeature with the given name and type in the registry.</doc>
  31291. <return-value transfer-ownership="full" nullable="1">
  31292. <doc xml:space="preserve">the pluginfeature with the
  31293. given name and type or %NULL if the plugin was not
  31294. found. gst_object_unref() after usage.
  31295. MT safe.</doc>
  31296. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  31297. </return-value>
  31298. <parameters>
  31299. <instance-parameter name="registry" transfer-ownership="none">
  31300. <doc xml:space="preserve">the registry to search</doc>
  31301. <type name="Registry" c:type="GstRegistry*"/>
  31302. </instance-parameter>
  31303. <parameter name="name" transfer-ownership="none">
  31304. <doc xml:space="preserve">the pluginfeature name to find</doc>
  31305. <type name="utf8" c:type="const gchar*"/>
  31306. </parameter>
  31307. <parameter name="type" transfer-ownership="none">
  31308. <doc xml:space="preserve">the pluginfeature type to find</doc>
  31309. <type name="GType" c:type="GType"/>
  31310. </parameter>
  31311. </parameters>
  31312. </method>
  31313. <method name="find_plugin" c:identifier="gst_registry_find_plugin">
  31314. <doc xml:space="preserve">Find the plugin with the given name in the registry.
  31315. The plugin will be reffed; caller is responsible for unreffing.</doc>
  31316. <return-value transfer-ownership="full" nullable="1">
  31317. <doc xml:space="preserve">the plugin with the given name
  31318. or %NULL if the plugin was not found. gst_object_unref() after
  31319. usage.
  31320. MT safe.</doc>
  31321. <type name="Plugin" c:type="GstPlugin*"/>
  31322. </return-value>
  31323. <parameters>
  31324. <instance-parameter name="registry" transfer-ownership="none">
  31325. <doc xml:space="preserve">the registry to search</doc>
  31326. <type name="Registry" c:type="GstRegistry*"/>
  31327. </instance-parameter>
  31328. <parameter name="name" transfer-ownership="none">
  31329. <doc xml:space="preserve">the plugin name to find</doc>
  31330. <type name="utf8" c:type="const gchar*"/>
  31331. </parameter>
  31332. </parameters>
  31333. </method>
  31334. <method name="get_feature_list"
  31335. c:identifier="gst_registry_get_feature_list">
  31336. <doc xml:space="preserve">Retrieves a #GList of #GstPluginFeature of @type.</doc>
  31337. <return-value transfer-ownership="full">
  31338. <doc xml:space="preserve">a #GList of
  31339. #GstPluginFeature of @type. Use gst_plugin_feature_list_free() after use
  31340. MT safe.</doc>
  31341. <type name="GLib.List" c:type="GList*">
  31342. <type name="PluginFeature"/>
  31343. </type>
  31344. </return-value>
  31345. <parameters>
  31346. <instance-parameter name="registry" transfer-ownership="none">
  31347. <doc xml:space="preserve">a #GstRegistry</doc>
  31348. <type name="Registry" c:type="GstRegistry*"/>
  31349. </instance-parameter>
  31350. <parameter name="type" transfer-ownership="none">
  31351. <doc xml:space="preserve">a #GType.</doc>
  31352. <type name="GType" c:type="GType"/>
  31353. </parameter>
  31354. </parameters>
  31355. </method>
  31356. <method name="get_feature_list_by_plugin"
  31357. c:identifier="gst_registry_get_feature_list_by_plugin">
  31358. <doc xml:space="preserve">Retrieves a #GList of features of the plugin with name @name.</doc>
  31359. <return-value transfer-ownership="full">
  31360. <doc xml:space="preserve">a #GList of
  31361. #GstPluginFeature. Use gst_plugin_feature_list_free() after usage.</doc>
  31362. <type name="GLib.List" c:type="GList*">
  31363. <type name="PluginFeature"/>
  31364. </type>
  31365. </return-value>
  31366. <parameters>
  31367. <instance-parameter name="registry" transfer-ownership="none">
  31368. <doc xml:space="preserve">a #GstRegistry.</doc>
  31369. <type name="Registry" c:type="GstRegistry*"/>
  31370. </instance-parameter>
  31371. <parameter name="name" transfer-ownership="none">
  31372. <doc xml:space="preserve">a plugin name.</doc>
  31373. <type name="utf8" c:type="const gchar*"/>
  31374. </parameter>
  31375. </parameters>
  31376. </method>
  31377. <method name="get_feature_list_cookie"
  31378. c:identifier="gst_registry_get_feature_list_cookie">
  31379. <doc xml:space="preserve">Returns the registry's feature list cookie. This changes
  31380. every time a feature is added or removed from the registry.</doc>
  31381. <return-value transfer-ownership="none">
  31382. <doc xml:space="preserve">the feature list cookie.</doc>
  31383. <type name="guint32" c:type="guint32"/>
  31384. </return-value>
  31385. <parameters>
  31386. <instance-parameter name="registry" transfer-ownership="none">
  31387. <doc xml:space="preserve">the registry</doc>
  31388. <type name="Registry" c:type="GstRegistry*"/>
  31389. </instance-parameter>
  31390. </parameters>
  31391. </method>
  31392. <method name="get_plugin_list"
  31393. c:identifier="gst_registry_get_plugin_list">
  31394. <doc xml:space="preserve">Get a copy of all plugins registered in the given registry. The refcount
  31395. of each element in the list in incremented.</doc>
  31396. <return-value transfer-ownership="full">
  31397. <doc xml:space="preserve">a #GList of #GstPlugin.
  31398. Use gst_plugin_list_free() after usage.
  31399. MT safe.</doc>
  31400. <type name="GLib.List" c:type="GList*">
  31401. <type name="Plugin"/>
  31402. </type>
  31403. </return-value>
  31404. <parameters>
  31405. <instance-parameter name="registry" transfer-ownership="none">
  31406. <doc xml:space="preserve">the registry to search</doc>
  31407. <type name="Registry" c:type="GstRegistry*"/>
  31408. </instance-parameter>
  31409. </parameters>
  31410. </method>
  31411. <method name="lookup" c:identifier="gst_registry_lookup">
  31412. <doc xml:space="preserve">Look up a plugin in the given registry with the given filename.
  31413. If found, plugin is reffed.</doc>
  31414. <return-value transfer-ownership="full" nullable="1">
  31415. <doc xml:space="preserve">the #GstPlugin if found, or
  31416. %NULL if not. gst_object_unref() after usage.</doc>
  31417. <type name="Plugin" c:type="GstPlugin*"/>
  31418. </return-value>
  31419. <parameters>
  31420. <instance-parameter name="registry" transfer-ownership="none">
  31421. <doc xml:space="preserve">the registry to look up in</doc>
  31422. <type name="Registry" c:type="GstRegistry*"/>
  31423. </instance-parameter>
  31424. <parameter name="filename" transfer-ownership="none">
  31425. <doc xml:space="preserve">the name of the file to look up</doc>
  31426. <type name="utf8" c:type="const char*"/>
  31427. </parameter>
  31428. </parameters>
  31429. </method>
  31430. <method name="lookup_feature" c:identifier="gst_registry_lookup_feature">
  31431. <doc xml:space="preserve">Find a #GstPluginFeature with @name in @registry.</doc>
  31432. <return-value transfer-ownership="full">
  31433. <doc xml:space="preserve">a #GstPluginFeature with its refcount incremented,
  31434. use gst_object_unref() after usage.
  31435. MT safe.</doc>
  31436. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  31437. </return-value>
  31438. <parameters>
  31439. <instance-parameter name="registry" transfer-ownership="none">
  31440. <doc xml:space="preserve">a #GstRegistry</doc>
  31441. <type name="Registry" c:type="GstRegistry*"/>
  31442. </instance-parameter>
  31443. <parameter name="name" transfer-ownership="none">
  31444. <doc xml:space="preserve">a #GstPluginFeature name</doc>
  31445. <type name="utf8" c:type="const char*"/>
  31446. </parameter>
  31447. </parameters>
  31448. </method>
  31449. <method name="plugin_filter" c:identifier="gst_registry_plugin_filter">
  31450. <doc xml:space="preserve">Runs a filter against all plugins in the registry and returns a #GList with
  31451. the results. If the first flag is set, only the first match is
  31452. returned (as a list with a single object).
  31453. Every plugin is reffed; use gst_plugin_list_free() after use, which
  31454. will unref again.</doc>
  31455. <return-value transfer-ownership="full">
  31456. <doc xml:space="preserve">a #GList of #GstPlugin.
  31457. Use gst_plugin_list_free() after usage.
  31458. MT safe.</doc>
  31459. <type name="GLib.List" c:type="GList*">
  31460. <type name="Plugin"/>
  31461. </type>
  31462. </return-value>
  31463. <parameters>
  31464. <instance-parameter name="registry" transfer-ownership="none">
  31465. <doc xml:space="preserve">registry to query</doc>
  31466. <type name="Registry" c:type="GstRegistry*"/>
  31467. </instance-parameter>
  31468. <parameter name="filter"
  31469. transfer-ownership="none"
  31470. scope="call"
  31471. closure="2">
  31472. <doc xml:space="preserve">the filter to use</doc>
  31473. <type name="PluginFilter" c:type="GstPluginFilter"/>
  31474. </parameter>
  31475. <parameter name="first" transfer-ownership="none">
  31476. <doc xml:space="preserve">only return first match</doc>
  31477. <type name="gboolean" c:type="gboolean"/>
  31478. </parameter>
  31479. <parameter name="user_data"
  31480. transfer-ownership="none"
  31481. nullable="1"
  31482. allow-none="1">
  31483. <doc xml:space="preserve">user data passed to the filter function</doc>
  31484. <type name="gpointer" c:type="gpointer"/>
  31485. </parameter>
  31486. </parameters>
  31487. </method>
  31488. <method name="remove_feature" c:identifier="gst_registry_remove_feature">
  31489. <doc xml:space="preserve">Remove the feature from the registry.
  31490. MT safe.</doc>
  31491. <return-value transfer-ownership="none">
  31492. <type name="none" c:type="void"/>
  31493. </return-value>
  31494. <parameters>
  31495. <instance-parameter name="registry" transfer-ownership="none">
  31496. <doc xml:space="preserve">the registry to remove the feature from</doc>
  31497. <type name="Registry" c:type="GstRegistry*"/>
  31498. </instance-parameter>
  31499. <parameter name="feature" transfer-ownership="none">
  31500. <doc xml:space="preserve">the feature to remove</doc>
  31501. <type name="PluginFeature" c:type="GstPluginFeature*"/>
  31502. </parameter>
  31503. </parameters>
  31504. </method>
  31505. <method name="remove_plugin" c:identifier="gst_registry_remove_plugin">
  31506. <doc xml:space="preserve">Remove the plugin from the registry.
  31507. MT safe.</doc>
  31508. <return-value transfer-ownership="none">
  31509. <type name="none" c:type="void"/>
  31510. </return-value>
  31511. <parameters>
  31512. <instance-parameter name="registry" transfer-ownership="none">
  31513. <doc xml:space="preserve">the registry to remove the plugin from</doc>
  31514. <type name="Registry" c:type="GstRegistry*"/>
  31515. </instance-parameter>
  31516. <parameter name="plugin" transfer-ownership="none">
  31517. <doc xml:space="preserve">the plugin to remove</doc>
  31518. <type name="Plugin" c:type="GstPlugin*"/>
  31519. </parameter>
  31520. </parameters>
  31521. </method>
  31522. <method name="scan_path" c:identifier="gst_registry_scan_path">
  31523. <doc xml:space="preserve">Scan the given path for plugins to add to the registry. The syntax of the
  31524. path is specific to the registry.</doc>
  31525. <return-value transfer-ownership="none">
  31526. <doc xml:space="preserve">%TRUE if registry changed</doc>
  31527. <type name="gboolean" c:type="gboolean"/>
  31528. </return-value>
  31529. <parameters>
  31530. <instance-parameter name="registry" transfer-ownership="none">
  31531. <doc xml:space="preserve">the registry to add found plugins to</doc>
  31532. <type name="Registry" c:type="GstRegistry*"/>
  31533. </instance-parameter>
  31534. <parameter name="path" transfer-ownership="none">
  31535. <doc xml:space="preserve">the path to scan</doc>
  31536. <type name="utf8" c:type="const gchar*"/>
  31537. </parameter>
  31538. </parameters>
  31539. </method>
  31540. <field name="object">
  31541. <type name="Object" c:type="GstObject"/>
  31542. </field>
  31543. <field name="priv" readable="0" private="1">
  31544. <type name="RegistryPrivate" c:type="GstRegistryPrivate*"/>
  31545. </field>
  31546. <glib:signal name="feature-added" when="last">
  31547. <doc xml:space="preserve">Signals that a feature has been added to the registry (possibly
  31548. replacing a previously-added one by the same name)</doc>
  31549. <return-value transfer-ownership="none">
  31550. <type name="none" c:type="void"/>
  31551. </return-value>
  31552. <parameters>
  31553. <parameter name="feature" transfer-ownership="none">
  31554. <doc xml:space="preserve">the feature that has been added</doc>
  31555. <type name="PluginFeature"/>
  31556. </parameter>
  31557. </parameters>
  31558. </glib:signal>
  31559. <glib:signal name="plugin-added" when="last">
  31560. <doc xml:space="preserve">Signals that a plugin has been added to the registry (possibly
  31561. replacing a previously-added one by the same name)</doc>
  31562. <return-value transfer-ownership="none">
  31563. <type name="none" c:type="void"/>
  31564. </return-value>
  31565. <parameters>
  31566. <parameter name="plugin" transfer-ownership="none">
  31567. <doc xml:space="preserve">the plugin that has been added</doc>
  31568. <type name="Plugin"/>
  31569. </parameter>
  31570. </parameters>
  31571. </glib:signal>
  31572. </class>
  31573. <record name="RegistryClass"
  31574. c:type="GstRegistryClass"
  31575. glib:is-gtype-struct-for="Registry">
  31576. <field name="parent_class">
  31577. <type name="ObjectClass" c:type="GstObjectClass"/>
  31578. </field>
  31579. </record>
  31580. <record name="RegistryPrivate" c:type="GstRegistryPrivate" disguised="1">
  31581. </record>
  31582. <enumeration name="ResourceError"
  31583. glib:type-name="GstResourceError"
  31584. glib:get-type="gst_resource_error_get_type"
  31585. c:type="GstResourceError"
  31586. glib:error-domain="gst-resource-error-quark">
  31587. <doc xml:space="preserve">Resource errors are for any resource used by an element:
  31588. memory, files, network connections, process space, ...
  31589. They're typically used by source and sink elements.</doc>
  31590. <member name="failed"
  31591. value="1"
  31592. c:identifier="GST_RESOURCE_ERROR_FAILED"
  31593. glib:nick="failed">
  31594. <doc xml:space="preserve">a general error which doesn't fit in any other
  31595. category. Make sure you add a custom message to the error call.</doc>
  31596. </member>
  31597. <member name="too_lazy"
  31598. value="2"
  31599. c:identifier="GST_RESOURCE_ERROR_TOO_LAZY"
  31600. glib:nick="too-lazy">
  31601. <doc xml:space="preserve">do not use this except as a placeholder for
  31602. deciding where to go while developing code.</doc>
  31603. </member>
  31604. <member name="not_found"
  31605. value="3"
  31606. c:identifier="GST_RESOURCE_ERROR_NOT_FOUND"
  31607. glib:nick="not-found">
  31608. <doc xml:space="preserve">used when the resource could not be found.</doc>
  31609. </member>
  31610. <member name="busy"
  31611. value="4"
  31612. c:identifier="GST_RESOURCE_ERROR_BUSY"
  31613. glib:nick="busy">
  31614. <doc xml:space="preserve">used when resource is busy.</doc>
  31615. </member>
  31616. <member name="open_read"
  31617. value="5"
  31618. c:identifier="GST_RESOURCE_ERROR_OPEN_READ"
  31619. glib:nick="open-read">
  31620. <doc xml:space="preserve">used when resource fails to open for reading.</doc>
  31621. </member>
  31622. <member name="open_write"
  31623. value="6"
  31624. c:identifier="GST_RESOURCE_ERROR_OPEN_WRITE"
  31625. glib:nick="open-write">
  31626. <doc xml:space="preserve">used when resource fails to open for writing.</doc>
  31627. </member>
  31628. <member name="open_read_write"
  31629. value="7"
  31630. c:identifier="GST_RESOURCE_ERROR_OPEN_READ_WRITE"
  31631. glib:nick="open-read-write">
  31632. <doc xml:space="preserve">used when resource cannot be opened for
  31633. both reading and writing, or either (but unspecified which).</doc>
  31634. </member>
  31635. <member name="close"
  31636. value="8"
  31637. c:identifier="GST_RESOURCE_ERROR_CLOSE"
  31638. glib:nick="close">
  31639. <doc xml:space="preserve">used when the resource can't be closed.</doc>
  31640. </member>
  31641. <member name="read"
  31642. value="9"
  31643. c:identifier="GST_RESOURCE_ERROR_READ"
  31644. glib:nick="read">
  31645. <doc xml:space="preserve">used when the resource can't be read from.</doc>
  31646. </member>
  31647. <member name="write"
  31648. value="10"
  31649. c:identifier="GST_RESOURCE_ERROR_WRITE"
  31650. glib:nick="write">
  31651. <doc xml:space="preserve">used when the resource can't be written to.</doc>
  31652. </member>
  31653. <member name="seek"
  31654. value="11"
  31655. c:identifier="GST_RESOURCE_ERROR_SEEK"
  31656. glib:nick="seek">
  31657. <doc xml:space="preserve">used when a seek on the resource fails.</doc>
  31658. </member>
  31659. <member name="sync"
  31660. value="12"
  31661. c:identifier="GST_RESOURCE_ERROR_SYNC"
  31662. glib:nick="sync">
  31663. <doc xml:space="preserve">used when a synchronize on the resource fails.</doc>
  31664. </member>
  31665. <member name="settings"
  31666. value="13"
  31667. c:identifier="GST_RESOURCE_ERROR_SETTINGS"
  31668. glib:nick="settings">
  31669. <doc xml:space="preserve">used when settings can't be manipulated on.</doc>
  31670. </member>
  31671. <member name="no_space_left"
  31672. value="14"
  31673. c:identifier="GST_RESOURCE_ERROR_NO_SPACE_LEFT"
  31674. glib:nick="no-space-left">
  31675. <doc xml:space="preserve">used when the resource has no space left.</doc>
  31676. </member>
  31677. <member name="not_authorized"
  31678. value="15"
  31679. c:identifier="GST_RESOURCE_ERROR_NOT_AUTHORIZED"
  31680. glib:nick="not-authorized">
  31681. <doc xml:space="preserve">used when the resource can't be opened
  31682. due to missing authorization.
  31683. (Since 1.2.4)</doc>
  31684. </member>
  31685. <member name="num_errors"
  31686. value="16"
  31687. c:identifier="GST_RESOURCE_ERROR_NUM_ERRORS"
  31688. glib:nick="num-errors">
  31689. <doc xml:space="preserve">the number of resource error types.</doc>
  31690. </member>
  31691. <function name="quark" c:identifier="gst_resource_error_quark">
  31692. <return-value transfer-ownership="none">
  31693. <type name="GLib.Quark" c:type="GQuark"/>
  31694. </return-value>
  31695. </function>
  31696. </enumeration>
  31697. <constant name="SECOND" value="1000000000" c:type="GST_SECOND">
  31698. <doc xml:space="preserve">Constant that defines one GStreamer second.</doc>
  31699. <type name="gint" c:type="gint"/>
  31700. </constant>
  31701. <constant name="SEGMENT_FORMAT" value="paB" c:type="GST_SEGMENT_FORMAT">
  31702. <doc xml:space="preserve">printf format type used to debug GStreamer segments.
  31703. This can only be used on pointers to GstSegment structures.</doc>
  31704. <type name="utf8" c:type="gchar*"/>
  31705. </constant>
  31706. <constant name="STIME_FORMAT"
  31707. value="c%"
  31708. c:type="GST_STIME_FORMAT"
  31709. version="1.6">
  31710. <doc xml:space="preserve">A string that can be used in printf-like format strings to display a signed
  31711. #GstClockTimeDiff or #gint64 value in h:m:s format. Use GST_TIME_ARGS() to
  31712. construct the matching arguments.
  31713. Example:
  31714. |[
  31715. printf("%" GST_STIME_FORMAT "\n", GST_STIME_ARGS(ts));
  31716. ]|</doc>
  31717. <type name="utf8" c:type="gchar*"/>
  31718. </constant>
  31719. <record name="Sample"
  31720. c:type="GstSample"
  31721. glib:type-name="GstSample"
  31722. glib:get-type="gst_sample_get_type"
  31723. c:symbol-prefix="sample">
  31724. <doc xml:space="preserve">A #GstSample is a small object containing data, a type, timing and
  31725. extra arbitrary information.</doc>
  31726. <constructor name="new" c:identifier="gst_sample_new">
  31727. <doc xml:space="preserve">Create a new #GstSample with the provided details.
  31728. Free-function: gst_sample_unref</doc>
  31729. <return-value transfer-ownership="full">
  31730. <doc xml:space="preserve">the new #GstSample. gst_sample_unref()
  31731. after usage.</doc>
  31732. <type name="Sample" c:type="GstSample*"/>
  31733. </return-value>
  31734. <parameters>
  31735. <parameter name="buffer"
  31736. transfer-ownership="none"
  31737. nullable="1"
  31738. allow-none="1">
  31739. <doc xml:space="preserve">a #GstBuffer, or %NULL</doc>
  31740. <type name="Buffer" c:type="GstBuffer*"/>
  31741. </parameter>
  31742. <parameter name="caps"
  31743. transfer-ownership="none"
  31744. nullable="1"
  31745. allow-none="1">
  31746. <doc xml:space="preserve">a #GstCaps, or %NULL</doc>
  31747. <type name="Caps" c:type="GstCaps*"/>
  31748. </parameter>
  31749. <parameter name="segment"
  31750. transfer-ownership="none"
  31751. nullable="1"
  31752. allow-none="1">
  31753. <doc xml:space="preserve">a #GstSegment, or %NULL</doc>
  31754. <type name="Segment" c:type="const GstSegment*"/>
  31755. </parameter>
  31756. <parameter name="info"
  31757. transfer-ownership="full"
  31758. nullable="1"
  31759. allow-none="1">
  31760. <doc xml:space="preserve">a #GstStructure, or %NULL</doc>
  31761. <type name="Structure" c:type="GstStructure*"/>
  31762. </parameter>
  31763. </parameters>
  31764. </constructor>
  31765. <method name="get_buffer" c:identifier="gst_sample_get_buffer">
  31766. <doc xml:space="preserve">Get the buffer associated with @sample</doc>
  31767. <return-value transfer-ownership="none" nullable="1">
  31768. <doc xml:space="preserve">the buffer of @sample or %NULL
  31769. when there is no buffer. The buffer remains valid as long as
  31770. @sample is valid. If you need to hold on to it for longer than
  31771. that, take a ref to the buffer with gst_buffer_ref().</doc>
  31772. <type name="Buffer" c:type="GstBuffer*"/>
  31773. </return-value>
  31774. <parameters>
  31775. <instance-parameter name="sample" transfer-ownership="none">
  31776. <doc xml:space="preserve">a #GstSample</doc>
  31777. <type name="Sample" c:type="GstSample*"/>
  31778. </instance-parameter>
  31779. </parameters>
  31780. </method>
  31781. <method name="get_buffer_list"
  31782. c:identifier="gst_sample_get_buffer_list"
  31783. version="1.6">
  31784. <doc xml:space="preserve">Get the buffer list associated with @sample</doc>
  31785. <return-value transfer-ownership="none" nullable="1">
  31786. <doc xml:space="preserve">the buffer list of @sample or %NULL
  31787. when there is no buffer list. The buffer list remains valid as long as
  31788. @sample is valid. If you need to hold on to it for longer than
  31789. that, take a ref to the buffer list with gst_mini_object_ref ().</doc>
  31790. <type name="BufferList" c:type="GstBufferList*"/>
  31791. </return-value>
  31792. <parameters>
  31793. <instance-parameter name="sample" transfer-ownership="none">
  31794. <doc xml:space="preserve">a #GstSample</doc>
  31795. <type name="Sample" c:type="GstSample*"/>
  31796. </instance-parameter>
  31797. </parameters>
  31798. </method>
  31799. <method name="get_caps" c:identifier="gst_sample_get_caps">
  31800. <doc xml:space="preserve">Get the caps associated with @sample</doc>
  31801. <return-value transfer-ownership="none" nullable="1">
  31802. <doc xml:space="preserve">the caps of @sample or %NULL
  31803. when there is no caps. The caps remain valid as long as @sample is
  31804. valid. If you need to hold on to the caps for longer than that,
  31805. take a ref to the caps with gst_caps_ref().</doc>
  31806. <type name="Caps" c:type="GstCaps*"/>
  31807. </return-value>
  31808. <parameters>
  31809. <instance-parameter name="sample" transfer-ownership="none">
  31810. <doc xml:space="preserve">a #GstSample</doc>
  31811. <type name="Sample" c:type="GstSample*"/>
  31812. </instance-parameter>
  31813. </parameters>
  31814. </method>
  31815. <method name="get_info" c:identifier="gst_sample_get_info">
  31816. <doc xml:space="preserve">Get extra information associated with @sample.</doc>
  31817. <return-value transfer-ownership="none">
  31818. <doc xml:space="preserve">the extra info of @sample.
  31819. The info remains valid as long as @sample is valid.</doc>
  31820. <type name="Structure" c:type="const GstStructure*"/>
  31821. </return-value>
  31822. <parameters>
  31823. <instance-parameter name="sample" transfer-ownership="none">
  31824. <doc xml:space="preserve">a #GstSample</doc>
  31825. <type name="Sample" c:type="GstSample*"/>
  31826. </instance-parameter>
  31827. </parameters>
  31828. </method>
  31829. <method name="get_segment" c:identifier="gst_sample_get_segment">
  31830. <doc xml:space="preserve">Get the segment associated with @sample</doc>
  31831. <return-value transfer-ownership="none">
  31832. <doc xml:space="preserve">the segment of @sample.
  31833. The segment remains valid as long as @sample is valid.</doc>
  31834. <type name="Segment" c:type="GstSegment*"/>
  31835. </return-value>
  31836. <parameters>
  31837. <instance-parameter name="sample" transfer-ownership="none">
  31838. <doc xml:space="preserve">a #GstSample</doc>
  31839. <type name="Sample" c:type="GstSample*"/>
  31840. </instance-parameter>
  31841. </parameters>
  31842. </method>
  31843. <method name="set_buffer_list"
  31844. c:identifier="gst_sample_set_buffer_list"
  31845. version="1.6">
  31846. <doc xml:space="preserve">Set the buffer list associated with @sample</doc>
  31847. <return-value transfer-ownership="none">
  31848. <type name="none" c:type="void"/>
  31849. </return-value>
  31850. <parameters>
  31851. <instance-parameter name="sample" transfer-ownership="none">
  31852. <doc xml:space="preserve">a #GstSample</doc>
  31853. <type name="Sample" c:type="GstSample*"/>
  31854. </instance-parameter>
  31855. <parameter name="buffer_list" transfer-ownership="none">
  31856. <doc xml:space="preserve">a #GstBufferList</doc>
  31857. <type name="BufferList" c:type="GstBufferList*"/>
  31858. </parameter>
  31859. </parameters>
  31860. </method>
  31861. </record>
  31862. <bitfield name="SchedulingFlags"
  31863. glib:type-name="GstSchedulingFlags"
  31864. glib:get-type="gst_scheduling_flags_get_type"
  31865. c:type="GstSchedulingFlags">
  31866. <doc xml:space="preserve">The different scheduling flags.</doc>
  31867. <member name="seekable"
  31868. value="1"
  31869. c:identifier="GST_SCHEDULING_FLAG_SEEKABLE"
  31870. glib:nick="seekable">
  31871. <doc xml:space="preserve">if seeking is possible</doc>
  31872. </member>
  31873. <member name="sequential"
  31874. value="2"
  31875. c:identifier="GST_SCHEDULING_FLAG_SEQUENTIAL"
  31876. glib:nick="sequential">
  31877. <doc xml:space="preserve">if sequential access is recommended</doc>
  31878. </member>
  31879. <member name="bandwidth_limited"
  31880. value="4"
  31881. c:identifier="GST_SCHEDULING_FLAG_BANDWIDTH_LIMITED"
  31882. glib:nick="bandwidth-limited">
  31883. <doc xml:space="preserve">if bandwidth is limited and buffering possible (since 1.2)</doc>
  31884. </member>
  31885. </bitfield>
  31886. <enumeration name="SearchMode"
  31887. glib:type-name="GstSearchMode"
  31888. glib:get-type="gst_search_mode_get_type"
  31889. c:type="GstSearchMode">
  31890. <doc xml:space="preserve">The different search modes.</doc>
  31891. <member name="exact"
  31892. value="0"
  31893. c:identifier="GST_SEARCH_MODE_EXACT"
  31894. glib:nick="exact">
  31895. <doc xml:space="preserve">Only search for exact matches.</doc>
  31896. </member>
  31897. <member name="before"
  31898. value="1"
  31899. c:identifier="GST_SEARCH_MODE_BEFORE"
  31900. glib:nick="before">
  31901. <doc xml:space="preserve">Search for an exact match or the element just before.</doc>
  31902. </member>
  31903. <member name="after"
  31904. value="2"
  31905. c:identifier="GST_SEARCH_MODE_AFTER"
  31906. glib:nick="after">
  31907. <doc xml:space="preserve">Search for an exact match or the element just after.</doc>
  31908. </member>
  31909. </enumeration>
  31910. <bitfield name="SeekFlags"
  31911. glib:type-name="GstSeekFlags"
  31912. glib:get-type="gst_seek_flags_get_type"
  31913. c:type="GstSeekFlags">
  31914. <doc xml:space="preserve">Flags to be used with gst_element_seek() or gst_event_new_seek(). All flags
  31915. can be used together.
  31916. A non flushing seek might take some time to perform as the currently
  31917. playing data in the pipeline will not be cleared.
  31918. An accurate seek might be slower for formats that don't have any indexes
  31919. or timestamp markers in the stream. Specifying this flag might require a
  31920. complete scan of the file in those cases.
  31921. When performing a segment seek: after the playback of the segment completes,
  31922. no EOS will be emitted by the element that performed the seek, but a
  31923. %GST_MESSAGE_SEGMENT_DONE message will be posted on the bus by the element.
  31924. When this message is posted, it is possible to send a new seek event to
  31925. continue playback. With this seek method it is possible to perform seamless
  31926. looping or simple linear editing.
  31927. When doing fast forward (rate &gt; 1.0) or fast reverse (rate &lt; -1.0) trickmode
  31928. playback, the %GST_SEEK_FLAG_TRICKMODE flag can be used to instruct decoders
  31929. and demuxers to adjust the playback rate by skipping frames. This can improve
  31930. performance and decrease CPU usage because not all frames need to be decoded.
  31931. Beyond that, the %GST_SEEK_FLAG_TRICKMODE_KEY_UNITS flag can be used to
  31932. request that decoders skip all frames except key units, and
  31933. %GST_SEEK_FLAG_TRICKMODE_NO_AUDIO flags can be used to request that audio
  31934. decoders do no decoding at all, and simple output silence.
  31935. The %GST_SEEK_FLAG_SNAP_BEFORE flag can be used to snap to the previous
  31936. relevant location, and the %GST_SEEK_FLAG_SNAP_AFTER flag can be used to
  31937. select the next relevant location. If %GST_SEEK_FLAG_KEY_UNIT is specified,
  31938. the relevant location is a keyframe. If both flags are specified, the nearest
  31939. of these locations will be selected. If none are specified, the implementation is
  31940. free to select whichever it wants.
  31941. The before and after here are in running time, so when playing backwards,
  31942. the next location refers to the one that will played in next, and not the
  31943. one that is located after in the actual source stream.
  31944. Also see part-seeking.txt in the GStreamer design documentation for more
  31945. details on the meaning of these flags and the behaviour expected of
  31946. elements that handle them.</doc>
  31947. <member name="none"
  31948. value="0"
  31949. c:identifier="GST_SEEK_FLAG_NONE"
  31950. glib:nick="none">
  31951. <doc xml:space="preserve">no flag</doc>
  31952. </member>
  31953. <member name="flush"
  31954. value="1"
  31955. c:identifier="GST_SEEK_FLAG_FLUSH"
  31956. glib:nick="flush">
  31957. <doc xml:space="preserve">flush pipeline</doc>
  31958. </member>
  31959. <member name="accurate"
  31960. value="2"
  31961. c:identifier="GST_SEEK_FLAG_ACCURATE"
  31962. glib:nick="accurate">
  31963. <doc xml:space="preserve">accurate position is requested, this might
  31964. be considerably slower for some formats.</doc>
  31965. </member>
  31966. <member name="key_unit"
  31967. value="4"
  31968. c:identifier="GST_SEEK_FLAG_KEY_UNIT"
  31969. glib:nick="key-unit">
  31970. <doc xml:space="preserve">seek to the nearest keyframe. This might be
  31971. faster but less accurate.</doc>
  31972. </member>
  31973. <member name="segment"
  31974. value="8"
  31975. c:identifier="GST_SEEK_FLAG_SEGMENT"
  31976. glib:nick="segment">
  31977. <doc xml:space="preserve">perform a segment seek.</doc>
  31978. </member>
  31979. <member name="trickmode"
  31980. value="16"
  31981. c:identifier="GST_SEEK_FLAG_TRICKMODE"
  31982. glib:nick="trickmode">
  31983. <doc xml:space="preserve">when doing fast forward or fast reverse playback, allow
  31984. elements to skip frames instead of generating all
  31985. frames. (Since 1.6)</doc>
  31986. </member>
  31987. <member name="skip"
  31988. value="16"
  31989. c:identifier="GST_SEEK_FLAG_SKIP"
  31990. glib:nick="skip">
  31991. <doc xml:space="preserve">Deprecated backward compatibility flag, replaced
  31992. by %GST_SEEK_FLAG_TRICKMODE</doc>
  31993. </member>
  31994. <member name="snap_before"
  31995. value="32"
  31996. c:identifier="GST_SEEK_FLAG_SNAP_BEFORE"
  31997. glib:nick="snap-before">
  31998. <doc xml:space="preserve">go to a location before the requested position,
  31999. if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at or before
  32000. the requested position the one at or before the seek target.</doc>
  32001. </member>
  32002. <member name="snap_after"
  32003. value="64"
  32004. c:identifier="GST_SEEK_FLAG_SNAP_AFTER"
  32005. glib:nick="snap-after">
  32006. <doc xml:space="preserve">go to a location after the requested position,
  32007. if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe at of after the
  32008. requested position.</doc>
  32009. </member>
  32010. <member name="snap_nearest"
  32011. value="96"
  32012. c:identifier="GST_SEEK_FLAG_SNAP_NEAREST"
  32013. glib:nick="snap-nearest">
  32014. <doc xml:space="preserve">go to a position near the requested position,
  32015. if %GST_SEEK_FLAG_KEY_UNIT this means the keyframe closest
  32016. to the requested position, if both keyframes are at an equal
  32017. distance, behaves like %GST_SEEK_FLAG_SNAP_BEFORE.</doc>
  32018. </member>
  32019. <member name="trickmode_key_units"
  32020. value="128"
  32021. c:identifier="GST_SEEK_FLAG_TRICKMODE_KEY_UNITS"
  32022. glib:nick="trickmode-key-units">
  32023. <doc xml:space="preserve">when doing fast forward or fast reverse
  32024. playback, request that elements only decode keyframes
  32025. and skip all other content, for formats that have
  32026. keyframes. (Since 1.6)</doc>
  32027. </member>
  32028. <member name="trickmode_no_audio"
  32029. value="256"
  32030. c:identifier="GST_SEEK_FLAG_TRICKMODE_NO_AUDIO"
  32031. glib:nick="trickmode-no-audio">
  32032. <doc xml:space="preserve">when doing fast forward or fast reverse
  32033. playback, request that audio decoder elements skip
  32034. decoding and output only gap events or silence. (Since 1.6)</doc>
  32035. </member>
  32036. </bitfield>
  32037. <enumeration name="SeekType"
  32038. glib:type-name="GstSeekType"
  32039. glib:get-type="gst_seek_type_get_type"
  32040. c:type="GstSeekType">
  32041. <doc xml:space="preserve">The different types of seek events. When constructing a seek event with
  32042. gst_event_new_seek() or when doing gst_segment_do_seek ().</doc>
  32043. <member name="none"
  32044. value="0"
  32045. c:identifier="GST_SEEK_TYPE_NONE"
  32046. glib:nick="none">
  32047. <doc xml:space="preserve">no change in position is required</doc>
  32048. </member>
  32049. <member name="set"
  32050. value="1"
  32051. c:identifier="GST_SEEK_TYPE_SET"
  32052. glib:nick="set">
  32053. <doc xml:space="preserve">absolute position is requested</doc>
  32054. </member>
  32055. <member name="end"
  32056. value="2"
  32057. c:identifier="GST_SEEK_TYPE_END"
  32058. glib:nick="end">
  32059. <doc xml:space="preserve">relative position to duration is requested</doc>
  32060. </member>
  32061. </enumeration>
  32062. <record name="Segment"
  32063. c:type="GstSegment"
  32064. glib:type-name="GstSegment"
  32065. glib:get-type="gst_segment_get_type"
  32066. c:symbol-prefix="segment">
  32067. <doc xml:space="preserve">This helper structure holds the relevant values for tracking the region of
  32068. interest in a media file, called a segment.
  32069. The structure can be used for two purposes:
  32070. &lt;itemizedlist&gt;
  32071. &lt;listitem&gt;&lt;para&gt;performing seeks (handling seek events)&lt;/para&gt;&lt;/listitem&gt;
  32072. &lt;listitem&gt;&lt;para&gt;tracking playback regions (handling newsegment events)&lt;/para&gt;&lt;/listitem&gt;
  32073. &lt;/itemizedlist&gt;
  32074. The segment is usually configured by the application with a seek event which
  32075. is propagated upstream and eventually handled by an element that performs the seek.
  32076. The configured segment is then propagated back downstream with a newsegment event.
  32077. This information is then used to clip media to the segment boundaries.
  32078. A segment structure is initialized with gst_segment_init(), which takes a #GstFormat
  32079. that will be used as the format of the segment values. The segment will be configured
  32080. with a start value of 0 and a stop/duration of -1, which is undefined. The default
  32081. rate and applied_rate is 1.0.
  32082. The public duration field contains the duration of the segment. When using
  32083. the segment for seeking, the start and time members should normally be left
  32084. to their default 0 value. The stop position is left to -1 unless explicitly
  32085. configured to a different value after a seek event.
  32086. The current position in the segment should be set by changing the position
  32087. member in the structure.
  32088. For elements that perform seeks, the current segment should be updated with the
  32089. gst_segment_do_seek() and the values from the seek event. This method will update
  32090. all the segment fields. The position field will contain the new playback position.
  32091. If the start_type was different from GST_SEEK_TYPE_NONE, playback continues from
  32092. the position position, possibly with updated flags or rate.
  32093. For elements that want to use #GstSegment to track the playback region,
  32094. update the segment fields with the information from the newsegment event.
  32095. The gst_segment_clip() method can be used to check and clip
  32096. the media data to the segment boundaries.
  32097. For elements that want to synchronize to the pipeline clock, gst_segment_to_running_time()
  32098. can be used to convert a timestamp to a value that can be used to synchronize
  32099. to the clock. This function takes into account the base as well as
  32100. any rate or applied_rate conversions.
  32101. For elements that need to perform operations on media data in stream_time,
  32102. gst_segment_to_stream_time() can be used to convert a timestamp and the segment
  32103. info to stream time (which is always between 0 and the duration of the stream).</doc>
  32104. <field name="flags" writable="1">
  32105. <doc xml:space="preserve">flags for this segment</doc>
  32106. <type name="SegmentFlags" c:type="GstSegmentFlags"/>
  32107. </field>
  32108. <field name="rate" writable="1">
  32109. <doc xml:space="preserve">the playback rate of the segment</doc>
  32110. <type name="gdouble" c:type="gdouble"/>
  32111. </field>
  32112. <field name="applied_rate" writable="1">
  32113. <doc xml:space="preserve">the already applied rate to the segment</doc>
  32114. <type name="gdouble" c:type="gdouble"/>
  32115. </field>
  32116. <field name="format" writable="1">
  32117. <doc xml:space="preserve">the format of the segment values</doc>
  32118. <type name="Format" c:type="GstFormat"/>
  32119. </field>
  32120. <field name="base" writable="1">
  32121. <doc xml:space="preserve">the running time (plus elapsed time, see offset) of the segment start</doc>
  32122. <type name="guint64" c:type="guint64"/>
  32123. </field>
  32124. <field name="offset" writable="1">
  32125. <doc xml:space="preserve">the amount (in buffer timestamps) that has already been elapsed in
  32126. the segment</doc>
  32127. <type name="guint64" c:type="guint64"/>
  32128. </field>
  32129. <field name="start" writable="1">
  32130. <doc xml:space="preserve">the start of the segment in buffer timestamp time (PTS)</doc>
  32131. <type name="guint64" c:type="guint64"/>
  32132. </field>
  32133. <field name="stop" writable="1">
  32134. <doc xml:space="preserve">the stop of the segment in buffer timestamp time (PTS)</doc>
  32135. <type name="guint64" c:type="guint64"/>
  32136. </field>
  32137. <field name="time" writable="1">
  32138. <doc xml:space="preserve">the stream time of the segment start</doc>
  32139. <type name="guint64" c:type="guint64"/>
  32140. </field>
  32141. <field name="position" writable="1">
  32142. <doc xml:space="preserve">the buffer timestamp position in the segment (used internally by
  32143. elements such as sources, demuxers or parsers to track progress)</doc>
  32144. <type name="guint64" c:type="guint64"/>
  32145. </field>
  32146. <field name="duration" writable="1">
  32147. <doc xml:space="preserve">the duration of the segment</doc>
  32148. <type name="guint64" c:type="guint64"/>
  32149. </field>
  32150. <field name="_gst_reserved" readable="0" private="1">
  32151. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  32152. <type name="gpointer" c:type="gpointer"/>
  32153. </array>
  32154. </field>
  32155. <constructor name="new" c:identifier="gst_segment_new">
  32156. <doc xml:space="preserve">Allocate a new #GstSegment structure and initialize it using
  32157. gst_segment_init().
  32158. Free-function: gst_segment_free</doc>
  32159. <return-value transfer-ownership="full">
  32160. <doc xml:space="preserve">a new #GstSegment, free with gst_segment_free().</doc>
  32161. <type name="Segment" c:type="GstSegment*"/>
  32162. </return-value>
  32163. </constructor>
  32164. <method name="clip" c:identifier="gst_segment_clip">
  32165. <doc xml:space="preserve">Clip the given @start and @stop values to the segment boundaries given
  32166. in @segment. @start and @stop are compared and clipped to @segment
  32167. start and stop values.
  32168. If the function returns %FALSE, @start and @stop are known to fall
  32169. outside of @segment and @clip_start and @clip_stop are not updated.
  32170. When the function returns %TRUE, @clip_start and @clip_stop will be
  32171. updated. If @clip_start or @clip_stop are different from @start or @stop
  32172. respectively, the region fell partially in the segment.
  32173. Note that when @stop is -1, @clip_stop will be set to the end of the
  32174. segment. Depending on the use case, this may or may not be what you want.</doc>
  32175. <return-value transfer-ownership="none">
  32176. <doc xml:space="preserve">%TRUE if the given @start and @stop times fall partially or
  32177. completely in @segment, %FALSE if the values are completely outside
  32178. of the segment.</doc>
  32179. <type name="gboolean" c:type="gboolean"/>
  32180. </return-value>
  32181. <parameters>
  32182. <instance-parameter name="segment" transfer-ownership="none">
  32183. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32184. <type name="Segment" c:type="const GstSegment*"/>
  32185. </instance-parameter>
  32186. <parameter name="format" transfer-ownership="none">
  32187. <doc xml:space="preserve">the format of the segment.</doc>
  32188. <type name="Format" c:type="GstFormat"/>
  32189. </parameter>
  32190. <parameter name="start" transfer-ownership="none">
  32191. <doc xml:space="preserve">the start position in the segment</doc>
  32192. <type name="guint64" c:type="guint64"/>
  32193. </parameter>
  32194. <parameter name="stop" transfer-ownership="none">
  32195. <doc xml:space="preserve">the stop position in the segment</doc>
  32196. <type name="guint64" c:type="guint64"/>
  32197. </parameter>
  32198. <parameter name="clip_start"
  32199. direction="out"
  32200. caller-allocates="0"
  32201. transfer-ownership="full"
  32202. optional="1"
  32203. allow-none="1">
  32204. <doc xml:space="preserve">the clipped start position in the segment</doc>
  32205. <type name="guint64" c:type="guint64*"/>
  32206. </parameter>
  32207. <parameter name="clip_stop"
  32208. direction="out"
  32209. caller-allocates="0"
  32210. transfer-ownership="full"
  32211. optional="1"
  32212. allow-none="1">
  32213. <doc xml:space="preserve">the clipped stop position in the segment</doc>
  32214. <type name="guint64" c:type="guint64*"/>
  32215. </parameter>
  32216. </parameters>
  32217. </method>
  32218. <method name="copy" c:identifier="gst_segment_copy">
  32219. <doc xml:space="preserve">Create a copy of given @segment.
  32220. Free-function: gst_segment_free</doc>
  32221. <return-value transfer-ownership="full">
  32222. <doc xml:space="preserve">a new #GstSegment, free with gst_segment_free().</doc>
  32223. <type name="Segment" c:type="GstSegment*"/>
  32224. </return-value>
  32225. <parameters>
  32226. <instance-parameter name="segment" transfer-ownership="none">
  32227. <doc xml:space="preserve">a #GstSegment</doc>
  32228. <type name="Segment" c:type="const GstSegment*"/>
  32229. </instance-parameter>
  32230. </parameters>
  32231. </method>
  32232. <method name="copy_into" c:identifier="gst_segment_copy_into">
  32233. <doc xml:space="preserve">Copy the contents of @src into @dest.</doc>
  32234. <return-value transfer-ownership="none">
  32235. <type name="none" c:type="void"/>
  32236. </return-value>
  32237. <parameters>
  32238. <instance-parameter name="src" transfer-ownership="none">
  32239. <doc xml:space="preserve">a #GstSegment</doc>
  32240. <type name="Segment" c:type="const GstSegment*"/>
  32241. </instance-parameter>
  32242. <parameter name="dest" transfer-ownership="none">
  32243. <doc xml:space="preserve">a #GstSegment</doc>
  32244. <type name="Segment" c:type="GstSegment*"/>
  32245. </parameter>
  32246. </parameters>
  32247. </method>
  32248. <method name="do_seek" c:identifier="gst_segment_do_seek">
  32249. <doc xml:space="preserve">Update the segment structure with the field values of a seek event (see
  32250. gst_event_new_seek()).
  32251. After calling this method, the segment field position and time will
  32252. contain the requested new position in the segment. The new requested
  32253. position in the segment depends on @rate and @start_type and @stop_type.
  32254. For positive @rate, the new position in the segment is the new @segment
  32255. start field when it was updated with a @start_type different from
  32256. #GST_SEEK_TYPE_NONE. If no update was performed on @segment start position
  32257. (#GST_SEEK_TYPE_NONE), @start is ignored and @segment position is
  32258. unmodified.
  32259. For negative @rate, the new position in the segment is the new @segment
  32260. stop field when it was updated with a @stop_type different from
  32261. #GST_SEEK_TYPE_NONE. If no stop was previously configured in the segment, the
  32262. duration of the segment will be used to update the stop position.
  32263. If no update was performed on @segment stop position (#GST_SEEK_TYPE_NONE),
  32264. @stop is ignored and @segment position is unmodified.
  32265. The applied rate of the segment will be set to 1.0 by default.
  32266. If the caller can apply a rate change, it should update @segment
  32267. rate and applied_rate after calling this function.
  32268. @update will be set to %TRUE if a seek should be performed to the segment
  32269. position field. This field can be %FALSE if, for example, only the @rate
  32270. has been changed but not the playback position.</doc>
  32271. <return-value transfer-ownership="none">
  32272. <doc xml:space="preserve">%TRUE if the seek could be performed.</doc>
  32273. <type name="gboolean" c:type="gboolean"/>
  32274. </return-value>
  32275. <parameters>
  32276. <instance-parameter name="segment" transfer-ownership="none">
  32277. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32278. <type name="Segment" c:type="GstSegment*"/>
  32279. </instance-parameter>
  32280. <parameter name="rate" transfer-ownership="none">
  32281. <doc xml:space="preserve">the rate of the segment.</doc>
  32282. <type name="gdouble" c:type="gdouble"/>
  32283. </parameter>
  32284. <parameter name="format" transfer-ownership="none">
  32285. <doc xml:space="preserve">the format of the segment.</doc>
  32286. <type name="Format" c:type="GstFormat"/>
  32287. </parameter>
  32288. <parameter name="flags" transfer-ownership="none">
  32289. <doc xml:space="preserve">the segment flags for the segment</doc>
  32290. <type name="SeekFlags" c:type="GstSeekFlags"/>
  32291. </parameter>
  32292. <parameter name="start_type" transfer-ownership="none">
  32293. <doc xml:space="preserve">the seek method</doc>
  32294. <type name="SeekType" c:type="GstSeekType"/>
  32295. </parameter>
  32296. <parameter name="start" transfer-ownership="none">
  32297. <doc xml:space="preserve">the seek start value</doc>
  32298. <type name="guint64" c:type="guint64"/>
  32299. </parameter>
  32300. <parameter name="stop_type" transfer-ownership="none">
  32301. <doc xml:space="preserve">the seek method</doc>
  32302. <type name="SeekType" c:type="GstSeekType"/>
  32303. </parameter>
  32304. <parameter name="stop" transfer-ownership="none">
  32305. <doc xml:space="preserve">the seek stop value</doc>
  32306. <type name="guint64" c:type="guint64"/>
  32307. </parameter>
  32308. <parameter name="update" transfer-ownership="none">
  32309. <doc xml:space="preserve">boolean holding whether position was updated.</doc>
  32310. <type name="gboolean" c:type="gboolean*"/>
  32311. </parameter>
  32312. </parameters>
  32313. </method>
  32314. <method name="free" c:identifier="gst_segment_free">
  32315. <doc xml:space="preserve">Free the allocated segment @segment.</doc>
  32316. <return-value transfer-ownership="none">
  32317. <type name="none" c:type="void"/>
  32318. </return-value>
  32319. <parameters>
  32320. <instance-parameter name="segment" transfer-ownership="full">
  32321. <doc xml:space="preserve">a #GstSegment</doc>
  32322. <type name="Segment" c:type="GstSegment*"/>
  32323. </instance-parameter>
  32324. </parameters>
  32325. </method>
  32326. <method name="init" c:identifier="gst_segment_init">
  32327. <doc xml:space="preserve">The start/position fields are set to 0 and the stop/duration
  32328. fields are set to -1 (unknown). The default rate of 1.0 and no
  32329. flags are set.
  32330. Initialize @segment to its default values.</doc>
  32331. <return-value transfer-ownership="none">
  32332. <type name="none" c:type="void"/>
  32333. </return-value>
  32334. <parameters>
  32335. <instance-parameter name="segment" transfer-ownership="none">
  32336. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32337. <type name="Segment" c:type="GstSegment*"/>
  32338. </instance-parameter>
  32339. <parameter name="format" transfer-ownership="none">
  32340. <doc xml:space="preserve">the format of the segment.</doc>
  32341. <type name="Format" c:type="GstFormat"/>
  32342. </parameter>
  32343. </parameters>
  32344. </method>
  32345. <method name="is_equal"
  32346. c:identifier="gst_segment_is_equal"
  32347. version="1.6">
  32348. <doc xml:space="preserve">Checks for two segments being equal. Equality here is defined
  32349. as perfect equality, including floating point values.</doc>
  32350. <return-value transfer-ownership="none">
  32351. <doc xml:space="preserve">%TRUE if the segments are equal, %FALSE otherwise.</doc>
  32352. <type name="gboolean" c:type="gboolean"/>
  32353. </return-value>
  32354. <parameters>
  32355. <instance-parameter name="s0" transfer-ownership="none">
  32356. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32357. <type name="Segment" c:type="const GstSegment*"/>
  32358. </instance-parameter>
  32359. <parameter name="s1" transfer-ownership="none">
  32360. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32361. <type name="Segment" c:type="const GstSegment*"/>
  32362. </parameter>
  32363. </parameters>
  32364. </method>
  32365. <method name="offset_running_time"
  32366. c:identifier="gst_segment_offset_running_time"
  32367. version="1.2.3">
  32368. <doc xml:space="preserve">Adjust the values in @segment so that @offset is applied to all
  32369. future running-time calculations.</doc>
  32370. <return-value transfer-ownership="none">
  32371. <doc xml:space="preserve">%TRUE if the segment could be updated successfully. If %FALSE is
  32372. returned, @offset is not in @segment.</doc>
  32373. <type name="gboolean" c:type="gboolean"/>
  32374. </return-value>
  32375. <parameters>
  32376. <instance-parameter name="segment" transfer-ownership="none">
  32377. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32378. <type name="Segment" c:type="GstSegment*"/>
  32379. </instance-parameter>
  32380. <parameter name="format" transfer-ownership="none">
  32381. <doc xml:space="preserve">the format of the segment.</doc>
  32382. <type name="Format" c:type="GstFormat"/>
  32383. </parameter>
  32384. <parameter name="offset" transfer-ownership="none">
  32385. <doc xml:space="preserve">the offset to apply in the segment</doc>
  32386. <type name="gint64" c:type="gint64"/>
  32387. </parameter>
  32388. </parameters>
  32389. </method>
  32390. <method name="position_from_running_time"
  32391. c:identifier="gst_segment_position_from_running_time"
  32392. version="1.8">
  32393. <doc xml:space="preserve">Convert @running_time into a position in the segment so that
  32394. gst_segment_to_running_time() with that position returns @running_time.</doc>
  32395. <return-value transfer-ownership="none">
  32396. <doc xml:space="preserve">the position in the segment for @running_time. This function returns
  32397. -1 when @running_time is -1 or when it is not inside @segment.</doc>
  32398. <type name="guint64" c:type="guint64"/>
  32399. </return-value>
  32400. <parameters>
  32401. <instance-parameter name="segment" transfer-ownership="none">
  32402. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32403. <type name="Segment" c:type="const GstSegment*"/>
  32404. </instance-parameter>
  32405. <parameter name="format" transfer-ownership="none">
  32406. <doc xml:space="preserve">the format of the segment.</doc>
  32407. <type name="Format" c:type="GstFormat"/>
  32408. </parameter>
  32409. <parameter name="running_time" transfer-ownership="none">
  32410. <doc xml:space="preserve">the running_time in the segment</doc>
  32411. <type name="guint64" c:type="guint64"/>
  32412. </parameter>
  32413. </parameters>
  32414. </method>
  32415. <method name="position_from_running_time_full"
  32416. c:identifier="gst_segment_position_from_running_time_full"
  32417. version="1.8">
  32418. <doc xml:space="preserve">Translate @running_time to the segment position using the currently configured
  32419. segment. Compared to gst_segment_position_from_running_time() this function can
  32420. return negative segment position.
  32421. This function is typically used by elements that need to synchronize buffers
  32422. against the clock or each other.
  32423. @running_time can be any value and the result of this function for values
  32424. outside of the segment is extrapolated.
  32425. When 1 is returned, @running_time resulted in a positive position returned
  32426. in @position.
  32427. When this function returns -1, the returned @position should be negated
  32428. to get the real negative segment position.</doc>
  32429. <return-value transfer-ownership="none">
  32430. <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
  32431. <type name="gint" c:type="gint"/>
  32432. </return-value>
  32433. <parameters>
  32434. <instance-parameter name="segment" transfer-ownership="none">
  32435. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32436. <type name="Segment" c:type="const GstSegment*"/>
  32437. </instance-parameter>
  32438. <parameter name="format" transfer-ownership="none">
  32439. <doc xml:space="preserve">the format of the segment.</doc>
  32440. <type name="Format" c:type="GstFormat"/>
  32441. </parameter>
  32442. <parameter name="running_time" transfer-ownership="none">
  32443. <doc xml:space="preserve">the running-time</doc>
  32444. <type name="guint64" c:type="guint64"/>
  32445. </parameter>
  32446. <parameter name="position" transfer-ownership="none">
  32447. <doc xml:space="preserve">the resulting position in the segment</doc>
  32448. <type name="guint64" c:type="guint64*"/>
  32449. </parameter>
  32450. </parameters>
  32451. </method>
  32452. <method name="position_from_stream_time"
  32453. c:identifier="gst_segment_position_from_stream_time"
  32454. version="1.8">
  32455. <doc xml:space="preserve">Convert @stream_time into a position in the segment so that
  32456. gst_segment_to_stream_time() with that position returns @stream_time.</doc>
  32457. <return-value transfer-ownership="none">
  32458. <doc xml:space="preserve">the position in the segment for @stream_time. This function returns
  32459. -1 when @stream_time is -1 or when it is not inside @segment.</doc>
  32460. <type name="guint64" c:type="guint64"/>
  32461. </return-value>
  32462. <parameters>
  32463. <instance-parameter name="segment" transfer-ownership="none">
  32464. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32465. <type name="Segment" c:type="const GstSegment*"/>
  32466. </instance-parameter>
  32467. <parameter name="format" transfer-ownership="none">
  32468. <doc xml:space="preserve">the format of the segment.</doc>
  32469. <type name="Format" c:type="GstFormat"/>
  32470. </parameter>
  32471. <parameter name="stream_time" transfer-ownership="none">
  32472. <doc xml:space="preserve">the stream_time in the segment</doc>
  32473. <type name="guint64" c:type="guint64"/>
  32474. </parameter>
  32475. </parameters>
  32476. </method>
  32477. <method name="position_from_stream_time_full"
  32478. c:identifier="gst_segment_position_from_stream_time_full"
  32479. version="1.8">
  32480. <doc xml:space="preserve">Translate @stream_time to the segment position using the currently configured
  32481. segment. Compared to gst_segment_position_from_stream_time() this function can
  32482. return negative segment position.
  32483. This function is typically used by elements that need to synchronize buffers
  32484. against the clock or each other.
  32485. @stream_time can be any value and the result of this function for values outside
  32486. of the segment is extrapolated.
  32487. When 1 is returned, @stream_time resulted in a positive position returned
  32488. in @position.
  32489. When this function returns -1, the returned @position should be negated
  32490. to get the real negative segment position.</doc>
  32491. <return-value transfer-ownership="none">
  32492. <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
  32493. <type name="gint" c:type="gint"/>
  32494. </return-value>
  32495. <parameters>
  32496. <instance-parameter name="segment" transfer-ownership="none">
  32497. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32498. <type name="Segment" c:type="const GstSegment*"/>
  32499. </instance-parameter>
  32500. <parameter name="format" transfer-ownership="none">
  32501. <doc xml:space="preserve">the format of the segment.</doc>
  32502. <type name="Format" c:type="GstFormat"/>
  32503. </parameter>
  32504. <parameter name="stream_time" transfer-ownership="none">
  32505. <doc xml:space="preserve">the stream-time</doc>
  32506. <type name="guint64" c:type="guint64"/>
  32507. </parameter>
  32508. <parameter name="position" transfer-ownership="none">
  32509. <doc xml:space="preserve">the resulting position in the segment</doc>
  32510. <type name="guint64" c:type="guint64*"/>
  32511. </parameter>
  32512. </parameters>
  32513. </method>
  32514. <method name="set_running_time"
  32515. c:identifier="gst_segment_set_running_time">
  32516. <doc xml:space="preserve">Adjust the start/stop and base values of @segment such that the next valid
  32517. buffer will be one with @running_time.</doc>
  32518. <return-value transfer-ownership="none">
  32519. <doc xml:space="preserve">%TRUE if the segment could be updated successfully. If %FALSE is
  32520. returned, @running_time is -1 or not in @segment.</doc>
  32521. <type name="gboolean" c:type="gboolean"/>
  32522. </return-value>
  32523. <parameters>
  32524. <instance-parameter name="segment" transfer-ownership="none">
  32525. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32526. <type name="Segment" c:type="GstSegment*"/>
  32527. </instance-parameter>
  32528. <parameter name="format" transfer-ownership="none">
  32529. <doc xml:space="preserve">the format of the segment.</doc>
  32530. <type name="Format" c:type="GstFormat"/>
  32531. </parameter>
  32532. <parameter name="running_time" transfer-ownership="none">
  32533. <doc xml:space="preserve">the running_time in the segment</doc>
  32534. <type name="guint64" c:type="guint64"/>
  32535. </parameter>
  32536. </parameters>
  32537. </method>
  32538. <method name="to_position" c:identifier="gst_segment_to_position">
  32539. <doc xml:space="preserve">Convert @running_time into a position in the segment so that
  32540. gst_segment_to_running_time() with that position returns @running_time.</doc>
  32541. <return-value transfer-ownership="none">
  32542. <doc xml:space="preserve">the position in the segment for @running_time. This function returns
  32543. -1 when @running_time is -1 or when it is not inside @segment.
  32544. Deprecated. Use gst_segment_position_from_running_time() instead.</doc>
  32545. <type name="guint64" c:type="guint64"/>
  32546. </return-value>
  32547. <parameters>
  32548. <instance-parameter name="segment" transfer-ownership="none">
  32549. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32550. <type name="Segment" c:type="const GstSegment*"/>
  32551. </instance-parameter>
  32552. <parameter name="format" transfer-ownership="none">
  32553. <doc xml:space="preserve">the format of the segment.</doc>
  32554. <type name="Format" c:type="GstFormat"/>
  32555. </parameter>
  32556. <parameter name="running_time" transfer-ownership="none">
  32557. <doc xml:space="preserve">the running_time in the segment</doc>
  32558. <type name="guint64" c:type="guint64"/>
  32559. </parameter>
  32560. </parameters>
  32561. </method>
  32562. <method name="to_running_time"
  32563. c:identifier="gst_segment_to_running_time">
  32564. <doc xml:space="preserve">Translate @position to the total running time using the currently configured
  32565. segment. Position is a value between @segment start and stop time.
  32566. This function is typically used by elements that need to synchronize to the
  32567. global clock in a pipeline. The running time is a constantly increasing value
  32568. starting from 0. When gst_segment_init() is called, this value will reset to
  32569. 0.
  32570. This function returns -1 if the position is outside of @segment start and stop.</doc>
  32571. <return-value transfer-ownership="none">
  32572. <doc xml:space="preserve">the position as the total running time or -1 when an invalid position
  32573. was given.</doc>
  32574. <type name="guint64" c:type="guint64"/>
  32575. </return-value>
  32576. <parameters>
  32577. <instance-parameter name="segment" transfer-ownership="none">
  32578. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32579. <type name="Segment" c:type="const GstSegment*"/>
  32580. </instance-parameter>
  32581. <parameter name="format" transfer-ownership="none">
  32582. <doc xml:space="preserve">the format of the segment.</doc>
  32583. <type name="Format" c:type="GstFormat"/>
  32584. </parameter>
  32585. <parameter name="position" transfer-ownership="none">
  32586. <doc xml:space="preserve">the position in the segment</doc>
  32587. <type name="guint64" c:type="guint64"/>
  32588. </parameter>
  32589. </parameters>
  32590. </method>
  32591. <method name="to_running_time_full"
  32592. c:identifier="gst_segment_to_running_time_full"
  32593. version="1.6">
  32594. <doc xml:space="preserve">Translate @position to the total running time using the currently configured
  32595. segment. Compared to gst_segment_to_running_time() this function can return
  32596. negative running-time.
  32597. This function is typically used by elements that need to synchronize buffers
  32598. against the clock or eachother.
  32599. @position can be any value and the result of this function for values outside
  32600. of the segment is extrapolated.
  32601. When 1 is returned, @position resulted in a positive running-time returned
  32602. in @running_time.
  32603. When this function returns -1, the returned @running_time should be negated
  32604. to get the real negative running time.</doc>
  32605. <return-value transfer-ownership="none">
  32606. <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
  32607. <type name="gint" c:type="gint"/>
  32608. </return-value>
  32609. <parameters>
  32610. <instance-parameter name="segment" transfer-ownership="none">
  32611. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32612. <type name="Segment" c:type="const GstSegment*"/>
  32613. </instance-parameter>
  32614. <parameter name="format" transfer-ownership="none">
  32615. <doc xml:space="preserve">the format of the segment.</doc>
  32616. <type name="Format" c:type="GstFormat"/>
  32617. </parameter>
  32618. <parameter name="position" transfer-ownership="none">
  32619. <doc xml:space="preserve">the position in the segment</doc>
  32620. <type name="guint64" c:type="guint64"/>
  32621. </parameter>
  32622. <parameter name="running_time" transfer-ownership="none">
  32623. <doc xml:space="preserve">result running-time</doc>
  32624. <type name="guint64" c:type="guint64*"/>
  32625. </parameter>
  32626. </parameters>
  32627. </method>
  32628. <method name="to_stream_time"
  32629. c:identifier="gst_segment_to_stream_time"
  32630. version="1.8">
  32631. <doc xml:space="preserve">Translate @position to stream time using the currently configured
  32632. segment. The @position value must be between @segment start and
  32633. stop value.
  32634. This function is typically used by elements that need to operate on
  32635. the stream time of the buffers it receives, such as effect plugins.
  32636. In those use cases, @position is typically the buffer timestamp or
  32637. clock time that one wants to convert to the stream time.
  32638. The stream time is always between 0 and the total duration of the
  32639. media stream.</doc>
  32640. <return-value transfer-ownership="none">
  32641. <doc xml:space="preserve">the position in stream_time or -1 when an invalid position
  32642. was given.</doc>
  32643. <type name="guint64" c:type="guint64"/>
  32644. </return-value>
  32645. <parameters>
  32646. <instance-parameter name="segment" transfer-ownership="none">
  32647. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32648. <type name="Segment" c:type="const GstSegment*"/>
  32649. </instance-parameter>
  32650. <parameter name="format" transfer-ownership="none">
  32651. <doc xml:space="preserve">the format of the segment.</doc>
  32652. <type name="Format" c:type="GstFormat"/>
  32653. </parameter>
  32654. <parameter name="position" transfer-ownership="none">
  32655. <doc xml:space="preserve">the position in the segment</doc>
  32656. <type name="guint64" c:type="guint64"/>
  32657. </parameter>
  32658. </parameters>
  32659. </method>
  32660. <method name="to_stream_time_full"
  32661. c:identifier="gst_segment_to_stream_time_full"
  32662. version="1.8">
  32663. <doc xml:space="preserve">Translate @position to the total stream time using the currently configured
  32664. segment. Compared to gst_segment_to_stream_time() this function can return
  32665. negative stream-time.
  32666. This function is typically used by elements that need to synchronize buffers
  32667. against the clock or eachother.
  32668. @position can be any value and the result of this function for values outside
  32669. of the segment is extrapolated.
  32670. When 1 is returned, @position resulted in a positive stream-time returned
  32671. in @stream_time.
  32672. When this function returns -1, the returned @stream_time should be negated
  32673. to get the real negative stream time.</doc>
  32674. <return-value transfer-ownership="none">
  32675. <doc xml:space="preserve">a 1 or -1 on success, 0 on failure.</doc>
  32676. <type name="gint" c:type="gint"/>
  32677. </return-value>
  32678. <parameters>
  32679. <instance-parameter name="segment" transfer-ownership="none">
  32680. <doc xml:space="preserve">a #GstSegment structure.</doc>
  32681. <type name="Segment" c:type="const GstSegment*"/>
  32682. </instance-parameter>
  32683. <parameter name="format" transfer-ownership="none">
  32684. <doc xml:space="preserve">the format of the segment.</doc>
  32685. <type name="Format" c:type="GstFormat"/>
  32686. </parameter>
  32687. <parameter name="position" transfer-ownership="none">
  32688. <doc xml:space="preserve">the position in the segment</doc>
  32689. <type name="guint64" c:type="guint64"/>
  32690. </parameter>
  32691. <parameter name="stream_time" transfer-ownership="none">
  32692. <doc xml:space="preserve">result stream-time</doc>
  32693. <type name="guint64" c:type="guint64*"/>
  32694. </parameter>
  32695. </parameters>
  32696. </method>
  32697. </record>
  32698. <bitfield name="SegmentFlags"
  32699. glib:type-name="GstSegmentFlags"
  32700. glib:get-type="gst_segment_flags_get_type"
  32701. c:type="GstSegmentFlags">
  32702. <doc xml:space="preserve">Flags for the GstSegment structure. Currently mapped to the corresponding
  32703. values of the seek flags.</doc>
  32704. <member name="none"
  32705. value="0"
  32706. c:identifier="GST_SEGMENT_FLAG_NONE"
  32707. glib:nick="none">
  32708. <doc xml:space="preserve">no flags</doc>
  32709. </member>
  32710. <member name="reset"
  32711. value="1"
  32712. c:identifier="GST_SEGMENT_FLAG_RESET"
  32713. glib:nick="reset">
  32714. <doc xml:space="preserve">reset the pipeline running_time to the segment
  32715. running_time</doc>
  32716. </member>
  32717. <member name="trickmode"
  32718. value="16"
  32719. c:identifier="GST_SEGMENT_FLAG_TRICKMODE"
  32720. glib:nick="trickmode">
  32721. <doc xml:space="preserve">perform skip playback (Since 1.6)</doc>
  32722. </member>
  32723. <member name="skip"
  32724. value="16"
  32725. c:identifier="GST_SEGMENT_FLAG_SKIP"
  32726. glib:nick="skip">
  32727. <doc xml:space="preserve">Deprecated backward compatibility flag, replaced
  32728. by @GST_SEGMENT_FLAG_TRICKMODE</doc>
  32729. </member>
  32730. <member name="segment"
  32731. value="8"
  32732. c:identifier="GST_SEGMENT_FLAG_SEGMENT"
  32733. glib:nick="segment">
  32734. <doc xml:space="preserve">send SEGMENT_DONE instead of EOS</doc>
  32735. </member>
  32736. <member name="trickmode_key_units"
  32737. value="128"
  32738. c:identifier="GST_SEGMENT_FLAG_TRICKMODE_KEY_UNITS"
  32739. glib:nick="trickmode-key-units">
  32740. <doc xml:space="preserve">Decode only keyframes, where
  32741. possible (Since 1.6)</doc>
  32742. </member>
  32743. <member name="trickmode_no_audio"
  32744. value="256"
  32745. c:identifier="GST_SEGMENT_FLAG_TRICKMODE_NO_AUDIO"
  32746. glib:nick="trickmode-no-audio">
  32747. <doc xml:space="preserve">Do not decode any audio, where
  32748. possible (Since 1.6)</doc>
  32749. </member>
  32750. </bitfield>
  32751. <enumeration name="State"
  32752. glib:type-name="GstState"
  32753. glib:get-type="gst_state_get_type"
  32754. c:type="GstState">
  32755. <doc xml:space="preserve">The possible states an element can be in. States can be changed using
  32756. gst_element_set_state() and checked using gst_element_get_state().</doc>
  32757. <member name="void_pending"
  32758. value="0"
  32759. c:identifier="GST_STATE_VOID_PENDING"
  32760. glib:nick="void-pending">
  32761. <doc xml:space="preserve">no pending state.</doc>
  32762. </member>
  32763. <member name="null"
  32764. value="1"
  32765. c:identifier="GST_STATE_NULL"
  32766. glib:nick="null">
  32767. <doc xml:space="preserve">the NULL state or initial state of an element.</doc>
  32768. </member>
  32769. <member name="ready"
  32770. value="2"
  32771. c:identifier="GST_STATE_READY"
  32772. glib:nick="ready">
  32773. <doc xml:space="preserve">the element is ready to go to PAUSED.</doc>
  32774. </member>
  32775. <member name="paused"
  32776. value="3"
  32777. c:identifier="GST_STATE_PAUSED"
  32778. glib:nick="paused">
  32779. <doc xml:space="preserve">the element is PAUSED, it is ready to accept and
  32780. process data. Sink elements however only accept one
  32781. buffer and then block.</doc>
  32782. </member>
  32783. <member name="playing"
  32784. value="4"
  32785. c:identifier="GST_STATE_PLAYING"
  32786. glib:nick="playing">
  32787. <doc xml:space="preserve">the element is PLAYING, the #GstClock is running and
  32788. the data is flowing.</doc>
  32789. </member>
  32790. </enumeration>
  32791. <enumeration name="StateChange"
  32792. glib:type-name="GstStateChange"
  32793. glib:get-type="gst_state_change_get_type"
  32794. c:type="GstStateChange">
  32795. <doc xml:space="preserve">These are the different state changes an element goes through.
  32796. %GST_STATE_NULL &amp;rArr; %GST_STATE_PLAYING is called an upwards state change
  32797. and %GST_STATE_PLAYING &amp;rArr; %GST_STATE_NULL a downwards state change.</doc>
  32798. <member name="null_to_ready"
  32799. value="10"
  32800. c:identifier="GST_STATE_CHANGE_NULL_TO_READY"
  32801. glib:nick="null-to-ready">
  32802. <doc xml:space="preserve">state change from NULL to READY.
  32803. &lt;itemizedlist&gt;
  32804. &lt;listitem&gt;&lt;para&gt;
  32805. The element must check if the resources it needs are available. Device
  32806. sinks and -sources typically try to probe the device to constrain their
  32807. caps.
  32808. &lt;/para&gt;&lt;/listitem&gt;
  32809. &lt;listitem&gt;&lt;para&gt;
  32810. The element opens the device (in case feature need to be probed).
  32811. &lt;/para&gt;&lt;/listitem&gt;
  32812. &lt;/itemizedlist&gt;</doc>
  32813. </member>
  32814. <member name="ready_to_paused"
  32815. value="19"
  32816. c:identifier="GST_STATE_CHANGE_READY_TO_PAUSED"
  32817. glib:nick="ready-to-paused">
  32818. <doc xml:space="preserve">state change from READY to PAUSED.
  32819. &lt;itemizedlist&gt;
  32820. &lt;listitem&gt;&lt;para&gt;
  32821. The element pads are activated in order to receive data in PAUSED.
  32822. Streaming threads are started.
  32823. &lt;/para&gt;&lt;/listitem&gt;
  32824. &lt;listitem&gt;&lt;para&gt;
  32825. Some elements might need to return %GST_STATE_CHANGE_ASYNC and complete
  32826. the state change when they have enough information. It is a requirement
  32827. for sinks to return %GST_STATE_CHANGE_ASYNC and complete the state change
  32828. when they receive the first buffer or %GST_EVENT_EOS (preroll).
  32829. Sinks also block the dataflow when in PAUSED.
  32830. &lt;/para&gt;&lt;/listitem&gt;
  32831. &lt;listitem&gt;&lt;para&gt;
  32832. A pipeline resets the running_time to 0.
  32833. &lt;/para&gt;&lt;/listitem&gt;
  32834. &lt;listitem&gt;&lt;para&gt;
  32835. Live sources return %GST_STATE_CHANGE_NO_PREROLL and don't generate data.
  32836. &lt;/para&gt;&lt;/listitem&gt;
  32837. &lt;/itemizedlist&gt;</doc>
  32838. </member>
  32839. <member name="paused_to_playing"
  32840. value="28"
  32841. c:identifier="GST_STATE_CHANGE_PAUSED_TO_PLAYING"
  32842. glib:nick="paused-to-playing">
  32843. <doc xml:space="preserve">state change from PAUSED to PLAYING.
  32844. &lt;itemizedlist&gt;
  32845. &lt;listitem&gt;&lt;para&gt;
  32846. Most elements ignore this state change.
  32847. &lt;/para&gt;&lt;/listitem&gt;
  32848. &lt;listitem&gt;&lt;para&gt;
  32849. The pipeline selects a #GstClock and distributes this to all the children
  32850. before setting them to PLAYING. This means that it is only allowed to
  32851. synchronize on the #GstClock in the PLAYING state.
  32852. &lt;/para&gt;&lt;/listitem&gt;
  32853. &lt;listitem&gt;&lt;para&gt;
  32854. The pipeline uses the #GstClock and the running_time to calculate the
  32855. base_time. The base_time is distributed to all children when performing
  32856. the state change.
  32857. &lt;/para&gt;&lt;/listitem&gt;
  32858. &lt;listitem&gt;&lt;para&gt;
  32859. Sink elements stop blocking on the preroll buffer or event and start
  32860. rendering the data.
  32861. &lt;/para&gt;&lt;/listitem&gt;
  32862. &lt;listitem&gt;&lt;para&gt;
  32863. Sinks can post %GST_MESSAGE_EOS in the PLAYING state. It is not allowed
  32864. to post %GST_MESSAGE_EOS when not in the PLAYING state.
  32865. &lt;/para&gt;&lt;/listitem&gt;
  32866. &lt;listitem&gt;&lt;para&gt;
  32867. While streaming in PAUSED or PLAYING elements can create and remove
  32868. sometimes pads.
  32869. &lt;/para&gt;&lt;/listitem&gt;
  32870. &lt;listitem&gt;&lt;para&gt;
  32871. Live sources start generating data and return %GST_STATE_CHANGE_SUCCESS.
  32872. &lt;/para&gt;&lt;/listitem&gt;
  32873. &lt;/itemizedlist&gt;</doc>
  32874. </member>
  32875. <member name="playing_to_paused"
  32876. value="35"
  32877. c:identifier="GST_STATE_CHANGE_PLAYING_TO_PAUSED"
  32878. glib:nick="playing-to-paused">
  32879. <doc xml:space="preserve">state change from PLAYING to PAUSED.
  32880. &lt;itemizedlist&gt;
  32881. &lt;listitem&gt;&lt;para&gt;
  32882. Most elements ignore this state change.
  32883. &lt;/para&gt;&lt;/listitem&gt;
  32884. &lt;listitem&gt;&lt;para&gt;
  32885. The pipeline calculates the running_time based on the last selected
  32886. #GstClock and the base_time. It stores this information to continue
  32887. playback when going back to the PLAYING state.
  32888. &lt;/para&gt;&lt;/listitem&gt;
  32889. &lt;listitem&gt;&lt;para&gt;
  32890. Sinks unblock any #GstClock wait calls.
  32891. &lt;/para&gt;&lt;/listitem&gt;
  32892. &lt;listitem&gt;&lt;para&gt;
  32893. When a sink does not have a pending buffer to play, it returns
  32894. %GST_STATE_CHANGE_ASYNC from this state change and completes the state
  32895. change when it receives a new buffer or an %GST_EVENT_EOS.
  32896. &lt;/para&gt;&lt;/listitem&gt;
  32897. &lt;listitem&gt;&lt;para&gt;
  32898. Any queued %GST_MESSAGE_EOS items are removed since they will be reposted
  32899. when going back to the PLAYING state. The EOS messages are queued in
  32900. #GstBin containers.
  32901. &lt;/para&gt;&lt;/listitem&gt;
  32902. &lt;listitem&gt;&lt;para&gt;
  32903. Live sources stop generating data and return %GST_STATE_CHANGE_NO_PREROLL.
  32904. &lt;/para&gt;&lt;/listitem&gt;
  32905. &lt;/itemizedlist&gt;</doc>
  32906. </member>
  32907. <member name="paused_to_ready"
  32908. value="26"
  32909. c:identifier="GST_STATE_CHANGE_PAUSED_TO_READY"
  32910. glib:nick="paused-to-ready">
  32911. <doc xml:space="preserve">state change from PAUSED to READY.
  32912. &lt;itemizedlist&gt;
  32913. &lt;listitem&gt;&lt;para&gt;
  32914. Sinks unblock any waits in the preroll.
  32915. &lt;/para&gt;&lt;/listitem&gt;
  32916. &lt;listitem&gt;&lt;para&gt;
  32917. Elements unblock any waits on devices
  32918. &lt;/para&gt;&lt;/listitem&gt;
  32919. &lt;listitem&gt;&lt;para&gt;
  32920. Chain or get_range functions return %GST_FLOW_FLUSHING.
  32921. &lt;/para&gt;&lt;/listitem&gt;
  32922. &lt;listitem&gt;&lt;para&gt;
  32923. The element pads are deactivated so that streaming becomes impossible and
  32924. all streaming threads are stopped.
  32925. &lt;/para&gt;&lt;/listitem&gt;
  32926. &lt;listitem&gt;&lt;para&gt;
  32927. The sink forgets all negotiated formats
  32928. &lt;/para&gt;&lt;/listitem&gt;
  32929. &lt;listitem&gt;&lt;para&gt;
  32930. Elements remove all sometimes pads
  32931. &lt;/para&gt;&lt;/listitem&gt;
  32932. &lt;/itemizedlist&gt;</doc>
  32933. </member>
  32934. <member name="ready_to_null"
  32935. value="17"
  32936. c:identifier="GST_STATE_CHANGE_READY_TO_NULL"
  32937. glib:nick="ready-to-null">
  32938. <doc xml:space="preserve">state change from READY to NULL.
  32939. &lt;itemizedlist&gt;
  32940. &lt;listitem&gt;&lt;para&gt;
  32941. Elements close devices
  32942. &lt;/para&gt;&lt;/listitem&gt;
  32943. &lt;listitem&gt;&lt;para&gt;
  32944. Elements reset any internal state.
  32945. &lt;/para&gt;&lt;/listitem&gt;
  32946. &lt;/itemizedlist&gt;</doc>
  32947. </member>
  32948. </enumeration>
  32949. <enumeration name="StateChangeReturn"
  32950. glib:type-name="GstStateChangeReturn"
  32951. glib:get-type="gst_state_change_return_get_type"
  32952. c:type="GstStateChangeReturn">
  32953. <doc xml:space="preserve">The possible return values from a state change function such as
  32954. gst_element_set_state(). Only @GST_STATE_CHANGE_FAILURE is a real failure.</doc>
  32955. <member name="failure"
  32956. value="0"
  32957. c:identifier="GST_STATE_CHANGE_FAILURE"
  32958. glib:nick="failure">
  32959. <doc xml:space="preserve">the state change failed</doc>
  32960. </member>
  32961. <member name="success"
  32962. value="1"
  32963. c:identifier="GST_STATE_CHANGE_SUCCESS"
  32964. glib:nick="success">
  32965. <doc xml:space="preserve">the state change succeeded</doc>
  32966. </member>
  32967. <member name="async"
  32968. value="2"
  32969. c:identifier="GST_STATE_CHANGE_ASYNC"
  32970. glib:nick="async">
  32971. <doc xml:space="preserve">the state change will happen asynchronously</doc>
  32972. </member>
  32973. <member name="no_preroll"
  32974. value="3"
  32975. c:identifier="GST_STATE_CHANGE_NO_PREROLL"
  32976. glib:nick="no-preroll">
  32977. <doc xml:space="preserve">the state change succeeded but the element
  32978. cannot produce data in %GST_STATE_PAUSED.
  32979. This typically happens with live sources.</doc>
  32980. </member>
  32981. </enumeration>
  32982. <record name="StaticCaps" c:type="GstStaticCaps">
  32983. <doc xml:space="preserve">Datastructure to initialize #GstCaps from a string description usually
  32984. used in conjunction with GST_STATIC_CAPS() and gst_static_caps_get() to
  32985. instantiate a #GstCaps.</doc>
  32986. <field name="caps" writable="1">
  32987. <doc xml:space="preserve">the cached #GstCaps</doc>
  32988. <type name="Caps" c:type="GstCaps*"/>
  32989. </field>
  32990. <field name="string" writable="1">
  32991. <doc xml:space="preserve">a string describing a caps</doc>
  32992. <type name="utf8" c:type="const char*"/>
  32993. </field>
  32994. <field name="_gst_reserved" readable="0" private="1">
  32995. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  32996. <type name="gpointer" c:type="gpointer"/>
  32997. </array>
  32998. </field>
  32999. <method name="cleanup" c:identifier="gst_static_caps_cleanup">
  33000. <doc xml:space="preserve">Clean up the cached caps contained in @static_caps.</doc>
  33001. <return-value transfer-ownership="none">
  33002. <type name="none" c:type="void"/>
  33003. </return-value>
  33004. <parameters>
  33005. <instance-parameter name="static_caps" transfer-ownership="none">
  33006. <doc xml:space="preserve">the #GstStaticCaps to clean</doc>
  33007. <type name="StaticCaps" c:type="GstStaticCaps*"/>
  33008. </instance-parameter>
  33009. </parameters>
  33010. </method>
  33011. <method name="get" c:identifier="gst_static_caps_get">
  33012. <doc xml:space="preserve">Converts a #GstStaticCaps to a #GstCaps.</doc>
  33013. <return-value transfer-ownership="full">
  33014. <doc xml:space="preserve">a pointer to the #GstCaps. Unref after usage.
  33015. Since the core holds an additional ref to the returned caps,
  33016. use gst_caps_make_writable() on the returned caps to modify it.</doc>
  33017. <type name="Caps" c:type="GstCaps*"/>
  33018. </return-value>
  33019. <parameters>
  33020. <instance-parameter name="static_caps" transfer-ownership="none">
  33021. <doc xml:space="preserve">the #GstStaticCaps to convert</doc>
  33022. <type name="StaticCaps" c:type="GstStaticCaps*"/>
  33023. </instance-parameter>
  33024. </parameters>
  33025. </method>
  33026. </record>
  33027. <record name="StaticPadTemplate" c:type="GstStaticPadTemplate">
  33028. <doc xml:space="preserve">Structure describing the #GstStaticPadTemplate.</doc>
  33029. <field name="name_template" writable="1">
  33030. <doc xml:space="preserve">the name of the template</doc>
  33031. <type name="utf8" c:type="const gchar*"/>
  33032. </field>
  33033. <field name="direction" writable="1">
  33034. <doc xml:space="preserve">the direction of the template</doc>
  33035. <type name="PadDirection" c:type="GstPadDirection"/>
  33036. </field>
  33037. <field name="presence" writable="1">
  33038. <doc xml:space="preserve">the presence of the template</doc>
  33039. <type name="PadPresence" c:type="GstPadPresence"/>
  33040. </field>
  33041. <field name="static_caps" writable="1">
  33042. <doc xml:space="preserve">the caps of the template.</doc>
  33043. <type name="StaticCaps" c:type="GstStaticCaps"/>
  33044. </field>
  33045. <method name="get" c:identifier="gst_static_pad_template_get">
  33046. <doc xml:space="preserve">Converts a #GstStaticPadTemplate into a #GstPadTemplate.</doc>
  33047. <return-value transfer-ownership="full">
  33048. <doc xml:space="preserve">a new #GstPadTemplate.</doc>
  33049. <type name="PadTemplate" c:type="GstPadTemplate*"/>
  33050. </return-value>
  33051. <parameters>
  33052. <instance-parameter name="pad_template" transfer-ownership="none">
  33053. <doc xml:space="preserve">the static pad template</doc>
  33054. <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
  33055. </instance-parameter>
  33056. </parameters>
  33057. </method>
  33058. <method name="get_caps" c:identifier="gst_static_pad_template_get_caps">
  33059. <doc xml:space="preserve">Gets the capabilities of the static pad template.</doc>
  33060. <return-value transfer-ownership="full">
  33061. <doc xml:space="preserve">the #GstCaps of the static pad template.
  33062. Unref after usage. Since the core holds an additional
  33063. ref to the returned caps, use gst_caps_make_writable()
  33064. on the returned caps to modify it.</doc>
  33065. <type name="Caps" c:type="GstCaps*"/>
  33066. </return-value>
  33067. <parameters>
  33068. <instance-parameter name="templ" transfer-ownership="none">
  33069. <doc xml:space="preserve">a #GstStaticPadTemplate to get capabilities of.</doc>
  33070. <type name="StaticPadTemplate" c:type="GstStaticPadTemplate*"/>
  33071. </instance-parameter>
  33072. </parameters>
  33073. </method>
  33074. </record>
  33075. <enumeration name="StreamError"
  33076. glib:type-name="GstStreamError"
  33077. glib:get-type="gst_stream_error_get_type"
  33078. c:type="GstStreamError"
  33079. glib:error-domain="gst-stream-error-quark">
  33080. <doc xml:space="preserve">Stream errors are for anything related to the stream being processed:
  33081. format errors, media type errors, ...
  33082. They're typically used by decoders, demuxers, converters, ...</doc>
  33083. <member name="failed"
  33084. value="1"
  33085. c:identifier="GST_STREAM_ERROR_FAILED"
  33086. glib:nick="failed">
  33087. <doc xml:space="preserve">a general error which doesn't fit in any other
  33088. category. Make sure you add a custom message to the error call.</doc>
  33089. </member>
  33090. <member name="too_lazy"
  33091. value="2"
  33092. c:identifier="GST_STREAM_ERROR_TOO_LAZY"
  33093. glib:nick="too-lazy">
  33094. <doc xml:space="preserve">do not use this except as a placeholder for
  33095. deciding where to go while developing code.</doc>
  33096. </member>
  33097. <member name="not_implemented"
  33098. value="3"
  33099. c:identifier="GST_STREAM_ERROR_NOT_IMPLEMENTED"
  33100. glib:nick="not-implemented">
  33101. <doc xml:space="preserve">use this when you do not want to implement
  33102. this functionality yet.</doc>
  33103. </member>
  33104. <member name="type_not_found"
  33105. value="4"
  33106. c:identifier="GST_STREAM_ERROR_TYPE_NOT_FOUND"
  33107. glib:nick="type-not-found">
  33108. <doc xml:space="preserve">used when the element doesn't know the
  33109. stream's type.</doc>
  33110. </member>
  33111. <member name="wrong_type"
  33112. value="5"
  33113. c:identifier="GST_STREAM_ERROR_WRONG_TYPE"
  33114. glib:nick="wrong-type">
  33115. <doc xml:space="preserve">used when the element doesn't handle this type
  33116. of stream.</doc>
  33117. </member>
  33118. <member name="codec_not_found"
  33119. value="6"
  33120. c:identifier="GST_STREAM_ERROR_CODEC_NOT_FOUND"
  33121. glib:nick="codec-not-found">
  33122. <doc xml:space="preserve">used when there's no codec to handle the
  33123. stream's type.</doc>
  33124. </member>
  33125. <member name="decode"
  33126. value="7"
  33127. c:identifier="GST_STREAM_ERROR_DECODE"
  33128. glib:nick="decode">
  33129. <doc xml:space="preserve">used when decoding fails.</doc>
  33130. </member>
  33131. <member name="encode"
  33132. value="8"
  33133. c:identifier="GST_STREAM_ERROR_ENCODE"
  33134. glib:nick="encode">
  33135. <doc xml:space="preserve">used when encoding fails.</doc>
  33136. </member>
  33137. <member name="demux"
  33138. value="9"
  33139. c:identifier="GST_STREAM_ERROR_DEMUX"
  33140. glib:nick="demux">
  33141. <doc xml:space="preserve">used when demuxing fails.</doc>
  33142. </member>
  33143. <member name="mux"
  33144. value="10"
  33145. c:identifier="GST_STREAM_ERROR_MUX"
  33146. glib:nick="mux">
  33147. <doc xml:space="preserve">used when muxing fails.</doc>
  33148. </member>
  33149. <member name="format"
  33150. value="11"
  33151. c:identifier="GST_STREAM_ERROR_FORMAT"
  33152. glib:nick="format">
  33153. <doc xml:space="preserve">used when the stream is of the wrong format
  33154. (for example, wrong caps).</doc>
  33155. </member>
  33156. <member name="decrypt"
  33157. value="12"
  33158. c:identifier="GST_STREAM_ERROR_DECRYPT"
  33159. glib:nick="decrypt">
  33160. <doc xml:space="preserve">used when the stream is encrypted and can't be
  33161. decrypted because this is not supported by the element.</doc>
  33162. </member>
  33163. <member name="decrypt_nokey"
  33164. value="13"
  33165. c:identifier="GST_STREAM_ERROR_DECRYPT_NOKEY"
  33166. glib:nick="decrypt-nokey">
  33167. <doc xml:space="preserve">used when the stream is encrypted and
  33168. can't be decrypted because no suitable key is available.</doc>
  33169. </member>
  33170. <member name="num_errors"
  33171. value="14"
  33172. c:identifier="GST_STREAM_ERROR_NUM_ERRORS"
  33173. glib:nick="num-errors">
  33174. <doc xml:space="preserve">the number of stream error types.</doc>
  33175. </member>
  33176. <function name="quark" c:identifier="gst_stream_error_quark">
  33177. <return-value transfer-ownership="none">
  33178. <type name="GLib.Quark" c:type="GQuark"/>
  33179. </return-value>
  33180. </function>
  33181. </enumeration>
  33182. <bitfield name="StreamFlags"
  33183. version="1.2"
  33184. glib:type-name="GstStreamFlags"
  33185. glib:get-type="gst_stream_flags_get_type"
  33186. c:type="GstStreamFlags">
  33187. <member name="none"
  33188. value="0"
  33189. c:identifier="GST_STREAM_FLAG_NONE"
  33190. glib:nick="none">
  33191. <doc xml:space="preserve">This stream has no special attributes</doc>
  33192. </member>
  33193. <member name="sparse"
  33194. value="1"
  33195. c:identifier="GST_STREAM_FLAG_SPARSE"
  33196. glib:nick="sparse">
  33197. <doc xml:space="preserve">This stream is a sparse stream (e.g. a subtitle
  33198. stream), data may flow only in irregular intervals with large gaps in
  33199. between.</doc>
  33200. </member>
  33201. <member name="select"
  33202. value="2"
  33203. c:identifier="GST_STREAM_FLAG_SELECT"
  33204. glib:nick="select">
  33205. <doc xml:space="preserve">This stream should be selected by default. This
  33206. flag may be used by demuxers to signal that a stream should be selected
  33207. by default in a playback scenario.</doc>
  33208. </member>
  33209. <member name="unselect"
  33210. value="4"
  33211. c:identifier="GST_STREAM_FLAG_UNSELECT"
  33212. glib:nick="unselect">
  33213. <doc xml:space="preserve">This stream should not be selected by default.
  33214. This flag may be used by demuxers to signal that a stream should not
  33215. be selected by default in a playback scenario, but only if explicitly
  33216. selected by the user (e.g. an audio track for the hard of hearing or
  33217. a director's commentary track).</doc>
  33218. </member>
  33219. </bitfield>
  33220. <enumeration name="StreamStatusType"
  33221. glib:type-name="GstStreamStatusType"
  33222. glib:get-type="gst_stream_status_type_get_type"
  33223. c:type="GstStreamStatusType">
  33224. <doc xml:space="preserve">The type of a %GST_MESSAGE_STREAM_STATUS. The stream status messages inform the
  33225. application of new streaming threads and their status.</doc>
  33226. <member name="create"
  33227. value="0"
  33228. c:identifier="GST_STREAM_STATUS_TYPE_CREATE"
  33229. glib:nick="create">
  33230. <doc xml:space="preserve">A new thread need to be created.</doc>
  33231. </member>
  33232. <member name="enter"
  33233. value="1"
  33234. c:identifier="GST_STREAM_STATUS_TYPE_ENTER"
  33235. glib:nick="enter">
  33236. <doc xml:space="preserve">a thread entered its loop function</doc>
  33237. </member>
  33238. <member name="leave"
  33239. value="2"
  33240. c:identifier="GST_STREAM_STATUS_TYPE_LEAVE"
  33241. glib:nick="leave">
  33242. <doc xml:space="preserve">a thread left its loop function</doc>
  33243. </member>
  33244. <member name="destroy"
  33245. value="3"
  33246. c:identifier="GST_STREAM_STATUS_TYPE_DESTROY"
  33247. glib:nick="destroy">
  33248. <doc xml:space="preserve">a thread is destroyed</doc>
  33249. </member>
  33250. <member name="start"
  33251. value="8"
  33252. c:identifier="GST_STREAM_STATUS_TYPE_START"
  33253. glib:nick="start">
  33254. <doc xml:space="preserve">a thread is started</doc>
  33255. </member>
  33256. <member name="pause"
  33257. value="9"
  33258. c:identifier="GST_STREAM_STATUS_TYPE_PAUSE"
  33259. glib:nick="pause">
  33260. <doc xml:space="preserve">a thread is paused</doc>
  33261. </member>
  33262. <member name="stop"
  33263. value="10"
  33264. c:identifier="GST_STREAM_STATUS_TYPE_STOP"
  33265. glib:nick="stop">
  33266. <doc xml:space="preserve">a thread is stopped</doc>
  33267. </member>
  33268. </enumeration>
  33269. <record name="Structure"
  33270. c:type="GstStructure"
  33271. glib:type-name="GstStructure"
  33272. glib:get-type="gst_structure_get_type"
  33273. c:symbol-prefix="structure">
  33274. <doc xml:space="preserve">A #GstStructure is a collection of key/value pairs. The keys are expressed
  33275. as GQuarks and the values can be of any GType.
  33276. In addition to the key/value pairs, a #GstStructure also has a name. The name
  33277. starts with a letter and can be filled by letters, numbers and any of "/-_.:".
  33278. #GstStructure is used by various GStreamer subsystems to store information
  33279. in a flexible and extensible way. A #GstStructure does not have a refcount
  33280. because it usually is part of a higher level object such as #GstCaps,
  33281. #GstMessage, #GstEvent, #GstQuery. It provides a means to enforce mutability
  33282. using the refcount of the parent with the gst_structure_set_parent_refcount()
  33283. method.
  33284. A #GstStructure can be created with gst_structure_new_empty() or
  33285. gst_structure_new(), which both take a name and an optional set of
  33286. key/value pairs along with the types of the values.
  33287. Field values can be changed with gst_structure_set_value() or
  33288. gst_structure_set().
  33289. Field values can be retrieved with gst_structure_get_value() or the more
  33290. convenient gst_structure_get_*() functions.
  33291. Fields can be removed with gst_structure_remove_field() or
  33292. gst_structure_remove_fields().
  33293. Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
  33294. not allowed. Strings may be %NULL however.
  33295. Be aware that the current #GstCaps / #GstStructure serialization into string
  33296. has limited support for nested #GstCaps / #GstStructure fields. It can only
  33297. support one level of nesting. Using more levels will lead to unexpected
  33298. behavior when using serialization features, such as gst_caps_to_string() or
  33299. gst_value_serialize() and their counterparts.</doc>
  33300. <field name="type" writable="1">
  33301. <doc xml:space="preserve">the GType of a structure</doc>
  33302. <type name="GType" c:type="GType"/>
  33303. </field>
  33304. <field name="name" readable="0" private="1">
  33305. <type name="GLib.Quark" c:type="GQuark"/>
  33306. </field>
  33307. <constructor name="new"
  33308. c:identifier="gst_structure_new"
  33309. introspectable="0">
  33310. <doc xml:space="preserve">Creates a new #GstStructure with the given name. Parses the
  33311. list of variable arguments and sets fields to the values listed.
  33312. Variable arguments should be passed as field name, field type,
  33313. and value. Last variable argument should be %NULL.
  33314. Free-function: gst_structure_free</doc>
  33315. <return-value transfer-ownership="full">
  33316. <doc xml:space="preserve">a new #GstStructure</doc>
  33317. <type name="Structure" c:type="GstStructure*"/>
  33318. </return-value>
  33319. <parameters>
  33320. <parameter name="name" transfer-ownership="none">
  33321. <doc xml:space="preserve">name of new structure</doc>
  33322. <type name="utf8" c:type="const gchar*"/>
  33323. </parameter>
  33324. <parameter name="firstfield" transfer-ownership="none">
  33325. <doc xml:space="preserve">name of first field to set</doc>
  33326. <type name="utf8" c:type="const gchar*"/>
  33327. </parameter>
  33328. <parameter name="..." transfer-ownership="none">
  33329. <doc xml:space="preserve">additional arguments</doc>
  33330. <varargs/>
  33331. </parameter>
  33332. </parameters>
  33333. </constructor>
  33334. <constructor name="new_empty" c:identifier="gst_structure_new_empty">
  33335. <doc xml:space="preserve">Creates a new, empty #GstStructure with the given @name.
  33336. See gst_structure_set_name() for constraints on the @name parameter.
  33337. Free-function: gst_structure_free</doc>
  33338. <return-value transfer-ownership="full">
  33339. <doc xml:space="preserve">a new, empty #GstStructure</doc>
  33340. <type name="Structure" c:type="GstStructure*"/>
  33341. </return-value>
  33342. <parameters>
  33343. <parameter name="name" transfer-ownership="none">
  33344. <doc xml:space="preserve">name of new structure</doc>
  33345. <type name="utf8" c:type="const gchar*"/>
  33346. </parameter>
  33347. </parameters>
  33348. </constructor>
  33349. <constructor name="new_from_string"
  33350. c:identifier="gst_structure_new_from_string"
  33351. version="1.2">
  33352. <doc xml:space="preserve">Creates a #GstStructure from a string representation.
  33353. If end is not %NULL, a pointer to the place inside the given string
  33354. where parsing ended will be returned.
  33355. The current implementation of serialization will lead to unexpected results
  33356. when there are nested #GstCaps / #GstStructure deeper than one level.
  33357. Free-function: gst_structure_free</doc>
  33358. <return-value transfer-ownership="full" nullable="1">
  33359. <doc xml:space="preserve">a new #GstStructure or %NULL
  33360. when the string could not be parsed. Free with
  33361. gst_structure_free() after use.</doc>
  33362. <type name="Structure" c:type="GstStructure*"/>
  33363. </return-value>
  33364. <parameters>
  33365. <parameter name="string" transfer-ownership="none">
  33366. <doc xml:space="preserve">a string representation of a #GstStructure</doc>
  33367. <type name="utf8" c:type="const gchar*"/>
  33368. </parameter>
  33369. </parameters>
  33370. </constructor>
  33371. <constructor name="new_id"
  33372. c:identifier="gst_structure_new_id"
  33373. introspectable="0">
  33374. <doc xml:space="preserve">Creates a new #GstStructure with the given name as a GQuark, followed by
  33375. fieldname quark, GType, argument(s) "triplets" in the same format as
  33376. gst_structure_id_set(). Basically a convenience wrapper around
  33377. gst_structure_new_id_empty() and gst_structure_id_set().
  33378. The last variable argument must be %NULL (or 0).
  33379. Free-function: gst_structure_free</doc>
  33380. <return-value transfer-ownership="full">
  33381. <doc xml:space="preserve">a new #GstStructure</doc>
  33382. <type name="Structure" c:type="GstStructure*"/>
  33383. </return-value>
  33384. <parameters>
  33385. <parameter name="name_quark" transfer-ownership="none">
  33386. <doc xml:space="preserve">name of new structure</doc>
  33387. <type name="GLib.Quark" c:type="GQuark"/>
  33388. </parameter>
  33389. <parameter name="field_quark" transfer-ownership="none">
  33390. <doc xml:space="preserve">the GQuark for the name of the field to set</doc>
  33391. <type name="GLib.Quark" c:type="GQuark"/>
  33392. </parameter>
  33393. <parameter name="..." transfer-ownership="none">
  33394. <doc xml:space="preserve">variable arguments</doc>
  33395. <varargs/>
  33396. </parameter>
  33397. </parameters>
  33398. </constructor>
  33399. <constructor name="new_id_empty"
  33400. c:identifier="gst_structure_new_id_empty">
  33401. <doc xml:space="preserve">Creates a new, empty #GstStructure with the given name as a GQuark.
  33402. Free-function: gst_structure_free</doc>
  33403. <return-value transfer-ownership="full">
  33404. <doc xml:space="preserve">a new, empty #GstStructure</doc>
  33405. <type name="Structure" c:type="GstStructure*"/>
  33406. </return-value>
  33407. <parameters>
  33408. <parameter name="quark" transfer-ownership="none">
  33409. <doc xml:space="preserve">name of new structure</doc>
  33410. <type name="GLib.Quark" c:type="GQuark"/>
  33411. </parameter>
  33412. </parameters>
  33413. </constructor>
  33414. <constructor name="new_valist"
  33415. c:identifier="gst_structure_new_valist"
  33416. introspectable="0">
  33417. <doc xml:space="preserve">Creates a new #GstStructure with the given @name. Structure fields
  33418. are set according to the varargs in a manner similar to
  33419. gst_structure_new().
  33420. See gst_structure_set_name() for constraints on the @name parameter.
  33421. Free-function: gst_structure_free</doc>
  33422. <return-value transfer-ownership="full">
  33423. <doc xml:space="preserve">a new #GstStructure</doc>
  33424. <type name="Structure" c:type="GstStructure*"/>
  33425. </return-value>
  33426. <parameters>
  33427. <parameter name="name" transfer-ownership="none">
  33428. <doc xml:space="preserve">name of new structure</doc>
  33429. <type name="utf8" c:type="const gchar*"/>
  33430. </parameter>
  33431. <parameter name="firstfield" transfer-ownership="none">
  33432. <doc xml:space="preserve">name of first field to set</doc>
  33433. <type name="utf8" c:type="const gchar*"/>
  33434. </parameter>
  33435. <parameter name="varargs" transfer-ownership="none">
  33436. <doc xml:space="preserve">variable argument list</doc>
  33437. <type name="va_list" c:type="va_list"/>
  33438. </parameter>
  33439. </parameters>
  33440. </constructor>
  33441. <method name="can_intersect" c:identifier="gst_structure_can_intersect">
  33442. <doc xml:space="preserve">Tries intersecting @struct1 and @struct2 and reports whether the result
  33443. would not be empty.</doc>
  33444. <return-value transfer-ownership="none">
  33445. <doc xml:space="preserve">%TRUE if intersection would not be empty</doc>
  33446. <type name="gboolean" c:type="gboolean"/>
  33447. </return-value>
  33448. <parameters>
  33449. <instance-parameter name="struct1" transfer-ownership="none">
  33450. <doc xml:space="preserve">a #GstStructure</doc>
  33451. <type name="Structure" c:type="const GstStructure*"/>
  33452. </instance-parameter>
  33453. <parameter name="struct2" transfer-ownership="none">
  33454. <doc xml:space="preserve">a #GstStructure</doc>
  33455. <type name="Structure" c:type="const GstStructure*"/>
  33456. </parameter>
  33457. </parameters>
  33458. </method>
  33459. <method name="copy" c:identifier="gst_structure_copy">
  33460. <doc xml:space="preserve">Duplicates a #GstStructure and all its fields and values.
  33461. Free-function: gst_structure_free</doc>
  33462. <return-value transfer-ownership="full">
  33463. <doc xml:space="preserve">a new #GstStructure.</doc>
  33464. <type name="Structure" c:type="GstStructure*"/>
  33465. </return-value>
  33466. <parameters>
  33467. <instance-parameter name="structure" transfer-ownership="none">
  33468. <doc xml:space="preserve">a #GstStructure to duplicate</doc>
  33469. <type name="Structure" c:type="const GstStructure*"/>
  33470. </instance-parameter>
  33471. </parameters>
  33472. </method>
  33473. <method name="filter_and_map_in_place"
  33474. c:identifier="gst_structure_filter_and_map_in_place"
  33475. version="1.6">
  33476. <doc xml:space="preserve">Calls the provided function once for each field in the #GstStructure. In
  33477. contrast to gst_structure_foreach(), the function may modify the fields.
  33478. In contrast to gst_structure_map_in_place(), the field is removed from
  33479. the structure if %FALSE is returned from the function.
  33480. The structure must be mutable.</doc>
  33481. <return-value transfer-ownership="none">
  33482. <type name="none" c:type="void"/>
  33483. </return-value>
  33484. <parameters>
  33485. <instance-parameter name="structure" transfer-ownership="none">
  33486. <doc xml:space="preserve">a #GstStructure</doc>
  33487. <type name="Structure" c:type="GstStructure*"/>
  33488. </instance-parameter>
  33489. <parameter name="func"
  33490. transfer-ownership="none"
  33491. scope="call"
  33492. closure="1">
  33493. <doc xml:space="preserve">a function to call for each field</doc>
  33494. <type name="StructureFilterMapFunc"
  33495. c:type="GstStructureFilterMapFunc"/>
  33496. </parameter>
  33497. <parameter name="user_data"
  33498. transfer-ownership="none"
  33499. nullable="1"
  33500. allow-none="1">
  33501. <doc xml:space="preserve">private data</doc>
  33502. <type name="gpointer" c:type="gpointer"/>
  33503. </parameter>
  33504. </parameters>
  33505. </method>
  33506. <method name="fixate" c:identifier="gst_structure_fixate">
  33507. <doc xml:space="preserve">Fixate all values in @structure using gst_value_fixate().
  33508. @structure will be modified in-place and should be writable.</doc>
  33509. <return-value transfer-ownership="none">
  33510. <type name="none" c:type="void"/>
  33511. </return-value>
  33512. <parameters>
  33513. <instance-parameter name="structure" transfer-ownership="none">
  33514. <doc xml:space="preserve">a #GstStructure</doc>
  33515. <type name="Structure" c:type="GstStructure*"/>
  33516. </instance-parameter>
  33517. </parameters>
  33518. </method>
  33519. <method name="fixate_field" c:identifier="gst_structure_fixate_field">
  33520. <doc xml:space="preserve">Fixates a #GstStructure by changing the given field with its fixated value.</doc>
  33521. <return-value transfer-ownership="none">
  33522. <doc xml:space="preserve">%TRUE if the structure field could be fixated</doc>
  33523. <type name="gboolean" c:type="gboolean"/>
  33524. </return-value>
  33525. <parameters>
  33526. <instance-parameter name="structure" transfer-ownership="none">
  33527. <doc xml:space="preserve">a #GstStructure</doc>
  33528. <type name="Structure" c:type="GstStructure*"/>
  33529. </instance-parameter>
  33530. <parameter name="field_name" transfer-ownership="none">
  33531. <doc xml:space="preserve">a field in @structure</doc>
  33532. <type name="utf8" c:type="const char*"/>
  33533. </parameter>
  33534. </parameters>
  33535. </method>
  33536. <method name="fixate_field_boolean"
  33537. c:identifier="gst_structure_fixate_field_boolean">
  33538. <doc xml:space="preserve">Fixates a #GstStructure by changing the given @field_name field to the given
  33539. @target boolean if that field is not fixed yet.</doc>
  33540. <return-value transfer-ownership="none">
  33541. <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
  33542. <type name="gboolean" c:type="gboolean"/>
  33543. </return-value>
  33544. <parameters>
  33545. <instance-parameter name="structure" transfer-ownership="none">
  33546. <doc xml:space="preserve">a #GstStructure</doc>
  33547. <type name="Structure" c:type="GstStructure*"/>
  33548. </instance-parameter>
  33549. <parameter name="field_name" transfer-ownership="none">
  33550. <doc xml:space="preserve">a field in @structure</doc>
  33551. <type name="utf8" c:type="const char*"/>
  33552. </parameter>
  33553. <parameter name="target" transfer-ownership="none">
  33554. <doc xml:space="preserve">the target value of the fixation</doc>
  33555. <type name="gboolean" c:type="gboolean"/>
  33556. </parameter>
  33557. </parameters>
  33558. </method>
  33559. <method name="fixate_field_nearest_double"
  33560. c:identifier="gst_structure_fixate_field_nearest_double">
  33561. <doc xml:space="preserve">Fixates a #GstStructure by changing the given field to the nearest
  33562. double to @target that is a subset of the existing field.</doc>
  33563. <return-value transfer-ownership="none">
  33564. <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
  33565. <type name="gboolean" c:type="gboolean"/>
  33566. </return-value>
  33567. <parameters>
  33568. <instance-parameter name="structure" transfer-ownership="none">
  33569. <doc xml:space="preserve">a #GstStructure</doc>
  33570. <type name="Structure" c:type="GstStructure*"/>
  33571. </instance-parameter>
  33572. <parameter name="field_name" transfer-ownership="none">
  33573. <doc xml:space="preserve">a field in @structure</doc>
  33574. <type name="utf8" c:type="const char*"/>
  33575. </parameter>
  33576. <parameter name="target" transfer-ownership="none">
  33577. <doc xml:space="preserve">the target value of the fixation</doc>
  33578. <type name="gdouble" c:type="double"/>
  33579. </parameter>
  33580. </parameters>
  33581. </method>
  33582. <method name="fixate_field_nearest_fraction"
  33583. c:identifier="gst_structure_fixate_field_nearest_fraction">
  33584. <doc xml:space="preserve">Fixates a #GstStructure by changing the given field to the nearest
  33585. fraction to @target_numerator/@target_denominator that is a subset
  33586. of the existing field.</doc>
  33587. <return-value transfer-ownership="none">
  33588. <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
  33589. <type name="gboolean" c:type="gboolean"/>
  33590. </return-value>
  33591. <parameters>
  33592. <instance-parameter name="structure" transfer-ownership="none">
  33593. <doc xml:space="preserve">a #GstStructure</doc>
  33594. <type name="Structure" c:type="GstStructure*"/>
  33595. </instance-parameter>
  33596. <parameter name="field_name" transfer-ownership="none">
  33597. <doc xml:space="preserve">a field in @structure</doc>
  33598. <type name="utf8" c:type="const char*"/>
  33599. </parameter>
  33600. <parameter name="target_numerator" transfer-ownership="none">
  33601. <doc xml:space="preserve">The numerator of the target value of the fixation</doc>
  33602. <type name="gint" c:type="const gint"/>
  33603. </parameter>
  33604. <parameter name="target_denominator" transfer-ownership="none">
  33605. <doc xml:space="preserve">The denominator of the target value of the fixation</doc>
  33606. <type name="gint" c:type="const gint"/>
  33607. </parameter>
  33608. </parameters>
  33609. </method>
  33610. <method name="fixate_field_nearest_int"
  33611. c:identifier="gst_structure_fixate_field_nearest_int">
  33612. <doc xml:space="preserve">Fixates a #GstStructure by changing the given field to the nearest
  33613. integer to @target that is a subset of the existing field.</doc>
  33614. <return-value transfer-ownership="none">
  33615. <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
  33616. <type name="gboolean" c:type="gboolean"/>
  33617. </return-value>
  33618. <parameters>
  33619. <instance-parameter name="structure" transfer-ownership="none">
  33620. <doc xml:space="preserve">a #GstStructure</doc>
  33621. <type name="Structure" c:type="GstStructure*"/>
  33622. </instance-parameter>
  33623. <parameter name="field_name" transfer-ownership="none">
  33624. <doc xml:space="preserve">a field in @structure</doc>
  33625. <type name="utf8" c:type="const char*"/>
  33626. </parameter>
  33627. <parameter name="target" transfer-ownership="none">
  33628. <doc xml:space="preserve">the target value of the fixation</doc>
  33629. <type name="gint" c:type="int"/>
  33630. </parameter>
  33631. </parameters>
  33632. </method>
  33633. <method name="fixate_field_string"
  33634. c:identifier="gst_structure_fixate_field_string">
  33635. <doc xml:space="preserve">Fixates a #GstStructure by changing the given @field_name field to the given
  33636. @target string if that field is not fixed yet.</doc>
  33637. <return-value transfer-ownership="none">
  33638. <doc xml:space="preserve">%TRUE if the structure could be fixated</doc>
  33639. <type name="gboolean" c:type="gboolean"/>
  33640. </return-value>
  33641. <parameters>
  33642. <instance-parameter name="structure" transfer-ownership="none">
  33643. <doc xml:space="preserve">a #GstStructure</doc>
  33644. <type name="Structure" c:type="GstStructure*"/>
  33645. </instance-parameter>
  33646. <parameter name="field_name" transfer-ownership="none">
  33647. <doc xml:space="preserve">a field in @structure</doc>
  33648. <type name="utf8" c:type="const char*"/>
  33649. </parameter>
  33650. <parameter name="target" transfer-ownership="none">
  33651. <doc xml:space="preserve">the target value of the fixation</doc>
  33652. <type name="utf8" c:type="const gchar*"/>
  33653. </parameter>
  33654. </parameters>
  33655. </method>
  33656. <method name="foreach" c:identifier="gst_structure_foreach">
  33657. <doc xml:space="preserve">Calls the provided function once for each field in the #GstStructure. The
  33658. function must not modify the fields. Also see gst_structure_map_in_place()
  33659. and gst_structure_filter_and_map_in_place().</doc>
  33660. <return-value transfer-ownership="none">
  33661. <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE For each of the fields,
  33662. %FALSE otherwise.</doc>
  33663. <type name="gboolean" c:type="gboolean"/>
  33664. </return-value>
  33665. <parameters>
  33666. <instance-parameter name="structure" transfer-ownership="none">
  33667. <doc xml:space="preserve">a #GstStructure</doc>
  33668. <type name="Structure" c:type="const GstStructure*"/>
  33669. </instance-parameter>
  33670. <parameter name="func"
  33671. transfer-ownership="none"
  33672. scope="call"
  33673. closure="1">
  33674. <doc xml:space="preserve">a function to call for each field</doc>
  33675. <type name="StructureForeachFunc"
  33676. c:type="GstStructureForeachFunc"/>
  33677. </parameter>
  33678. <parameter name="user_data"
  33679. transfer-ownership="none"
  33680. nullable="1"
  33681. allow-none="1">
  33682. <doc xml:space="preserve">private data</doc>
  33683. <type name="gpointer" c:type="gpointer"/>
  33684. </parameter>
  33685. </parameters>
  33686. </method>
  33687. <method name="free" c:identifier="gst_structure_free">
  33688. <doc xml:space="preserve">Frees a #GstStructure and all its fields and values. The structure must not
  33689. have a parent when this function is called.</doc>
  33690. <return-value transfer-ownership="none">
  33691. <type name="none" c:type="void"/>
  33692. </return-value>
  33693. <parameters>
  33694. <instance-parameter name="structure" transfer-ownership="full">
  33695. <doc xml:space="preserve">the #GstStructure to free</doc>
  33696. <type name="Structure" c:type="GstStructure*"/>
  33697. </instance-parameter>
  33698. </parameters>
  33699. </method>
  33700. <method name="get" c:identifier="gst_structure_get" introspectable="0">
  33701. <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
  33702. Variable arguments should be in the form field name, field type
  33703. (as a GType), pointer(s) to a variable(s) to hold the return value(s).
  33704. The last variable argument should be %NULL.
  33705. For refcounted (mini)objects you will receive a new reference which
  33706. you must release with a suitable _unref() when no longer needed. For
  33707. strings and boxed types you will receive a copy which you will need to
  33708. release with either g_free() or the suitable function for the boxed type.</doc>
  33709. <return-value transfer-ownership="none">
  33710. <doc xml:space="preserve">%FALSE if there was a problem reading any of the fields (e.g.
  33711. because the field requested did not exist, or was of a type other
  33712. than the type specified), otherwise %TRUE.</doc>
  33713. <type name="gboolean" c:type="gboolean"/>
  33714. </return-value>
  33715. <parameters>
  33716. <instance-parameter name="structure" transfer-ownership="none">
  33717. <doc xml:space="preserve">a #GstStructure</doc>
  33718. <type name="Structure" c:type="const GstStructure*"/>
  33719. </instance-parameter>
  33720. <parameter name="first_fieldname" transfer-ownership="none">
  33721. <doc xml:space="preserve">the name of the first field to read</doc>
  33722. <type name="utf8" c:type="const char*"/>
  33723. </parameter>
  33724. <parameter name="..." transfer-ownership="none">
  33725. <doc xml:space="preserve">variable arguments</doc>
  33726. <varargs/>
  33727. </parameter>
  33728. </parameters>
  33729. </method>
  33730. <method name="get_boolean" c:identifier="gst_structure_get_boolean">
  33731. <doc xml:space="preserve">Sets the boolean pointed to by @value corresponding to the value of the
  33732. given field. Caller is responsible for making sure the field exists
  33733. and has the correct type.</doc>
  33734. <return-value transfer-ownership="none">
  33735. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  33736. with @fieldname or the existing field did not contain a boolean, this
  33737. function returns %FALSE.</doc>
  33738. <type name="gboolean" c:type="gboolean"/>
  33739. </return-value>
  33740. <parameters>
  33741. <instance-parameter name="structure" transfer-ownership="none">
  33742. <doc xml:space="preserve">a #GstStructure</doc>
  33743. <type name="Structure" c:type="const GstStructure*"/>
  33744. </instance-parameter>
  33745. <parameter name="fieldname" transfer-ownership="none">
  33746. <doc xml:space="preserve">the name of a field</doc>
  33747. <type name="utf8" c:type="const gchar*"/>
  33748. </parameter>
  33749. <parameter name="value"
  33750. direction="out"
  33751. caller-allocates="0"
  33752. transfer-ownership="full">
  33753. <doc xml:space="preserve">a pointer to a #gboolean to set</doc>
  33754. <type name="gboolean" c:type="gboolean*"/>
  33755. </parameter>
  33756. </parameters>
  33757. </method>
  33758. <method name="get_clock_time"
  33759. c:identifier="gst_structure_get_clock_time">
  33760. <doc xml:space="preserve">Sets the clock time pointed to by @value corresponding to the clock time
  33761. of the given field. Caller is responsible for making sure the field exists
  33762. and has the correct type.</doc>
  33763. <return-value transfer-ownership="none">
  33764. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  33765. with @fieldname or the existing field did not contain a #GstClockTime, this
  33766. function returns %FALSE.</doc>
  33767. <type name="gboolean" c:type="gboolean"/>
  33768. </return-value>
  33769. <parameters>
  33770. <instance-parameter name="structure" transfer-ownership="none">
  33771. <doc xml:space="preserve">a #GstStructure</doc>
  33772. <type name="Structure" c:type="const GstStructure*"/>
  33773. </instance-parameter>
  33774. <parameter name="fieldname" transfer-ownership="none">
  33775. <doc xml:space="preserve">the name of a field</doc>
  33776. <type name="utf8" c:type="const gchar*"/>
  33777. </parameter>
  33778. <parameter name="value"
  33779. direction="out"
  33780. caller-allocates="0"
  33781. transfer-ownership="full">
  33782. <doc xml:space="preserve">a pointer to a #GstClockTime to set</doc>
  33783. <type name="ClockTime" c:type="GstClockTime*"/>
  33784. </parameter>
  33785. </parameters>
  33786. </method>
  33787. <method name="get_date" c:identifier="gst_structure_get_date">
  33788. <doc xml:space="preserve">Sets the date pointed to by @value corresponding to the date of the
  33789. given field. Caller is responsible for making sure the field exists
  33790. and has the correct type.
  33791. On success @value will point to a newly-allocated copy of the date which
  33792. should be freed with g_date_free() when no longer needed (note: this is
  33793. inconsistent with e.g. gst_structure_get_string() which doesn't return a
  33794. copy of the string).</doc>
  33795. <return-value transfer-ownership="none">
  33796. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  33797. with @fieldname or the existing field did not contain a data, this function
  33798. returns %FALSE.</doc>
  33799. <type name="gboolean" c:type="gboolean"/>
  33800. </return-value>
  33801. <parameters>
  33802. <instance-parameter name="structure" transfer-ownership="none">
  33803. <doc xml:space="preserve">a #GstStructure</doc>
  33804. <type name="Structure" c:type="const GstStructure*"/>
  33805. </instance-parameter>
  33806. <parameter name="fieldname" transfer-ownership="none">
  33807. <doc xml:space="preserve">the name of a field</doc>
  33808. <type name="utf8" c:type="const gchar*"/>
  33809. </parameter>
  33810. <parameter name="value"
  33811. direction="out"
  33812. caller-allocates="0"
  33813. transfer-ownership="full">
  33814. <doc xml:space="preserve">a pointer to a #GDate to set</doc>
  33815. <type name="GLib.Date" c:type="GDate**"/>
  33816. </parameter>
  33817. </parameters>
  33818. </method>
  33819. <method name="get_date_time" c:identifier="gst_structure_get_date_time">
  33820. <doc xml:space="preserve">Sets the datetime pointed to by @value corresponding to the datetime of the
  33821. given field. Caller is responsible for making sure the field exists
  33822. and has the correct type.
  33823. On success @value will point to a reference of the datetime which
  33824. should be unreffed with gst_date_time_unref() when no longer needed
  33825. (note: this is inconsistent with e.g. gst_structure_get_string()
  33826. which doesn't return a copy of the string).</doc>
  33827. <return-value transfer-ownership="none">
  33828. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  33829. with @fieldname or the existing field did not contain a data, this function
  33830. returns %FALSE.</doc>
  33831. <type name="gboolean" c:type="gboolean"/>
  33832. </return-value>
  33833. <parameters>
  33834. <instance-parameter name="structure" transfer-ownership="none">
  33835. <doc xml:space="preserve">a #GstStructure</doc>
  33836. <type name="Structure" c:type="const GstStructure*"/>
  33837. </instance-parameter>
  33838. <parameter name="fieldname" transfer-ownership="none">
  33839. <doc xml:space="preserve">the name of a field</doc>
  33840. <type name="utf8" c:type="const gchar*"/>
  33841. </parameter>
  33842. <parameter name="value"
  33843. direction="out"
  33844. caller-allocates="0"
  33845. transfer-ownership="full">
  33846. <doc xml:space="preserve">a pointer to a #GstDateTime to set</doc>
  33847. <type name="DateTime" c:type="GstDateTime**"/>
  33848. </parameter>
  33849. </parameters>
  33850. </method>
  33851. <method name="get_double" c:identifier="gst_structure_get_double">
  33852. <doc xml:space="preserve">Sets the double pointed to by @value corresponding to the value of the
  33853. given field. Caller is responsible for making sure the field exists
  33854. and has the correct type.</doc>
  33855. <return-value transfer-ownership="none">
  33856. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  33857. with @fieldname or the existing field did not contain a double, this
  33858. function returns %FALSE.</doc>
  33859. <type name="gboolean" c:type="gboolean"/>
  33860. </return-value>
  33861. <parameters>
  33862. <instance-parameter name="structure" transfer-ownership="none">
  33863. <doc xml:space="preserve">a #GstStructure</doc>
  33864. <type name="Structure" c:type="const GstStructure*"/>
  33865. </instance-parameter>
  33866. <parameter name="fieldname" transfer-ownership="none">
  33867. <doc xml:space="preserve">the name of a field</doc>
  33868. <type name="utf8" c:type="const gchar*"/>
  33869. </parameter>
  33870. <parameter name="value"
  33871. direction="out"
  33872. caller-allocates="0"
  33873. transfer-ownership="full">
  33874. <doc xml:space="preserve">a pointer to a gdouble to set</doc>
  33875. <type name="gdouble" c:type="gdouble*"/>
  33876. </parameter>
  33877. </parameters>
  33878. </method>
  33879. <method name="get_enum" c:identifier="gst_structure_get_enum">
  33880. <doc xml:space="preserve">Sets the int pointed to by @value corresponding to the value of the
  33881. given field. Caller is responsible for making sure the field exists,
  33882. has the correct type and that the enumtype is correct.</doc>
  33883. <return-value transfer-ownership="none">
  33884. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  33885. with @fieldname or the existing field did not contain an enum of the given
  33886. type, this function returns %FALSE.</doc>
  33887. <type name="gboolean" c:type="gboolean"/>
  33888. </return-value>
  33889. <parameters>
  33890. <instance-parameter name="structure" transfer-ownership="none">
  33891. <doc xml:space="preserve">a #GstStructure</doc>
  33892. <type name="Structure" c:type="const GstStructure*"/>
  33893. </instance-parameter>
  33894. <parameter name="fieldname" transfer-ownership="none">
  33895. <doc xml:space="preserve">the name of a field</doc>
  33896. <type name="utf8" c:type="const gchar*"/>
  33897. </parameter>
  33898. <parameter name="enumtype" transfer-ownership="none">
  33899. <doc xml:space="preserve">the enum type of a field</doc>
  33900. <type name="GType" c:type="GType"/>
  33901. </parameter>
  33902. <parameter name="value"
  33903. direction="out"
  33904. caller-allocates="0"
  33905. transfer-ownership="full">
  33906. <doc xml:space="preserve">a pointer to an int to set</doc>
  33907. <type name="gint" c:type="gint*"/>
  33908. </parameter>
  33909. </parameters>
  33910. </method>
  33911. <method name="get_field_type"
  33912. c:identifier="gst_structure_get_field_type">
  33913. <doc xml:space="preserve">Finds the field with the given name, and returns the type of the
  33914. value it contains. If the field is not found, G_TYPE_INVALID is
  33915. returned.</doc>
  33916. <return-value transfer-ownership="none">
  33917. <doc xml:space="preserve">the #GValue of the field</doc>
  33918. <type name="GType" c:type="GType"/>
  33919. </return-value>
  33920. <parameters>
  33921. <instance-parameter name="structure" transfer-ownership="none">
  33922. <doc xml:space="preserve">a #GstStructure</doc>
  33923. <type name="Structure" c:type="const GstStructure*"/>
  33924. </instance-parameter>
  33925. <parameter name="fieldname" transfer-ownership="none">
  33926. <doc xml:space="preserve">the name of the field</doc>
  33927. <type name="utf8" c:type="const gchar*"/>
  33928. </parameter>
  33929. </parameters>
  33930. </method>
  33931. <method name="get_flagset"
  33932. c:identifier="gst_structure_get_flagset"
  33933. version="1.6">
  33934. <doc xml:space="preserve">Read the GstFlagSet flags and mask out of the structure into the
  33935. provided pointers.</doc>
  33936. <return-value transfer-ownership="none">
  33937. <doc xml:space="preserve">%TRUE if the values could be set correctly. If there was no field
  33938. with @fieldname or the existing field did not contain a GstFlagSet, this
  33939. function returns %FALSE.</doc>
  33940. <type name="gboolean" c:type="gboolean"/>
  33941. </return-value>
  33942. <parameters>
  33943. <instance-parameter name="structure" transfer-ownership="none">
  33944. <doc xml:space="preserve">a #GstStructure</doc>
  33945. <type name="Structure" c:type="const GstStructure*"/>
  33946. </instance-parameter>
  33947. <parameter name="fieldname" transfer-ownership="none">
  33948. <doc xml:space="preserve">the name of a field</doc>
  33949. <type name="utf8" c:type="const gchar*"/>
  33950. </parameter>
  33951. <parameter name="value_flags"
  33952. direction="out"
  33953. caller-allocates="0"
  33954. transfer-ownership="full"
  33955. optional="1"
  33956. allow-none="1">
  33957. <doc xml:space="preserve">a pointer to a guint for the flags field</doc>
  33958. <type name="guint" c:type="guint*"/>
  33959. </parameter>
  33960. <parameter name="value_mask"
  33961. direction="out"
  33962. caller-allocates="0"
  33963. transfer-ownership="full"
  33964. optional="1"
  33965. allow-none="1">
  33966. <doc xml:space="preserve">a pointer to a guint for the mask field</doc>
  33967. <type name="guint" c:type="guint*"/>
  33968. </parameter>
  33969. </parameters>
  33970. </method>
  33971. <method name="get_fraction" c:identifier="gst_structure_get_fraction">
  33972. <doc xml:space="preserve">Sets the integers pointed to by @value_numerator and @value_denominator
  33973. corresponding to the value of the given field. Caller is responsible
  33974. for making sure the field exists and has the correct type.</doc>
  33975. <return-value transfer-ownership="none">
  33976. <doc xml:space="preserve">%TRUE if the values could be set correctly. If there was no field
  33977. with @fieldname or the existing field did not contain a GstFraction, this
  33978. function returns %FALSE.</doc>
  33979. <type name="gboolean" c:type="gboolean"/>
  33980. </return-value>
  33981. <parameters>
  33982. <instance-parameter name="structure" transfer-ownership="none">
  33983. <doc xml:space="preserve">a #GstStructure</doc>
  33984. <type name="Structure" c:type="const GstStructure*"/>
  33985. </instance-parameter>
  33986. <parameter name="fieldname" transfer-ownership="none">
  33987. <doc xml:space="preserve">the name of a field</doc>
  33988. <type name="utf8" c:type="const gchar*"/>
  33989. </parameter>
  33990. <parameter name="value_numerator"
  33991. direction="out"
  33992. caller-allocates="0"
  33993. transfer-ownership="full">
  33994. <doc xml:space="preserve">a pointer to an int to set</doc>
  33995. <type name="gint" c:type="gint*"/>
  33996. </parameter>
  33997. <parameter name="value_denominator"
  33998. direction="out"
  33999. caller-allocates="0"
  34000. transfer-ownership="full">
  34001. <doc xml:space="preserve">a pointer to an int to set</doc>
  34002. <type name="gint" c:type="gint*"/>
  34003. </parameter>
  34004. </parameters>
  34005. </method>
  34006. <method name="get_int" c:identifier="gst_structure_get_int">
  34007. <doc xml:space="preserve">Sets the int pointed to by @value corresponding to the value of the
  34008. given field. Caller is responsible for making sure the field exists
  34009. and has the correct type.</doc>
  34010. <return-value transfer-ownership="none">
  34011. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  34012. with @fieldname or the existing field did not contain an int, this function
  34013. returns %FALSE.</doc>
  34014. <type name="gboolean" c:type="gboolean"/>
  34015. </return-value>
  34016. <parameters>
  34017. <instance-parameter name="structure" transfer-ownership="none">
  34018. <doc xml:space="preserve">a #GstStructure</doc>
  34019. <type name="Structure" c:type="const GstStructure*"/>
  34020. </instance-parameter>
  34021. <parameter name="fieldname" transfer-ownership="none">
  34022. <doc xml:space="preserve">the name of a field</doc>
  34023. <type name="utf8" c:type="const gchar*"/>
  34024. </parameter>
  34025. <parameter name="value"
  34026. direction="out"
  34027. caller-allocates="0"
  34028. transfer-ownership="full">
  34029. <doc xml:space="preserve">a pointer to an int to set</doc>
  34030. <type name="gint" c:type="gint*"/>
  34031. </parameter>
  34032. </parameters>
  34033. </method>
  34034. <method name="get_int64"
  34035. c:identifier="gst_structure_get_int64"
  34036. version="1.4">
  34037. <doc xml:space="preserve">Sets the #gint64 pointed to by @value corresponding to the value of the
  34038. given field. Caller is responsible for making sure the field exists
  34039. and has the correct type.</doc>
  34040. <return-value transfer-ownership="none">
  34041. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  34042. with @fieldname or the existing field did not contain a #gint64, this function
  34043. returns %FALSE.</doc>
  34044. <type name="gboolean" c:type="gboolean"/>
  34045. </return-value>
  34046. <parameters>
  34047. <instance-parameter name="structure" transfer-ownership="none">
  34048. <doc xml:space="preserve">a #GstStructure</doc>
  34049. <type name="Structure" c:type="const GstStructure*"/>
  34050. </instance-parameter>
  34051. <parameter name="fieldname" transfer-ownership="none">
  34052. <doc xml:space="preserve">the name of a field</doc>
  34053. <type name="utf8" c:type="const gchar*"/>
  34054. </parameter>
  34055. <parameter name="value"
  34056. direction="out"
  34057. caller-allocates="0"
  34058. transfer-ownership="full">
  34059. <doc xml:space="preserve">a pointer to a #gint64 to set</doc>
  34060. <type name="gint64" c:type="gint64*"/>
  34061. </parameter>
  34062. </parameters>
  34063. </method>
  34064. <method name="get_name" c:identifier="gst_structure_get_name">
  34065. <doc xml:space="preserve">Get the name of @structure as a string.</doc>
  34066. <return-value transfer-ownership="none">
  34067. <doc xml:space="preserve">the name of the structure.</doc>
  34068. <type name="utf8" c:type="const gchar*"/>
  34069. </return-value>
  34070. <parameters>
  34071. <instance-parameter name="structure" transfer-ownership="none">
  34072. <doc xml:space="preserve">a #GstStructure</doc>
  34073. <type name="Structure" c:type="const GstStructure*"/>
  34074. </instance-parameter>
  34075. </parameters>
  34076. </method>
  34077. <method name="get_name_id" c:identifier="gst_structure_get_name_id">
  34078. <doc xml:space="preserve">Get the name of @structure as a GQuark.</doc>
  34079. <return-value transfer-ownership="none">
  34080. <doc xml:space="preserve">the quark representing the name of the structure.</doc>
  34081. <type name="GLib.Quark" c:type="GQuark"/>
  34082. </return-value>
  34083. <parameters>
  34084. <instance-parameter name="structure" transfer-ownership="none">
  34085. <doc xml:space="preserve">a #GstStructure</doc>
  34086. <type name="Structure" c:type="const GstStructure*"/>
  34087. </instance-parameter>
  34088. </parameters>
  34089. </method>
  34090. <method name="get_string" c:identifier="gst_structure_get_string">
  34091. <doc xml:space="preserve">Finds the field corresponding to @fieldname, and returns the string
  34092. contained in the field's value. Caller is responsible for making
  34093. sure the field exists and has the correct type.
  34094. The string should not be modified, and remains valid until the next
  34095. call to a gst_structure_*() function with the given structure.</doc>
  34096. <return-value transfer-ownership="none" nullable="1">
  34097. <doc xml:space="preserve">a pointer to the string or %NULL when the
  34098. field did not exist or did not contain a string.</doc>
  34099. <type name="utf8" c:type="const gchar*"/>
  34100. </return-value>
  34101. <parameters>
  34102. <instance-parameter name="structure" transfer-ownership="none">
  34103. <doc xml:space="preserve">a #GstStructure</doc>
  34104. <type name="Structure" c:type="const GstStructure*"/>
  34105. </instance-parameter>
  34106. <parameter name="fieldname" transfer-ownership="none">
  34107. <doc xml:space="preserve">the name of a field</doc>
  34108. <type name="utf8" c:type="const gchar*"/>
  34109. </parameter>
  34110. </parameters>
  34111. </method>
  34112. <method name="get_uint" c:identifier="gst_structure_get_uint">
  34113. <doc xml:space="preserve">Sets the uint pointed to by @value corresponding to the value of the
  34114. given field. Caller is responsible for making sure the field exists
  34115. and has the correct type.</doc>
  34116. <return-value transfer-ownership="none">
  34117. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  34118. with @fieldname or the existing field did not contain a uint, this function
  34119. returns %FALSE.</doc>
  34120. <type name="gboolean" c:type="gboolean"/>
  34121. </return-value>
  34122. <parameters>
  34123. <instance-parameter name="structure" transfer-ownership="none">
  34124. <doc xml:space="preserve">a #GstStructure</doc>
  34125. <type name="Structure" c:type="const GstStructure*"/>
  34126. </instance-parameter>
  34127. <parameter name="fieldname" transfer-ownership="none">
  34128. <doc xml:space="preserve">the name of a field</doc>
  34129. <type name="utf8" c:type="const gchar*"/>
  34130. </parameter>
  34131. <parameter name="value"
  34132. direction="out"
  34133. caller-allocates="0"
  34134. transfer-ownership="full">
  34135. <doc xml:space="preserve">a pointer to a uint to set</doc>
  34136. <type name="guint" c:type="guint*"/>
  34137. </parameter>
  34138. </parameters>
  34139. </method>
  34140. <method name="get_uint64"
  34141. c:identifier="gst_structure_get_uint64"
  34142. version="1.4">
  34143. <doc xml:space="preserve">Sets the #guint64 pointed to by @value corresponding to the value of the
  34144. given field. Caller is responsible for making sure the field exists
  34145. and has the correct type.</doc>
  34146. <return-value transfer-ownership="none">
  34147. <doc xml:space="preserve">%TRUE if the value could be set correctly. If there was no field
  34148. with @fieldname or the existing field did not contain a #guint64, this function
  34149. returns %FALSE.</doc>
  34150. <type name="gboolean" c:type="gboolean"/>
  34151. </return-value>
  34152. <parameters>
  34153. <instance-parameter name="structure" transfer-ownership="none">
  34154. <doc xml:space="preserve">a #GstStructure</doc>
  34155. <type name="Structure" c:type="const GstStructure*"/>
  34156. </instance-parameter>
  34157. <parameter name="fieldname" transfer-ownership="none">
  34158. <doc xml:space="preserve">the name of a field</doc>
  34159. <type name="utf8" c:type="const gchar*"/>
  34160. </parameter>
  34161. <parameter name="value"
  34162. direction="out"
  34163. caller-allocates="0"
  34164. transfer-ownership="full">
  34165. <doc xml:space="preserve">a pointer to a #guint64 to set</doc>
  34166. <type name="guint64" c:type="guint64*"/>
  34167. </parameter>
  34168. </parameters>
  34169. </method>
  34170. <method name="get_valist"
  34171. c:identifier="gst_structure_get_valist"
  34172. introspectable="0">
  34173. <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
  34174. valist-variant of gst_structure_get(). Look at the documentation of
  34175. gst_structure_get() for more details.</doc>
  34176. <return-value transfer-ownership="none">
  34177. <doc xml:space="preserve">%TRUE, or %FALSE if there was a problem reading any of the fields</doc>
  34178. <type name="gboolean" c:type="gboolean"/>
  34179. </return-value>
  34180. <parameters>
  34181. <instance-parameter name="structure" transfer-ownership="none">
  34182. <doc xml:space="preserve">a #GstStructure</doc>
  34183. <type name="Structure" c:type="const GstStructure*"/>
  34184. </instance-parameter>
  34185. <parameter name="first_fieldname" transfer-ownership="none">
  34186. <doc xml:space="preserve">the name of the first field to read</doc>
  34187. <type name="utf8" c:type="const char*"/>
  34188. </parameter>
  34189. <parameter name="args" transfer-ownership="none">
  34190. <doc xml:space="preserve">variable arguments</doc>
  34191. <type name="va_list" c:type="va_list"/>
  34192. </parameter>
  34193. </parameters>
  34194. </method>
  34195. <method name="get_value" c:identifier="gst_structure_get_value">
  34196. <doc xml:space="preserve">Get the value of the field with name @fieldname.</doc>
  34197. <return-value transfer-ownership="none">
  34198. <doc xml:space="preserve">the #GValue corresponding to the field with the given name.</doc>
  34199. <type name="GObject.Value" c:type="const GValue*"/>
  34200. </return-value>
  34201. <parameters>
  34202. <instance-parameter name="structure" transfer-ownership="none">
  34203. <doc xml:space="preserve">a #GstStructure</doc>
  34204. <type name="Structure" c:type="const GstStructure*"/>
  34205. </instance-parameter>
  34206. <parameter name="fieldname" transfer-ownership="none">
  34207. <doc xml:space="preserve">the name of the field to get</doc>
  34208. <type name="utf8" c:type="const gchar*"/>
  34209. </parameter>
  34210. </parameters>
  34211. </method>
  34212. <method name="has_field" c:identifier="gst_structure_has_field">
  34213. <doc xml:space="preserve">Check if @structure contains a field named @fieldname.</doc>
  34214. <return-value transfer-ownership="none">
  34215. <doc xml:space="preserve">%TRUE if the structure contains a field with the given name</doc>
  34216. <type name="gboolean" c:type="gboolean"/>
  34217. </return-value>
  34218. <parameters>
  34219. <instance-parameter name="structure" transfer-ownership="none">
  34220. <doc xml:space="preserve">a #GstStructure</doc>
  34221. <type name="Structure" c:type="const GstStructure*"/>
  34222. </instance-parameter>
  34223. <parameter name="fieldname" transfer-ownership="none">
  34224. <doc xml:space="preserve">the name of a field</doc>
  34225. <type name="utf8" c:type="const gchar*"/>
  34226. </parameter>
  34227. </parameters>
  34228. </method>
  34229. <method name="has_field_typed"
  34230. c:identifier="gst_structure_has_field_typed">
  34231. <doc xml:space="preserve">Check if @structure contains a field named @fieldname and with GType @type.</doc>
  34232. <return-value transfer-ownership="none">
  34233. <doc xml:space="preserve">%TRUE if the structure contains a field with the given name and type</doc>
  34234. <type name="gboolean" c:type="gboolean"/>
  34235. </return-value>
  34236. <parameters>
  34237. <instance-parameter name="structure" transfer-ownership="none">
  34238. <doc xml:space="preserve">a #GstStructure</doc>
  34239. <type name="Structure" c:type="const GstStructure*"/>
  34240. </instance-parameter>
  34241. <parameter name="fieldname" transfer-ownership="none">
  34242. <doc xml:space="preserve">the name of a field</doc>
  34243. <type name="utf8" c:type="const gchar*"/>
  34244. </parameter>
  34245. <parameter name="type" transfer-ownership="none">
  34246. <doc xml:space="preserve">the type of a value</doc>
  34247. <type name="GType" c:type="GType"/>
  34248. </parameter>
  34249. </parameters>
  34250. </method>
  34251. <method name="has_name" c:identifier="gst_structure_has_name">
  34252. <doc xml:space="preserve">Checks if the structure has the given name</doc>
  34253. <return-value transfer-ownership="none">
  34254. <doc xml:space="preserve">%TRUE if @name matches the name of the structure.</doc>
  34255. <type name="gboolean" c:type="gboolean"/>
  34256. </return-value>
  34257. <parameters>
  34258. <instance-parameter name="structure" transfer-ownership="none">
  34259. <doc xml:space="preserve">a #GstStructure</doc>
  34260. <type name="Structure" c:type="const GstStructure*"/>
  34261. </instance-parameter>
  34262. <parameter name="name" transfer-ownership="none">
  34263. <doc xml:space="preserve">structure name to check for</doc>
  34264. <type name="utf8" c:type="const gchar*"/>
  34265. </parameter>
  34266. </parameters>
  34267. </method>
  34268. <method name="id_get"
  34269. c:identifier="gst_structure_id_get"
  34270. introspectable="0">
  34271. <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
  34272. Variable arguments should be in the form field id quark, field type
  34273. (as a GType), pointer(s) to a variable(s) to hold the return value(s).
  34274. The last variable argument should be %NULL (technically it should be a
  34275. 0 quark, but we require %NULL so compilers that support it can check for
  34276. the %NULL terminator and warn if it's not there).
  34277. This function is just like gst_structure_get() only that it is slightly
  34278. more efficient since it saves the string-to-quark lookup in the global
  34279. quark hashtable.
  34280. For refcounted (mini)objects you will receive a new reference which
  34281. you must release with a suitable _unref() when no longer needed. For
  34282. strings and boxed types you will receive a copy which you will need to
  34283. release with either g_free() or the suitable function for the boxed type.</doc>
  34284. <return-value transfer-ownership="none">
  34285. <doc xml:space="preserve">%FALSE if there was a problem reading any of the fields (e.g.
  34286. because the field requested did not exist, or was of a type other
  34287. than the type specified), otherwise %TRUE.</doc>
  34288. <type name="gboolean" c:type="gboolean"/>
  34289. </return-value>
  34290. <parameters>
  34291. <instance-parameter name="structure" transfer-ownership="none">
  34292. <doc xml:space="preserve">a #GstStructure</doc>
  34293. <type name="Structure" c:type="const GstStructure*"/>
  34294. </instance-parameter>
  34295. <parameter name="first_field_id" transfer-ownership="none">
  34296. <doc xml:space="preserve">the quark of the first field to read</doc>
  34297. <type name="GLib.Quark" c:type="GQuark"/>
  34298. </parameter>
  34299. <parameter name="..." transfer-ownership="none">
  34300. <doc xml:space="preserve">variable arguments</doc>
  34301. <varargs/>
  34302. </parameter>
  34303. </parameters>
  34304. </method>
  34305. <method name="id_get_valist"
  34306. c:identifier="gst_structure_id_get_valist"
  34307. introspectable="0">
  34308. <doc xml:space="preserve">Parses the variable arguments and reads fields from @structure accordingly.
  34309. valist-variant of gst_structure_id_get(). Look at the documentation of
  34310. gst_structure_id_get() for more details.</doc>
  34311. <return-value transfer-ownership="none">
  34312. <doc xml:space="preserve">%TRUE, or %FALSE if there was a problem reading any of the fields</doc>
  34313. <type name="gboolean" c:type="gboolean"/>
  34314. </return-value>
  34315. <parameters>
  34316. <instance-parameter name="structure" transfer-ownership="none">
  34317. <doc xml:space="preserve">a #GstStructure</doc>
  34318. <type name="Structure" c:type="const GstStructure*"/>
  34319. </instance-parameter>
  34320. <parameter name="first_field_id" transfer-ownership="none">
  34321. <doc xml:space="preserve">the quark of the first field to read</doc>
  34322. <type name="GLib.Quark" c:type="GQuark"/>
  34323. </parameter>
  34324. <parameter name="args" transfer-ownership="none">
  34325. <doc xml:space="preserve">variable arguments</doc>
  34326. <type name="va_list" c:type="va_list"/>
  34327. </parameter>
  34328. </parameters>
  34329. </method>
  34330. <method name="id_get_value" c:identifier="gst_structure_id_get_value">
  34331. <doc xml:space="preserve">Get the value of the field with GQuark @field.</doc>
  34332. <return-value transfer-ownership="none">
  34333. <doc xml:space="preserve">the #GValue corresponding to the field with the given name
  34334. identifier.</doc>
  34335. <type name="GObject.Value" c:type="const GValue*"/>
  34336. </return-value>
  34337. <parameters>
  34338. <instance-parameter name="structure" transfer-ownership="none">
  34339. <doc xml:space="preserve">a #GstStructure</doc>
  34340. <type name="Structure" c:type="const GstStructure*"/>
  34341. </instance-parameter>
  34342. <parameter name="field" transfer-ownership="none">
  34343. <doc xml:space="preserve">the #GQuark of the field to get</doc>
  34344. <type name="GLib.Quark" c:type="GQuark"/>
  34345. </parameter>
  34346. </parameters>
  34347. </method>
  34348. <method name="id_has_field" c:identifier="gst_structure_id_has_field">
  34349. <doc xml:space="preserve">Check if @structure contains a field named @field.</doc>
  34350. <return-value transfer-ownership="none">
  34351. <doc xml:space="preserve">%TRUE if the structure contains a field with the given name</doc>
  34352. <type name="gboolean" c:type="gboolean"/>
  34353. </return-value>
  34354. <parameters>
  34355. <instance-parameter name="structure" transfer-ownership="none">
  34356. <doc xml:space="preserve">a #GstStructure</doc>
  34357. <type name="Structure" c:type="const GstStructure*"/>
  34358. </instance-parameter>
  34359. <parameter name="field" transfer-ownership="none">
  34360. <doc xml:space="preserve">#GQuark of the field name</doc>
  34361. <type name="GLib.Quark" c:type="GQuark"/>
  34362. </parameter>
  34363. </parameters>
  34364. </method>
  34365. <method name="id_has_field_typed"
  34366. c:identifier="gst_structure_id_has_field_typed">
  34367. <doc xml:space="preserve">Check if @structure contains a field named @field and with GType @type.</doc>
  34368. <return-value transfer-ownership="none">
  34369. <doc xml:space="preserve">%TRUE if the structure contains a field with the given name and type</doc>
  34370. <type name="gboolean" c:type="gboolean"/>
  34371. </return-value>
  34372. <parameters>
  34373. <instance-parameter name="structure" transfer-ownership="none">
  34374. <doc xml:space="preserve">a #GstStructure</doc>
  34375. <type name="Structure" c:type="const GstStructure*"/>
  34376. </instance-parameter>
  34377. <parameter name="field" transfer-ownership="none">
  34378. <doc xml:space="preserve">#GQuark of the field name</doc>
  34379. <type name="GLib.Quark" c:type="GQuark"/>
  34380. </parameter>
  34381. <parameter name="type" transfer-ownership="none">
  34382. <doc xml:space="preserve">the type of a value</doc>
  34383. <type name="GType" c:type="GType"/>
  34384. </parameter>
  34385. </parameters>
  34386. </method>
  34387. <method name="id_set"
  34388. c:identifier="gst_structure_id_set"
  34389. introspectable="0">
  34390. <doc xml:space="preserve">Identical to gst_structure_set, except that field names are
  34391. passed using the GQuark for the field name. This allows more efficient
  34392. setting of the structure if the caller already knows the associated
  34393. quark values.
  34394. The last variable argument must be %NULL.</doc>
  34395. <return-value transfer-ownership="none">
  34396. <type name="none" c:type="void"/>
  34397. </return-value>
  34398. <parameters>
  34399. <instance-parameter name="structure" transfer-ownership="none">
  34400. <doc xml:space="preserve">a #GstStructure</doc>
  34401. <type name="Structure" c:type="GstStructure*"/>
  34402. </instance-parameter>
  34403. <parameter name="fieldname" transfer-ownership="none">
  34404. <doc xml:space="preserve">the GQuark for the name of the field to set</doc>
  34405. <type name="GLib.Quark" c:type="GQuark"/>
  34406. </parameter>
  34407. <parameter name="..." transfer-ownership="none">
  34408. <doc xml:space="preserve">variable arguments</doc>
  34409. <varargs/>
  34410. </parameter>
  34411. </parameters>
  34412. </method>
  34413. <method name="id_set_valist"
  34414. c:identifier="gst_structure_id_set_valist"
  34415. introspectable="0">
  34416. <doc xml:space="preserve">va_list form of gst_structure_id_set().</doc>
  34417. <return-value transfer-ownership="none">
  34418. <type name="none" c:type="void"/>
  34419. </return-value>
  34420. <parameters>
  34421. <instance-parameter name="structure" transfer-ownership="none">
  34422. <doc xml:space="preserve">a #GstStructure</doc>
  34423. <type name="Structure" c:type="GstStructure*"/>
  34424. </instance-parameter>
  34425. <parameter name="fieldname" transfer-ownership="none">
  34426. <doc xml:space="preserve">the name of the field to set</doc>
  34427. <type name="GLib.Quark" c:type="GQuark"/>
  34428. </parameter>
  34429. <parameter name="varargs" transfer-ownership="none">
  34430. <doc xml:space="preserve">variable arguments</doc>
  34431. <type name="va_list" c:type="va_list"/>
  34432. </parameter>
  34433. </parameters>
  34434. </method>
  34435. <method name="id_set_value" c:identifier="gst_structure_id_set_value">
  34436. <doc xml:space="preserve">Sets the field with the given GQuark @field to @value. If the field
  34437. does not exist, it is created. If the field exists, the previous
  34438. value is replaced and freed.</doc>
  34439. <return-value transfer-ownership="none">
  34440. <type name="none" c:type="void"/>
  34441. </return-value>
  34442. <parameters>
  34443. <instance-parameter name="structure" transfer-ownership="none">
  34444. <doc xml:space="preserve">a #GstStructure</doc>
  34445. <type name="Structure" c:type="GstStructure*"/>
  34446. </instance-parameter>
  34447. <parameter name="field" transfer-ownership="none">
  34448. <doc xml:space="preserve">a #GQuark representing a field</doc>
  34449. <type name="GLib.Quark" c:type="GQuark"/>
  34450. </parameter>
  34451. <parameter name="value" transfer-ownership="none">
  34452. <doc xml:space="preserve">the new value of the field</doc>
  34453. <type name="GObject.Value" c:type="const GValue*"/>
  34454. </parameter>
  34455. </parameters>
  34456. </method>
  34457. <method name="id_take_value" c:identifier="gst_structure_id_take_value">
  34458. <doc xml:space="preserve">Sets the field with the given GQuark @field to @value. If the field
  34459. does not exist, it is created. If the field exists, the previous
  34460. value is replaced and freed.</doc>
  34461. <return-value transfer-ownership="none">
  34462. <type name="none" c:type="void"/>
  34463. </return-value>
  34464. <parameters>
  34465. <instance-parameter name="structure" transfer-ownership="none">
  34466. <doc xml:space="preserve">a #GstStructure</doc>
  34467. <type name="Structure" c:type="GstStructure*"/>
  34468. </instance-parameter>
  34469. <parameter name="field" transfer-ownership="none">
  34470. <doc xml:space="preserve">a #GQuark representing a field</doc>
  34471. <type name="GLib.Quark" c:type="GQuark"/>
  34472. </parameter>
  34473. <parameter name="value" transfer-ownership="full">
  34474. <doc xml:space="preserve">the new value of the field</doc>
  34475. <type name="GObject.Value" c:type="GValue*"/>
  34476. </parameter>
  34477. </parameters>
  34478. </method>
  34479. <method name="intersect" c:identifier="gst_structure_intersect">
  34480. <doc xml:space="preserve">Intersects @struct1 and @struct2 and returns the intersection.</doc>
  34481. <return-value transfer-ownership="full">
  34482. <doc xml:space="preserve">Intersection of @struct1 and @struct2</doc>
  34483. <type name="Structure" c:type="GstStructure*"/>
  34484. </return-value>
  34485. <parameters>
  34486. <instance-parameter name="struct1" transfer-ownership="none">
  34487. <doc xml:space="preserve">a #GstStructure</doc>
  34488. <type name="Structure" c:type="const GstStructure*"/>
  34489. </instance-parameter>
  34490. <parameter name="struct2" transfer-ownership="none">
  34491. <doc xml:space="preserve">a #GstStructure</doc>
  34492. <type name="Structure" c:type="const GstStructure*"/>
  34493. </parameter>
  34494. </parameters>
  34495. </method>
  34496. <method name="is_equal" c:identifier="gst_structure_is_equal">
  34497. <doc xml:space="preserve">Tests if the two #GstStructure are equal.</doc>
  34498. <return-value transfer-ownership="none">
  34499. <doc xml:space="preserve">%TRUE if the two structures have the same name and field.</doc>
  34500. <type name="gboolean" c:type="gboolean"/>
  34501. </return-value>
  34502. <parameters>
  34503. <instance-parameter name="structure1" transfer-ownership="none">
  34504. <doc xml:space="preserve">a #GstStructure.</doc>
  34505. <type name="Structure" c:type="const GstStructure*"/>
  34506. </instance-parameter>
  34507. <parameter name="structure2" transfer-ownership="none">
  34508. <doc xml:space="preserve">a #GstStructure.</doc>
  34509. <type name="Structure" c:type="const GstStructure*"/>
  34510. </parameter>
  34511. </parameters>
  34512. </method>
  34513. <method name="is_subset" c:identifier="gst_structure_is_subset">
  34514. <doc xml:space="preserve">Checks if @subset is a subset of @superset, i.e. has the same
  34515. structure name and for all fields that are existing in @superset,
  34516. @subset has a value that is a subset of the value in @superset.</doc>
  34517. <return-value transfer-ownership="none">
  34518. <doc xml:space="preserve">%TRUE if @subset is a subset of @superset</doc>
  34519. <type name="gboolean" c:type="gboolean"/>
  34520. </return-value>
  34521. <parameters>
  34522. <instance-parameter name="subset" transfer-ownership="none">
  34523. <doc xml:space="preserve">a #GstStructure</doc>
  34524. <type name="Structure" c:type="const GstStructure*"/>
  34525. </instance-parameter>
  34526. <parameter name="superset" transfer-ownership="none">
  34527. <doc xml:space="preserve">a potentially greater #GstStructure</doc>
  34528. <type name="Structure" c:type="const GstStructure*"/>
  34529. </parameter>
  34530. </parameters>
  34531. </method>
  34532. <method name="map_in_place" c:identifier="gst_structure_map_in_place">
  34533. <doc xml:space="preserve">Calls the provided function once for each field in the #GstStructure. In
  34534. contrast to gst_structure_foreach(), the function may modify but not delete the
  34535. fields. The structure must be mutable.</doc>
  34536. <return-value transfer-ownership="none">
  34537. <doc xml:space="preserve">%TRUE if the supplied function returns %TRUE For each of the fields,
  34538. %FALSE otherwise.</doc>
  34539. <type name="gboolean" c:type="gboolean"/>
  34540. </return-value>
  34541. <parameters>
  34542. <instance-parameter name="structure" transfer-ownership="none">
  34543. <doc xml:space="preserve">a #GstStructure</doc>
  34544. <type name="Structure" c:type="GstStructure*"/>
  34545. </instance-parameter>
  34546. <parameter name="func"
  34547. transfer-ownership="none"
  34548. scope="call"
  34549. closure="1">
  34550. <doc xml:space="preserve">a function to call for each field</doc>
  34551. <type name="StructureMapFunc" c:type="GstStructureMapFunc"/>
  34552. </parameter>
  34553. <parameter name="user_data"
  34554. transfer-ownership="none"
  34555. nullable="1"
  34556. allow-none="1">
  34557. <doc xml:space="preserve">private data</doc>
  34558. <type name="gpointer" c:type="gpointer"/>
  34559. </parameter>
  34560. </parameters>
  34561. </method>
  34562. <method name="n_fields" c:identifier="gst_structure_n_fields">
  34563. <doc xml:space="preserve">Get the number of fields in the structure.</doc>
  34564. <return-value transfer-ownership="none">
  34565. <doc xml:space="preserve">the number of fields in the structure</doc>
  34566. <type name="gint" c:type="gint"/>
  34567. </return-value>
  34568. <parameters>
  34569. <instance-parameter name="structure" transfer-ownership="none">
  34570. <doc xml:space="preserve">a #GstStructure</doc>
  34571. <type name="Structure" c:type="const GstStructure*"/>
  34572. </instance-parameter>
  34573. </parameters>
  34574. </method>
  34575. <method name="nth_field_name"
  34576. c:identifier="gst_structure_nth_field_name">
  34577. <doc xml:space="preserve">Get the name of the given field number, counting from 0 onwards.</doc>
  34578. <return-value transfer-ownership="none">
  34579. <doc xml:space="preserve">the name of the given field number</doc>
  34580. <type name="utf8" c:type="const gchar*"/>
  34581. </return-value>
  34582. <parameters>
  34583. <instance-parameter name="structure" transfer-ownership="none">
  34584. <doc xml:space="preserve">a #GstStructure</doc>
  34585. <type name="Structure" c:type="const GstStructure*"/>
  34586. </instance-parameter>
  34587. <parameter name="index" transfer-ownership="none">
  34588. <doc xml:space="preserve">the index to get the name of</doc>
  34589. <type name="guint" c:type="guint"/>
  34590. </parameter>
  34591. </parameters>
  34592. </method>
  34593. <method name="remove_all_fields"
  34594. c:identifier="gst_structure_remove_all_fields">
  34595. <doc xml:space="preserve">Removes all fields in a GstStructure.</doc>
  34596. <return-value transfer-ownership="none">
  34597. <type name="none" c:type="void"/>
  34598. </return-value>
  34599. <parameters>
  34600. <instance-parameter name="structure" transfer-ownership="none">
  34601. <doc xml:space="preserve">a #GstStructure</doc>
  34602. <type name="Structure" c:type="GstStructure*"/>
  34603. </instance-parameter>
  34604. </parameters>
  34605. </method>
  34606. <method name="remove_field" c:identifier="gst_structure_remove_field">
  34607. <doc xml:space="preserve">Removes the field with the given name. If the field with the given
  34608. name does not exist, the structure is unchanged.</doc>
  34609. <return-value transfer-ownership="none">
  34610. <type name="none" c:type="void"/>
  34611. </return-value>
  34612. <parameters>
  34613. <instance-parameter name="structure" transfer-ownership="none">
  34614. <doc xml:space="preserve">a #GstStructure</doc>
  34615. <type name="Structure" c:type="GstStructure*"/>
  34616. </instance-parameter>
  34617. <parameter name="fieldname" transfer-ownership="none">
  34618. <doc xml:space="preserve">the name of the field to remove</doc>
  34619. <type name="utf8" c:type="const gchar*"/>
  34620. </parameter>
  34621. </parameters>
  34622. </method>
  34623. <method name="remove_fields"
  34624. c:identifier="gst_structure_remove_fields"
  34625. introspectable="0">
  34626. <doc xml:space="preserve">Removes the fields with the given names. If a field does not exist, the
  34627. argument is ignored.</doc>
  34628. <return-value transfer-ownership="none">
  34629. <type name="none" c:type="void"/>
  34630. </return-value>
  34631. <parameters>
  34632. <instance-parameter name="structure" transfer-ownership="none">
  34633. <doc xml:space="preserve">a #GstStructure</doc>
  34634. <type name="Structure" c:type="GstStructure*"/>
  34635. </instance-parameter>
  34636. <parameter name="fieldname" transfer-ownership="none">
  34637. <doc xml:space="preserve">the name of the field to remove</doc>
  34638. <type name="utf8" c:type="const gchar*"/>
  34639. </parameter>
  34640. <parameter name="..." transfer-ownership="none">
  34641. <doc xml:space="preserve">%NULL-terminated list of more fieldnames to remove</doc>
  34642. <varargs/>
  34643. </parameter>
  34644. </parameters>
  34645. </method>
  34646. <method name="remove_fields_valist"
  34647. c:identifier="gst_structure_remove_fields_valist"
  34648. introspectable="0">
  34649. <doc xml:space="preserve">va_list form of gst_structure_remove_fields().</doc>
  34650. <return-value transfer-ownership="none">
  34651. <type name="none" c:type="void"/>
  34652. </return-value>
  34653. <parameters>
  34654. <instance-parameter name="structure" transfer-ownership="none">
  34655. <doc xml:space="preserve">a #GstStructure</doc>
  34656. <type name="Structure" c:type="GstStructure*"/>
  34657. </instance-parameter>
  34658. <parameter name="fieldname" transfer-ownership="none">
  34659. <doc xml:space="preserve">the name of the field to remove</doc>
  34660. <type name="utf8" c:type="const gchar*"/>
  34661. </parameter>
  34662. <parameter name="varargs" transfer-ownership="none">
  34663. <doc xml:space="preserve">%NULL-terminated list of more fieldnames to remove</doc>
  34664. <type name="va_list" c:type="va_list"/>
  34665. </parameter>
  34666. </parameters>
  34667. </method>
  34668. <method name="set" c:identifier="gst_structure_set" introspectable="0">
  34669. <doc xml:space="preserve">Parses the variable arguments and sets fields accordingly. Fields that
  34670. weren't already part of the structure are added as needed.
  34671. Variable arguments should be in the form field name, field type
  34672. (as a GType), value(s). The last variable argument should be %NULL.</doc>
  34673. <return-value transfer-ownership="none">
  34674. <type name="none" c:type="void"/>
  34675. </return-value>
  34676. <parameters>
  34677. <instance-parameter name="structure" transfer-ownership="none">
  34678. <doc xml:space="preserve">a #GstStructure</doc>
  34679. <type name="Structure" c:type="GstStructure*"/>
  34680. </instance-parameter>
  34681. <parameter name="fieldname" transfer-ownership="none">
  34682. <doc xml:space="preserve">the name of the field to set</doc>
  34683. <type name="utf8" c:type="const gchar*"/>
  34684. </parameter>
  34685. <parameter name="..." transfer-ownership="none">
  34686. <doc xml:space="preserve">variable arguments</doc>
  34687. <varargs/>
  34688. </parameter>
  34689. </parameters>
  34690. </method>
  34691. <method name="set_name" c:identifier="gst_structure_set_name">
  34692. <doc xml:space="preserve">Sets the name of the structure to the given @name. The string
  34693. provided is copied before being used. It must not be empty, start with a
  34694. letter and can be followed by letters, numbers and any of "/-_.:".</doc>
  34695. <return-value transfer-ownership="none">
  34696. <type name="none" c:type="void"/>
  34697. </return-value>
  34698. <parameters>
  34699. <instance-parameter name="structure" transfer-ownership="none">
  34700. <doc xml:space="preserve">a #GstStructure</doc>
  34701. <type name="Structure" c:type="GstStructure*"/>
  34702. </instance-parameter>
  34703. <parameter name="name" transfer-ownership="none">
  34704. <doc xml:space="preserve">the new name of the structure</doc>
  34705. <type name="utf8" c:type="const gchar*"/>
  34706. </parameter>
  34707. </parameters>
  34708. </method>
  34709. <method name="set_parent_refcount"
  34710. c:identifier="gst_structure_set_parent_refcount">
  34711. <doc xml:space="preserve">Sets the parent_refcount field of #GstStructure. This field is used to
  34712. determine whether a structure is mutable or not. This function should only be
  34713. called by code implementing parent objects of #GstStructure, as described in
  34714. the MT Refcounting section of the design documents.</doc>
  34715. <return-value transfer-ownership="none">
  34716. <doc xml:space="preserve">%TRUE if the parent refcount could be set.</doc>
  34717. <type name="gboolean" c:type="gboolean"/>
  34718. </return-value>
  34719. <parameters>
  34720. <instance-parameter name="structure" transfer-ownership="none">
  34721. <doc xml:space="preserve">a #GstStructure</doc>
  34722. <type name="Structure" c:type="GstStructure*"/>
  34723. </instance-parameter>
  34724. <parameter name="refcount" transfer-ownership="none">
  34725. <doc xml:space="preserve">a pointer to the parent's refcount</doc>
  34726. <type name="gint" c:type="gint*"/>
  34727. </parameter>
  34728. </parameters>
  34729. </method>
  34730. <method name="set_valist"
  34731. c:identifier="gst_structure_set_valist"
  34732. introspectable="0">
  34733. <doc xml:space="preserve">va_list form of gst_structure_set().</doc>
  34734. <return-value transfer-ownership="none">
  34735. <type name="none" c:type="void"/>
  34736. </return-value>
  34737. <parameters>
  34738. <instance-parameter name="structure" transfer-ownership="none">
  34739. <doc xml:space="preserve">a #GstStructure</doc>
  34740. <type name="Structure" c:type="GstStructure*"/>
  34741. </instance-parameter>
  34742. <parameter name="fieldname" transfer-ownership="none">
  34743. <doc xml:space="preserve">the name of the field to set</doc>
  34744. <type name="utf8" c:type="const gchar*"/>
  34745. </parameter>
  34746. <parameter name="varargs" transfer-ownership="none">
  34747. <doc xml:space="preserve">variable arguments</doc>
  34748. <type name="va_list" c:type="va_list"/>
  34749. </parameter>
  34750. </parameters>
  34751. </method>
  34752. <method name="set_value" c:identifier="gst_structure_set_value">
  34753. <doc xml:space="preserve">Sets the field with the given name @field to @value. If the field
  34754. does not exist, it is created. If the field exists, the previous
  34755. value is replaced and freed.</doc>
  34756. <return-value transfer-ownership="none">
  34757. <type name="none" c:type="void"/>
  34758. </return-value>
  34759. <parameters>
  34760. <instance-parameter name="structure" transfer-ownership="none">
  34761. <doc xml:space="preserve">a #GstStructure</doc>
  34762. <type name="Structure" c:type="GstStructure*"/>
  34763. </instance-parameter>
  34764. <parameter name="fieldname" transfer-ownership="none">
  34765. <doc xml:space="preserve">the name of the field to set</doc>
  34766. <type name="utf8" c:type="const gchar*"/>
  34767. </parameter>
  34768. <parameter name="value" transfer-ownership="none">
  34769. <doc xml:space="preserve">the new value of the field</doc>
  34770. <type name="GObject.Value" c:type="const GValue*"/>
  34771. </parameter>
  34772. </parameters>
  34773. </method>
  34774. <method name="take_value" c:identifier="gst_structure_take_value">
  34775. <doc xml:space="preserve">Sets the field with the given name @field to @value. If the field
  34776. does not exist, it is created. If the field exists, the previous
  34777. value is replaced and freed. The function will take ownership of @value.</doc>
  34778. <return-value transfer-ownership="none">
  34779. <type name="none" c:type="void"/>
  34780. </return-value>
  34781. <parameters>
  34782. <instance-parameter name="structure" transfer-ownership="none">
  34783. <doc xml:space="preserve">a #GstStructure</doc>
  34784. <type name="Structure" c:type="GstStructure*"/>
  34785. </instance-parameter>
  34786. <parameter name="fieldname" transfer-ownership="none">
  34787. <doc xml:space="preserve">the name of the field to set</doc>
  34788. <type name="utf8" c:type="const gchar*"/>
  34789. </parameter>
  34790. <parameter name="value" transfer-ownership="full">
  34791. <doc xml:space="preserve">the new value of the field</doc>
  34792. <type name="GObject.Value" c:type="GValue*"/>
  34793. </parameter>
  34794. </parameters>
  34795. </method>
  34796. <method name="to_string" c:identifier="gst_structure_to_string">
  34797. <doc xml:space="preserve">Converts @structure to a human-readable string representation.
  34798. For debugging purposes its easier to do something like this:
  34799. |[&lt;!-- language="C" --&gt;
  34800. GST_LOG ("structure is %" GST_PTR_FORMAT, structure);
  34801. ]|
  34802. This prints the structure in human readable form.
  34803. The current implementation of serialization will lead to unexpected results
  34804. when there are nested #GstCaps / #GstStructure deeper than one level.
  34805. Free-function: g_free</doc>
  34806. <return-value transfer-ownership="full">
  34807. <doc xml:space="preserve">a pointer to string allocated by g_malloc().
  34808. g_free() after usage.</doc>
  34809. <type name="utf8" c:type="gchar*"/>
  34810. </return-value>
  34811. <parameters>
  34812. <instance-parameter name="structure" transfer-ownership="none">
  34813. <doc xml:space="preserve">a #GstStructure</doc>
  34814. <type name="Structure" c:type="const GstStructure*"/>
  34815. </instance-parameter>
  34816. </parameters>
  34817. </method>
  34818. <function name="from_string" c:identifier="gst_structure_from_string">
  34819. <doc xml:space="preserve">Creates a #GstStructure from a string representation.
  34820. If end is not %NULL, a pointer to the place inside the given string
  34821. where parsing ended will be returned.
  34822. Free-function: gst_structure_free</doc>
  34823. <return-value transfer-ownership="full" nullable="1">
  34824. <doc xml:space="preserve">a new #GstStructure or %NULL
  34825. when the string could not be parsed. Free with
  34826. gst_structure_free() after use.</doc>
  34827. <type name="Structure" c:type="GstStructure*"/>
  34828. </return-value>
  34829. <parameters>
  34830. <parameter name="string" transfer-ownership="none">
  34831. <doc xml:space="preserve">a string representation of a #GstStructure.</doc>
  34832. <type name="utf8" c:type="const gchar*"/>
  34833. </parameter>
  34834. <parameter name="end"
  34835. direction="out"
  34836. caller-allocates="0"
  34837. transfer-ownership="none"
  34838. optional="1"
  34839. allow-none="1"
  34840. skip="1">
  34841. <doc xml:space="preserve">pointer to store the end of the string in.</doc>
  34842. <type name="utf8" c:type="gchar**"/>
  34843. </parameter>
  34844. </parameters>
  34845. </function>
  34846. </record>
  34847. <enumeration name="StructureChangeType"
  34848. glib:type-name="GstStructureChangeType"
  34849. glib:get-type="gst_structure_change_type_get_type"
  34850. c:type="GstStructureChangeType">
  34851. <doc xml:space="preserve">The type of a %GST_MESSAGE_STRUCTURE_CHANGE.</doc>
  34852. <member name="link"
  34853. value="0"
  34854. c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_LINK"
  34855. glib:nick="link">
  34856. <doc xml:space="preserve">Pad linking is starting or done.</doc>
  34857. </member>
  34858. <member name="unlink"
  34859. value="1"
  34860. c:identifier="GST_STRUCTURE_CHANGE_TYPE_PAD_UNLINK"
  34861. glib:nick="unlink">
  34862. <doc xml:space="preserve">Pad unlinking is starting or done.</doc>
  34863. </member>
  34864. </enumeration>
  34865. <callback name="StructureFilterMapFunc" c:type="GstStructureFilterMapFunc">
  34866. <doc xml:space="preserve">A function that will be called in gst_structure_filter_and_map_in_place().
  34867. The function may modify @value, and the value will be removed from
  34868. the structure if %FALSE is returned.</doc>
  34869. <return-value transfer-ownership="none">
  34870. <doc xml:space="preserve">%TRUE if the field should be preserved, %FALSE if it
  34871. should be removed.</doc>
  34872. <type name="gboolean" c:type="gboolean"/>
  34873. </return-value>
  34874. <parameters>
  34875. <parameter name="field_id" transfer-ownership="none">
  34876. <doc xml:space="preserve">the #GQuark of the field name</doc>
  34877. <type name="GLib.Quark" c:type="GQuark"/>
  34878. </parameter>
  34879. <parameter name="value" transfer-ownership="none">
  34880. <doc xml:space="preserve">the #GValue of the field</doc>
  34881. <type name="GObject.Value" c:type="GValue*"/>
  34882. </parameter>
  34883. <parameter name="user_data"
  34884. transfer-ownership="none"
  34885. nullable="1"
  34886. allow-none="1"
  34887. closure="2">
  34888. <doc xml:space="preserve">user data</doc>
  34889. <type name="gpointer" c:type="gpointer"/>
  34890. </parameter>
  34891. </parameters>
  34892. </callback>
  34893. <callback name="StructureForeachFunc" c:type="GstStructureForeachFunc">
  34894. <doc xml:space="preserve">A function that will be called in gst_structure_foreach(). The function may
  34895. not modify @value.</doc>
  34896. <return-value transfer-ownership="none">
  34897. <doc xml:space="preserve">%TRUE if the foreach operation should continue, %FALSE if
  34898. the foreach operation should stop with %FALSE.</doc>
  34899. <type name="gboolean" c:type="gboolean"/>
  34900. </return-value>
  34901. <parameters>
  34902. <parameter name="field_id" transfer-ownership="none">
  34903. <doc xml:space="preserve">the #GQuark of the field name</doc>
  34904. <type name="GLib.Quark" c:type="GQuark"/>
  34905. </parameter>
  34906. <parameter name="value" transfer-ownership="none">
  34907. <doc xml:space="preserve">the #GValue of the field</doc>
  34908. <type name="GObject.Value" c:type="const GValue*"/>
  34909. </parameter>
  34910. <parameter name="user_data"
  34911. transfer-ownership="none"
  34912. nullable="1"
  34913. allow-none="1"
  34914. closure="2">
  34915. <doc xml:space="preserve">user data</doc>
  34916. <type name="gpointer" c:type="gpointer"/>
  34917. </parameter>
  34918. </parameters>
  34919. </callback>
  34920. <callback name="StructureMapFunc" c:type="GstStructureMapFunc">
  34921. <doc xml:space="preserve">A function that will be called in gst_structure_map_in_place(). The function
  34922. may modify @value.</doc>
  34923. <return-value transfer-ownership="none">
  34924. <doc xml:space="preserve">%TRUE if the map operation should continue, %FALSE if
  34925. the map operation should stop with %FALSE.</doc>
  34926. <type name="gboolean" c:type="gboolean"/>
  34927. </return-value>
  34928. <parameters>
  34929. <parameter name="field_id" transfer-ownership="none">
  34930. <doc xml:space="preserve">the #GQuark of the field name</doc>
  34931. <type name="GLib.Quark" c:type="GQuark"/>
  34932. </parameter>
  34933. <parameter name="value" transfer-ownership="none">
  34934. <doc xml:space="preserve">the #GValue of the field</doc>
  34935. <type name="GObject.Value" c:type="GValue*"/>
  34936. </parameter>
  34937. <parameter name="user_data"
  34938. transfer-ownership="none"
  34939. nullable="1"
  34940. allow-none="1"
  34941. closure="2">
  34942. <doc xml:space="preserve">user data</doc>
  34943. <type name="gpointer" c:type="gpointer"/>
  34944. </parameter>
  34945. </parameters>
  34946. </callback>
  34947. <class name="SystemClock"
  34948. c:symbol-prefix="system_clock"
  34949. c:type="GstSystemClock"
  34950. parent="Clock"
  34951. glib:type-name="GstSystemClock"
  34952. glib:get-type="gst_system_clock_get_type"
  34953. glib:type-struct="SystemClockClass">
  34954. <doc xml:space="preserve">The GStreamer core provides a GstSystemClock based on the system time.
  34955. Asynchronous callbacks are scheduled from an internal thread.
  34956. Clock implementors are encouraged to subclass this systemclock as it
  34957. implements the async notification.
  34958. Subclasses can however override all of the important methods for sync and
  34959. async notifications to implement their own callback methods or blocking
  34960. wait operations.</doc>
  34961. <function name="obtain" c:identifier="gst_system_clock_obtain">
  34962. <doc xml:space="preserve">Get a handle to the default system clock. The refcount of the
  34963. clock will be increased so you need to unref the clock after
  34964. usage.</doc>
  34965. <return-value transfer-ownership="full">
  34966. <doc xml:space="preserve">the default clock.
  34967. MT safe.</doc>
  34968. <type name="Clock" c:type="GstClock*"/>
  34969. </return-value>
  34970. </function>
  34971. <function name="set_default"
  34972. c:identifier="gst_system_clock_set_default"
  34973. version="1.4">
  34974. <doc xml:space="preserve">Sets the default system clock that can be obtained with
  34975. gst_system_clock_obtain().
  34976. This is mostly used for testing and debugging purposes when you
  34977. want to have control over the time reported by the default system
  34978. clock.
  34979. MT safe.</doc>
  34980. <return-value transfer-ownership="none">
  34981. <type name="none" c:type="void"/>
  34982. </return-value>
  34983. <parameters>
  34984. <parameter name="new_clock" transfer-ownership="none">
  34985. <doc xml:space="preserve">a #GstClock</doc>
  34986. <type name="Clock" c:type="GstClock*"/>
  34987. </parameter>
  34988. </parameters>
  34989. </function>
  34990. <property name="clock-type" writable="1" transfer-ownership="none">
  34991. <type name="ClockType"/>
  34992. </property>
  34993. <field name="clock">
  34994. <type name="Clock" c:type="GstClock"/>
  34995. </field>
  34996. <field name="priv" readable="0" private="1">
  34997. <type name="SystemClockPrivate" c:type="GstSystemClockPrivate*"/>
  34998. </field>
  34999. <field name="_gst_reserved" readable="0" private="1">
  35000. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  35001. <type name="gpointer" c:type="gpointer"/>
  35002. </array>
  35003. </field>
  35004. </class>
  35005. <record name="SystemClockClass"
  35006. c:type="GstSystemClockClass"
  35007. glib:is-gtype-struct-for="SystemClock">
  35008. <field name="parent_class">
  35009. <type name="ClockClass" c:type="GstClockClass"/>
  35010. </field>
  35011. <field name="_gst_reserved" readable="0" private="1">
  35012. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  35013. <type name="gpointer" c:type="gpointer"/>
  35014. </array>
  35015. </field>
  35016. </record>
  35017. <record name="SystemClockPrivate"
  35018. c:type="GstSystemClockPrivate"
  35019. disguised="1">
  35020. </record>
  35021. <constant name="TAG_ALBUM" value="album" c:type="GST_TAG_ALBUM">
  35022. <doc xml:space="preserve">album containing this data (string)
  35023. The album name as it should be displayed, e.g. 'The Jazz Guitar'</doc>
  35024. <type name="utf8" c:type="gchar*"/>
  35025. </constant>
  35026. <constant name="TAG_ALBUM_ARTIST"
  35027. value="album-artist"
  35028. c:type="GST_TAG_ALBUM_ARTIST">
  35029. <doc xml:space="preserve">The artist of the entire album, as it should be displayed.</doc>
  35030. <type name="utf8" c:type="gchar*"/>
  35031. </constant>
  35032. <constant name="TAG_ALBUM_ARTIST_SORTNAME"
  35033. value="album-artist-sortname"
  35034. c:type="GST_TAG_ALBUM_ARTIST_SORTNAME">
  35035. <doc xml:space="preserve">The artist of the entire album, as it should be sorted.</doc>
  35036. <type name="utf8" c:type="gchar*"/>
  35037. </constant>
  35038. <constant name="TAG_ALBUM_GAIN"
  35039. value="replaygain-album-gain"
  35040. c:type="GST_TAG_ALBUM_GAIN">
  35041. <doc xml:space="preserve">album gain in db (double)</doc>
  35042. <type name="utf8" c:type="gchar*"/>
  35043. </constant>
  35044. <constant name="TAG_ALBUM_PEAK"
  35045. value="replaygain-album-peak"
  35046. c:type="GST_TAG_ALBUM_PEAK">
  35047. <doc xml:space="preserve">peak of the album (double)</doc>
  35048. <type name="utf8" c:type="gchar*"/>
  35049. </constant>
  35050. <constant name="TAG_ALBUM_SORTNAME"
  35051. value="album-sortname"
  35052. c:type="GST_TAG_ALBUM_SORTNAME">
  35053. <doc xml:space="preserve">album containing this data, as used for sorting (string)
  35054. The album name as it should be sorted, e.g. 'Jazz Guitar, The'</doc>
  35055. <type name="utf8" c:type="gchar*"/>
  35056. </constant>
  35057. <constant name="TAG_ALBUM_VOLUME_COUNT"
  35058. value="album-disc-count"
  35059. c:type="GST_TAG_ALBUM_VOLUME_COUNT">
  35060. <doc xml:space="preserve">count of discs inside collection this disc belongs to (unsigned integer)</doc>
  35061. <type name="utf8" c:type="gchar*"/>
  35062. </constant>
  35063. <constant name="TAG_ALBUM_VOLUME_NUMBER"
  35064. value="album-disc-number"
  35065. c:type="GST_TAG_ALBUM_VOLUME_NUMBER">
  35066. <doc xml:space="preserve">disc number inside a collection (unsigned integer)</doc>
  35067. <type name="utf8" c:type="gchar*"/>
  35068. </constant>
  35069. <constant name="TAG_APPLICATION_DATA"
  35070. value="application-data"
  35071. c:type="GST_TAG_APPLICATION_DATA">
  35072. <doc xml:space="preserve">Arbitrary application data (sample)
  35073. Some formats allow applications to add their own arbitrary data
  35074. into files. This data is application dependent.</doc>
  35075. <type name="utf8" c:type="gchar*"/>
  35076. </constant>
  35077. <constant name="TAG_APPLICATION_NAME"
  35078. value="application-name"
  35079. c:type="GST_TAG_APPLICATION_NAME">
  35080. <doc xml:space="preserve">Name of the application used to create the media (string)</doc>
  35081. <type name="utf8" c:type="gchar*"/>
  35082. </constant>
  35083. <constant name="TAG_ARTIST" value="artist" c:type="GST_TAG_ARTIST">
  35084. <doc xml:space="preserve">person(s) responsible for the recording (string)
  35085. The artist name as it should be displayed, e.g. 'Jimi Hendrix' or
  35086. 'The Guitar Heroes'</doc>
  35087. <type name="utf8" c:type="gchar*"/>
  35088. </constant>
  35089. <constant name="TAG_ARTIST_SORTNAME"
  35090. value="artist-sortname"
  35091. c:type="GST_TAG_ARTIST_SORTNAME">
  35092. <doc xml:space="preserve">person(s) responsible for the recording, as used for sorting (string)
  35093. The artist name as it should be sorted, e.g. 'Hendrix, Jimi' or
  35094. 'Guitar Heroes, The'</doc>
  35095. <type name="utf8" c:type="gchar*"/>
  35096. </constant>
  35097. <constant name="TAG_ATTACHMENT"
  35098. value="attachment"
  35099. c:type="GST_TAG_ATTACHMENT">
  35100. <doc xml:space="preserve">generic file attachment (sample) (sample taglist should specify the content
  35101. type and if possible set "filename" to the file name of the
  35102. attachment)</doc>
  35103. <type name="utf8" c:type="gchar*"/>
  35104. </constant>
  35105. <constant name="TAG_AUDIO_CODEC"
  35106. value="audio-codec"
  35107. c:type="GST_TAG_AUDIO_CODEC">
  35108. <doc xml:space="preserve">codec the audio data is stored in (string)</doc>
  35109. <type name="utf8" c:type="gchar*"/>
  35110. </constant>
  35111. <constant name="TAG_BEATS_PER_MINUTE"
  35112. value="beats-per-minute"
  35113. c:type="GST_TAG_BEATS_PER_MINUTE">
  35114. <doc xml:space="preserve">number of beats per minute in audio (double)</doc>
  35115. <type name="utf8" c:type="gchar*"/>
  35116. </constant>
  35117. <constant name="TAG_BITRATE" value="bitrate" c:type="GST_TAG_BITRATE">
  35118. <doc xml:space="preserve">exact or average bitrate in bits/s (unsigned integer)</doc>
  35119. <type name="utf8" c:type="gchar*"/>
  35120. </constant>
  35121. <constant name="TAG_CODEC" value="codec" c:type="GST_TAG_CODEC">
  35122. <doc xml:space="preserve">codec the data is stored in (string)</doc>
  35123. <type name="utf8" c:type="gchar*"/>
  35124. </constant>
  35125. <constant name="TAG_COMMENT" value="comment" c:type="GST_TAG_COMMENT">
  35126. <doc xml:space="preserve">free text commenting the data (string)</doc>
  35127. <type name="utf8" c:type="gchar*"/>
  35128. </constant>
  35129. <constant name="TAG_COMPOSER" value="composer" c:type="GST_TAG_COMPOSER">
  35130. <doc xml:space="preserve">person(s) who composed the recording (string)</doc>
  35131. <type name="utf8" c:type="gchar*"/>
  35132. </constant>
  35133. <constant name="TAG_COMPOSER_SORTNAME"
  35134. value="composer-sortname"
  35135. c:type="GST_TAG_COMPOSER_SORTNAME">
  35136. <doc xml:space="preserve">The composer's name, used for sorting (string)</doc>
  35137. <type name="utf8" c:type="gchar*"/>
  35138. </constant>
  35139. <constant name="TAG_CONDUCTOR"
  35140. value="conductor"
  35141. c:type="GST_TAG_CONDUCTOR"
  35142. version="1.8">
  35143. <doc xml:space="preserve">conductor/performer refinement (string)</doc>
  35144. <type name="utf8" c:type="gchar*"/>
  35145. </constant>
  35146. <constant name="TAG_CONTACT" value="contact" c:type="GST_TAG_CONTACT">
  35147. <doc xml:space="preserve">contact information (string)</doc>
  35148. <type name="utf8" c:type="gchar*"/>
  35149. </constant>
  35150. <constant name="TAG_CONTAINER_FORMAT"
  35151. value="container-format"
  35152. c:type="GST_TAG_CONTAINER_FORMAT">
  35153. <doc xml:space="preserve">container format the data is stored in (string)</doc>
  35154. <type name="utf8" c:type="gchar*"/>
  35155. </constant>
  35156. <constant name="TAG_COPYRIGHT"
  35157. value="copyright"
  35158. c:type="GST_TAG_COPYRIGHT">
  35159. <doc xml:space="preserve">copyright notice of the data (string)</doc>
  35160. <type name="utf8" c:type="gchar*"/>
  35161. </constant>
  35162. <constant name="TAG_COPYRIGHT_URI"
  35163. value="copyright-uri"
  35164. c:type="GST_TAG_COPYRIGHT_URI">
  35165. <doc xml:space="preserve">URI to location where copyright details can be found (string)</doc>
  35166. <type name="utf8" c:type="gchar*"/>
  35167. </constant>
  35168. <constant name="TAG_DATE" value="date" c:type="GST_TAG_DATE">
  35169. <doc xml:space="preserve">date the data was created (#GDate structure)</doc>
  35170. <type name="utf8" c:type="gchar*"/>
  35171. </constant>
  35172. <constant name="TAG_DATE_TIME" value="datetime" c:type="GST_TAG_DATE_TIME">
  35173. <doc xml:space="preserve">date and time the data was created (#GstDateTime structure)</doc>
  35174. <type name="utf8" c:type="gchar*"/>
  35175. </constant>
  35176. <constant name="TAG_DESCRIPTION"
  35177. value="description"
  35178. c:type="GST_TAG_DESCRIPTION">
  35179. <doc xml:space="preserve">short text describing the content of the data (string)</doc>
  35180. <type name="utf8" c:type="gchar*"/>
  35181. </constant>
  35182. <constant name="TAG_DEVICE_MANUFACTURER"
  35183. value="device-manufacturer"
  35184. c:type="GST_TAG_DEVICE_MANUFACTURER">
  35185. <doc xml:space="preserve">Manufacturer of the device used to create the media (string)</doc>
  35186. <type name="utf8" c:type="gchar*"/>
  35187. </constant>
  35188. <constant name="TAG_DEVICE_MODEL"
  35189. value="device-model"
  35190. c:type="GST_TAG_DEVICE_MODEL">
  35191. <doc xml:space="preserve">Model of the device used to create the media (string)</doc>
  35192. <type name="utf8" c:type="gchar*"/>
  35193. </constant>
  35194. <constant name="TAG_DURATION" value="duration" c:type="GST_TAG_DURATION">
  35195. <doc xml:space="preserve">length in GStreamer time units (nanoseconds) (unsigned 64-bit integer)</doc>
  35196. <type name="utf8" c:type="gchar*"/>
  35197. </constant>
  35198. <constant name="TAG_ENCODED_BY"
  35199. value="encoded-by"
  35200. c:type="GST_TAG_ENCODED_BY">
  35201. <doc xml:space="preserve">name of the person or organisation that encoded the file. May contain a
  35202. copyright message if the person or organisation also holds the copyright
  35203. (string)
  35204. Note: do not use this field to describe the encoding application. Use
  35205. #GST_TAG_APPLICATION_NAME or #GST_TAG_COMMENT for that.</doc>
  35206. <type name="utf8" c:type="gchar*"/>
  35207. </constant>
  35208. <constant name="TAG_ENCODER" value="encoder" c:type="GST_TAG_ENCODER">
  35209. <doc xml:space="preserve">encoder used to encode this stream (string)</doc>
  35210. <type name="utf8" c:type="gchar*"/>
  35211. </constant>
  35212. <constant name="TAG_ENCODER_VERSION"
  35213. value="encoder-version"
  35214. c:type="GST_TAG_ENCODER_VERSION">
  35215. <doc xml:space="preserve">version of the encoder used to encode this stream (unsigned integer)</doc>
  35216. <type name="utf8" c:type="gchar*"/>
  35217. </constant>
  35218. <constant name="TAG_EXTENDED_COMMENT"
  35219. value="extended-comment"
  35220. c:type="GST_TAG_EXTENDED_COMMENT">
  35221. <doc xml:space="preserve">key/value text commenting the data (string)
  35222. Must be in the form of 'key=comment' or
  35223. 'key[lc]=comment' where 'lc' is an ISO-639
  35224. language code.
  35225. This tag is used for unknown Vorbis comment tags,
  35226. unknown APE tags and certain ID3v2 comment fields.</doc>
  35227. <type name="utf8" c:type="gchar*"/>
  35228. </constant>
  35229. <constant name="TAG_GENRE" value="genre" c:type="GST_TAG_GENRE">
  35230. <doc xml:space="preserve">genre this data belongs to (string)</doc>
  35231. <type name="utf8" c:type="gchar*"/>
  35232. </constant>
  35233. <constant name="TAG_GEO_LOCATION_CAPTURE_DIRECTION"
  35234. value="geo-location-capture-direction"
  35235. c:type="GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION">
  35236. <doc xml:space="preserve">Indicates the direction the device is pointing to when capturing
  35237. a media. It is represented as degrees in floating point representation,
  35238. 0 means the geographic north, and increases clockwise (double from 0 to 360)
  35239. See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</doc>
  35240. <type name="utf8" c:type="gchar*"/>
  35241. </constant>
  35242. <constant name="TAG_GEO_LOCATION_CITY"
  35243. value="geo-location-city"
  35244. c:type="GST_TAG_GEO_LOCATION_CITY">
  35245. <doc xml:space="preserve">The city (english name) where the media has been produced (string).</doc>
  35246. <type name="utf8" c:type="gchar*"/>
  35247. </constant>
  35248. <constant name="TAG_GEO_LOCATION_COUNTRY"
  35249. value="geo-location-country"
  35250. c:type="GST_TAG_GEO_LOCATION_COUNTRY">
  35251. <doc xml:space="preserve">The country (english name) where the media has been produced (string).</doc>
  35252. <type name="utf8" c:type="gchar*"/>
  35253. </constant>
  35254. <constant name="TAG_GEO_LOCATION_ELEVATION"
  35255. value="geo-location-elevation"
  35256. c:type="GST_TAG_GEO_LOCATION_ELEVATION">
  35257. <doc xml:space="preserve">geo elevation of where the media has been recorded or produced in meters
  35258. according to WGS84 (zero is average sea level) (double).</doc>
  35259. <type name="utf8" c:type="gchar*"/>
  35260. </constant>
  35261. <constant name="TAG_GEO_LOCATION_HORIZONTAL_ERROR"
  35262. value="geo-location-horizontal-error"
  35263. c:type="GST_TAG_GEO_LOCATION_HORIZONTAL_ERROR">
  35264. <doc xml:space="preserve">Represents the expected error on the horizontal positioning in
  35265. meters (double).</doc>
  35266. <type name="utf8" c:type="gchar*"/>
  35267. </constant>
  35268. <constant name="TAG_GEO_LOCATION_LATITUDE"
  35269. value="geo-location-latitude"
  35270. c:type="GST_TAG_GEO_LOCATION_LATITUDE">
  35271. <doc xml:space="preserve">geo latitude location of where the media has been recorded or produced in
  35272. degrees according to WGS84 (zero at the equator, negative values for southern
  35273. latitudes) (double).</doc>
  35274. <type name="utf8" c:type="gchar*"/>
  35275. </constant>
  35276. <constant name="TAG_GEO_LOCATION_LONGITUDE"
  35277. value="geo-location-longitude"
  35278. c:type="GST_TAG_GEO_LOCATION_LONGITUDE">
  35279. <doc xml:space="preserve">geo longitude location of where the media has been recorded or produced in
  35280. degrees according to WGS84 (zero at the prime meridian in Greenwich/UK,
  35281. negative values for western longitudes). (double).</doc>
  35282. <type name="utf8" c:type="gchar*"/>
  35283. </constant>
  35284. <constant name="TAG_GEO_LOCATION_MOVEMENT_DIRECTION"
  35285. value="geo-location-movement-direction"
  35286. c:type="GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION">
  35287. <doc xml:space="preserve">Indicates the movement direction of the device performing the capture
  35288. of a media. It is represented as degrees in floating point representation,
  35289. 0 means the geographic north, and increases clockwise (double from 0 to 360)
  35290. See also #GST_TAG_GEO_LOCATION_CAPTURE_DIRECTION</doc>
  35291. <type name="utf8" c:type="gchar*"/>
  35292. </constant>
  35293. <constant name="TAG_GEO_LOCATION_MOVEMENT_SPEED"
  35294. value="geo-location-movement-speed"
  35295. c:type="GST_TAG_GEO_LOCATION_MOVEMENT_SPEED">
  35296. <doc xml:space="preserve">Speed of the capturing device when performing the capture.
  35297. Represented in m/s. (double)
  35298. See also #GST_TAG_GEO_LOCATION_MOVEMENT_DIRECTION</doc>
  35299. <type name="utf8" c:type="gchar*"/>
  35300. </constant>
  35301. <constant name="TAG_GEO_LOCATION_NAME"
  35302. value="geo-location-name"
  35303. c:type="GST_TAG_GEO_LOCATION_NAME">
  35304. <doc xml:space="preserve">human readable descriptive location of where the media has been recorded or
  35305. produced. (string).</doc>
  35306. <type name="utf8" c:type="gchar*"/>
  35307. </constant>
  35308. <constant name="TAG_GEO_LOCATION_SUBLOCATION"
  35309. value="geo-location-sublocation"
  35310. c:type="GST_TAG_GEO_LOCATION_SUBLOCATION">
  35311. <doc xml:space="preserve">A location 'smaller' than GST_TAG_GEO_LOCATION_CITY that specifies better
  35312. where the media has been produced. (e.g. the neighborhood) (string).
  35313. This tag has been added as this is how it is handled/named in XMP's
  35314. Iptc4xmpcore schema.</doc>
  35315. <type name="utf8" c:type="gchar*"/>
  35316. </constant>
  35317. <constant name="TAG_GROUPING" value="grouping" c:type="GST_TAG_GROUPING">
  35318. <doc xml:space="preserve">Groups together media that are related and spans multiple tracks. An
  35319. example are multiple pieces of a concerto. (string)</doc>
  35320. <type name="utf8" c:type="gchar*"/>
  35321. </constant>
  35322. <constant name="TAG_HOMEPAGE" value="homepage" c:type="GST_TAG_HOMEPAGE">
  35323. <doc xml:space="preserve">Homepage for this media (i.e. artist or movie homepage) (string)</doc>
  35324. <type name="utf8" c:type="gchar*"/>
  35325. </constant>
  35326. <constant name="TAG_IMAGE" value="image" c:type="GST_TAG_IMAGE">
  35327. <doc xml:space="preserve">image (sample) (sample taglist should specify the content type and preferably
  35328. also set "image-type" field as #GstTagImageType)</doc>
  35329. <type name="utf8" c:type="gchar*"/>
  35330. </constant>
  35331. <constant name="TAG_IMAGE_ORIENTATION"
  35332. value="image-orientation"
  35333. c:type="GST_TAG_IMAGE_ORIENTATION">
  35334. <doc xml:space="preserve">Represents the 'Orientation' tag from EXIF. Defines how the image
  35335. should be rotated and mirrored for display. (string)
  35336. This tag has a predefined set of allowed values:
  35337. "rotate-0"
  35338. "rotate-90"
  35339. "rotate-180"
  35340. "rotate-270"
  35341. "flip-rotate-0"
  35342. "flip-rotate-90"
  35343. "flip-rotate-180"
  35344. "flip-rotate-270"
  35345. The naming is adopted according to a possible transformation to perform
  35346. on the image to fix its orientation, obviously equivalent operations will
  35347. yield the same result.
  35348. Rotations indicated by the values are in clockwise direction and
  35349. 'flip' means an horizontal mirroring.</doc>
  35350. <type name="utf8" c:type="gchar*"/>
  35351. </constant>
  35352. <constant name="TAG_INTERPRETED_BY"
  35353. value="interpreted-by"
  35354. c:type="GST_TAG_INTERPRETED_BY"
  35355. version="1.2">
  35356. <doc xml:space="preserve">Information about the people behind a remix and similar
  35357. interpretations of another existing piece (string)</doc>
  35358. <type name="utf8" c:type="gchar*"/>
  35359. </constant>
  35360. <constant name="TAG_ISRC" value="isrc" c:type="GST_TAG_ISRC">
  35361. <doc xml:space="preserve">International Standard Recording Code - see http://www.ifpi.org/isrc/ (string)</doc>
  35362. <type name="utf8" c:type="gchar*"/>
  35363. </constant>
  35364. <constant name="TAG_KEYWORDS" value="keywords" c:type="GST_TAG_KEYWORDS">
  35365. <doc xml:space="preserve">comma separated keywords describing the content (string).</doc>
  35366. <type name="utf8" c:type="gchar*"/>
  35367. </constant>
  35368. <constant name="TAG_LANGUAGE_CODE"
  35369. value="language-code"
  35370. c:type="GST_TAG_LANGUAGE_CODE">
  35371. <doc xml:space="preserve">ISO-639-2 or ISO-639-1 code for the language the content is in (string)
  35372. There is utility API in libgsttag in gst-plugins-base to obtain a translated
  35373. language name from the language code: gst_tag_get_language_name()</doc>
  35374. <type name="utf8" c:type="gchar*"/>
  35375. </constant>
  35376. <constant name="TAG_LANGUAGE_NAME"
  35377. value="language-name"
  35378. c:type="GST_TAG_LANGUAGE_NAME">
  35379. <doc xml:space="preserve">Name of the language the content is in (string)
  35380. Free-form name of the language the content is in, if a language code
  35381. is not available. This tag should not be set in addition to a language
  35382. code. It is undefined what language or locale the language name is in.</doc>
  35383. <type name="utf8" c:type="gchar*"/>
  35384. </constant>
  35385. <constant name="TAG_LICENSE" value="license" c:type="GST_TAG_LICENSE">
  35386. <doc xml:space="preserve">license of data (string)</doc>
  35387. <type name="utf8" c:type="gchar*"/>
  35388. </constant>
  35389. <constant name="TAG_LICENSE_URI"
  35390. value="license-uri"
  35391. c:type="GST_TAG_LICENSE_URI">
  35392. <doc xml:space="preserve">URI to location where license details can be found (string)</doc>
  35393. <type name="utf8" c:type="gchar*"/>
  35394. </constant>
  35395. <constant name="TAG_LOCATION" value="location" c:type="GST_TAG_LOCATION">
  35396. <doc xml:space="preserve">Origin of media as a URI (location, where the original of the file or stream
  35397. is hosted) (string)</doc>
  35398. <type name="utf8" c:type="gchar*"/>
  35399. </constant>
  35400. <constant name="TAG_LYRICS" value="lyrics" c:type="GST_TAG_LYRICS">
  35401. <doc xml:space="preserve">The lyrics of the media (string)</doc>
  35402. <type name="utf8" c:type="gchar*"/>
  35403. </constant>
  35404. <constant name="TAG_MAXIMUM_BITRATE"
  35405. value="maximum-bitrate"
  35406. c:type="GST_TAG_MAXIMUM_BITRATE">
  35407. <doc xml:space="preserve">maximum bitrate in bits/s (unsigned integer)</doc>
  35408. <type name="utf8" c:type="gchar*"/>
  35409. </constant>
  35410. <constant name="TAG_MIDI_BASE_NOTE"
  35411. value="midi-base-note"
  35412. c:type="GST_TAG_MIDI_BASE_NOTE"
  35413. version="1.4">
  35414. <doc xml:space="preserve">&lt;ulink url="http://en.wikipedia.org/wiki/Note#Note_designation_in_accordance_with_octave_name"&gt;Midi note number&lt;/ulink&gt;
  35415. of the audio track. This is useful for sample instruments and in particular
  35416. for multi-samples.</doc>
  35417. <type name="utf8" c:type="gchar*"/>
  35418. </constant>
  35419. <constant name="TAG_MINIMUM_BITRATE"
  35420. value="minimum-bitrate"
  35421. c:type="GST_TAG_MINIMUM_BITRATE">
  35422. <doc xml:space="preserve">minimum bitrate in bits/s (unsigned integer)</doc>
  35423. <type name="utf8" c:type="gchar*"/>
  35424. </constant>
  35425. <constant name="TAG_NOMINAL_BITRATE"
  35426. value="nominal-bitrate"
  35427. c:type="GST_TAG_NOMINAL_BITRATE">
  35428. <doc xml:space="preserve">nominal bitrate in bits/s (unsigned integer). The actual bitrate might be
  35429. different from this target bitrate.</doc>
  35430. <type name="utf8" c:type="gchar*"/>
  35431. </constant>
  35432. <constant name="TAG_ORGANIZATION"
  35433. value="organization"
  35434. c:type="GST_TAG_ORGANIZATION">
  35435. <doc xml:space="preserve">organization (string)</doc>
  35436. <type name="utf8" c:type="gchar*"/>
  35437. </constant>
  35438. <constant name="TAG_PERFORMER"
  35439. value="performer"
  35440. c:type="GST_TAG_PERFORMER">
  35441. <doc xml:space="preserve">person(s) performing (string)</doc>
  35442. <type name="utf8" c:type="gchar*"/>
  35443. </constant>
  35444. <constant name="TAG_PREVIEW_IMAGE"
  35445. value="preview-image"
  35446. c:type="GST_TAG_PREVIEW_IMAGE">
  35447. <doc xml:space="preserve">image that is meant for preview purposes, e.g. small icon-sized version
  35448. (sample) (sample taglist should specify the content type)</doc>
  35449. <type name="utf8" c:type="gchar*"/>
  35450. </constant>
  35451. <constant name="TAG_PRIVATE_DATA"
  35452. value="private-data"
  35453. c:type="GST_TAG_PRIVATE_DATA"
  35454. version="1.8">
  35455. <doc xml:space="preserve">Any private data that may be contained in tags (sample).
  35456. It is represented by #GstSample in which #GstBuffer contains the
  35457. binary data and the sample's info #GstStructure may contain any
  35458. extra information that identifies the origin or meaning of the data.
  35459. Private frames in ID3v2 tags ('PRIV' frames) will be represented
  35460. using this tag, in which case the GstStructure will be named
  35461. "ID3PrivateFrame" and contain a field named "owner" of type string
  35462. which contains the owner-identification string from the tag.</doc>
  35463. <type name="utf8" c:type="gchar*"/>
  35464. </constant>
  35465. <constant name="TAG_PUBLISHER"
  35466. value="publisher"
  35467. c:type="GST_TAG_PUBLISHER"
  35468. version="1.2">
  35469. <doc xml:space="preserve">Name of the label or publisher (string)</doc>
  35470. <type name="utf8" c:type="gchar*"/>
  35471. </constant>
  35472. <constant name="TAG_REFERENCE_LEVEL"
  35473. value="replaygain-reference-level"
  35474. c:type="GST_TAG_REFERENCE_LEVEL">
  35475. <doc xml:space="preserve">reference level of track and album gain values (double)</doc>
  35476. <type name="utf8" c:type="gchar*"/>
  35477. </constant>
  35478. <constant name="TAG_SERIAL" value="serial" c:type="GST_TAG_SERIAL">
  35479. <doc xml:space="preserve">serial number of track (unsigned integer)</doc>
  35480. <type name="utf8" c:type="gchar*"/>
  35481. </constant>
  35482. <constant name="TAG_SHOW_EPISODE_NUMBER"
  35483. value="show-episode-number"
  35484. c:type="GST_TAG_SHOW_EPISODE_NUMBER">
  35485. <doc xml:space="preserve">Number of the episode within a season/show (unsigned integer)</doc>
  35486. <type name="utf8" c:type="gchar*"/>
  35487. </constant>
  35488. <constant name="TAG_SHOW_NAME"
  35489. value="show-name"
  35490. c:type="GST_TAG_SHOW_NAME">
  35491. <doc xml:space="preserve">Name of the show, used for displaying (string)</doc>
  35492. <type name="utf8" c:type="gchar*"/>
  35493. </constant>
  35494. <constant name="TAG_SHOW_SEASON_NUMBER"
  35495. value="show-season-number"
  35496. c:type="GST_TAG_SHOW_SEASON_NUMBER">
  35497. <doc xml:space="preserve">Number of the season of a show/series (unsigned integer)</doc>
  35498. <type name="utf8" c:type="gchar*"/>
  35499. </constant>
  35500. <constant name="TAG_SHOW_SORTNAME"
  35501. value="show-sortname"
  35502. c:type="GST_TAG_SHOW_SORTNAME">
  35503. <doc xml:space="preserve">Name of the show, used for sorting (string)</doc>
  35504. <type name="utf8" c:type="gchar*"/>
  35505. </constant>
  35506. <constant name="TAG_SUBTITLE_CODEC"
  35507. value="subtitle-codec"
  35508. c:type="GST_TAG_SUBTITLE_CODEC">
  35509. <doc xml:space="preserve">codec/format the subtitle data is stored in (string)</doc>
  35510. <type name="utf8" c:type="gchar*"/>
  35511. </constant>
  35512. <constant name="TAG_TITLE" value="title" c:type="GST_TAG_TITLE">
  35513. <doc xml:space="preserve">commonly used title (string)
  35514. The title as it should be displayed, e.g. 'The Doll House'</doc>
  35515. <type name="utf8" c:type="gchar*"/>
  35516. </constant>
  35517. <constant name="TAG_TITLE_SORTNAME"
  35518. value="title-sortname"
  35519. c:type="GST_TAG_TITLE_SORTNAME">
  35520. <doc xml:space="preserve">commonly used title, as used for sorting (string)
  35521. The title as it should be sorted, e.g. 'Doll House, The'</doc>
  35522. <type name="utf8" c:type="gchar*"/>
  35523. </constant>
  35524. <constant name="TAG_TRACK_COUNT"
  35525. value="track-count"
  35526. c:type="GST_TAG_TRACK_COUNT">
  35527. <doc xml:space="preserve">count of tracks inside collection this track belongs to (unsigned integer)</doc>
  35528. <type name="utf8" c:type="gchar*"/>
  35529. </constant>
  35530. <constant name="TAG_TRACK_GAIN"
  35531. value="replaygain-track-gain"
  35532. c:type="GST_TAG_TRACK_GAIN">
  35533. <doc xml:space="preserve">track gain in db (double)</doc>
  35534. <type name="utf8" c:type="gchar*"/>
  35535. </constant>
  35536. <constant name="TAG_TRACK_NUMBER"
  35537. value="track-number"
  35538. c:type="GST_TAG_TRACK_NUMBER">
  35539. <doc xml:space="preserve">track number inside a collection (unsigned integer)</doc>
  35540. <type name="utf8" c:type="gchar*"/>
  35541. </constant>
  35542. <constant name="TAG_TRACK_PEAK"
  35543. value="replaygain-track-peak"
  35544. c:type="GST_TAG_TRACK_PEAK">
  35545. <doc xml:space="preserve">peak of the track (double)</doc>
  35546. <type name="utf8" c:type="gchar*"/>
  35547. </constant>
  35548. <constant name="TAG_USER_RATING"
  35549. value="user-rating"
  35550. c:type="GST_TAG_USER_RATING">
  35551. <doc xml:space="preserve">Rating attributed by a person (likely the application user).
  35552. The higher the value, the more the user likes this media
  35553. (unsigned int from 0 to 100)</doc>
  35554. <type name="utf8" c:type="gchar*"/>
  35555. </constant>
  35556. <constant name="TAG_VERSION" value="version" c:type="GST_TAG_VERSION">
  35557. <doc xml:space="preserve">version of this data (string)</doc>
  35558. <type name="utf8" c:type="gchar*"/>
  35559. </constant>
  35560. <constant name="TAG_VIDEO_CODEC"
  35561. value="video-codec"
  35562. c:type="GST_TAG_VIDEO_CODEC">
  35563. <doc xml:space="preserve">codec the video data is stored in (string)</doc>
  35564. <type name="utf8" c:type="gchar*"/>
  35565. </constant>
  35566. <constant name="TIME_FORMAT"
  35567. value="u:%02u:%02u.%09u"
  35568. c:type="GST_TIME_FORMAT">
  35569. <doc xml:space="preserve">A string that can be used in printf-like format strings to display a
  35570. #GstClockTime value in h:m:s format. Use GST_TIME_ARGS() to construct
  35571. the matching arguments.
  35572. Example:
  35573. |[&lt;!-- language="C" --&gt;
  35574. printf("%" GST_TIME_FORMAT "\n", GST_TIME_ARGS(ts));
  35575. ]|</doc>
  35576. <type name="utf8" c:type="gchar*"/>
  35577. </constant>
  35578. <constant name="TOC_REPEAT_COUNT_INFINITE"
  35579. value="-1"
  35580. c:type="GST_TOC_REPEAT_COUNT_INFINITE"
  35581. version="1.4">
  35582. <doc xml:space="preserve">Special value for the repeat_count set in gst_toc_entry_set_loop() or
  35583. returned by gst_toc_entry_set_loop() to indicate infinite looping.</doc>
  35584. <type name="gint" c:type="gint"/>
  35585. </constant>
  35586. <enumeration name="TagFlag"
  35587. glib:type-name="GstTagFlag"
  35588. glib:get-type="gst_tag_flag_get_type"
  35589. c:type="GstTagFlag">
  35590. <doc xml:space="preserve">Extra tag flags used when registering tags.</doc>
  35591. <member name="undefined"
  35592. value="0"
  35593. c:identifier="GST_TAG_FLAG_UNDEFINED"
  35594. glib:nick="undefined">
  35595. <doc xml:space="preserve">undefined flag</doc>
  35596. </member>
  35597. <member name="meta"
  35598. value="1"
  35599. c:identifier="GST_TAG_FLAG_META"
  35600. glib:nick="meta">
  35601. <doc xml:space="preserve">tag is meta data</doc>
  35602. </member>
  35603. <member name="encoded"
  35604. value="2"
  35605. c:identifier="GST_TAG_FLAG_ENCODED"
  35606. glib:nick="encoded">
  35607. <doc xml:space="preserve">tag is encoded</doc>
  35608. </member>
  35609. <member name="decoded"
  35610. value="3"
  35611. c:identifier="GST_TAG_FLAG_DECODED"
  35612. glib:nick="decoded">
  35613. <doc xml:space="preserve">tag is decoded</doc>
  35614. </member>
  35615. <member name="count"
  35616. value="4"
  35617. c:identifier="GST_TAG_FLAG_COUNT"
  35618. glib:nick="count">
  35619. <doc xml:space="preserve">number of tag flags</doc>
  35620. </member>
  35621. </enumeration>
  35622. <callback name="TagForeachFunc" c:type="GstTagForeachFunc">
  35623. <doc xml:space="preserve">A function that will be called in gst_tag_list_foreach(). The function may
  35624. not modify the tag list.</doc>
  35625. <return-value transfer-ownership="none">
  35626. <type name="none" c:type="void"/>
  35627. </return-value>
  35628. <parameters>
  35629. <parameter name="list" transfer-ownership="none">
  35630. <doc xml:space="preserve">the #GstTagList</doc>
  35631. <type name="TagList" c:type="const GstTagList*"/>
  35632. </parameter>
  35633. <parameter name="tag" transfer-ownership="none">
  35634. <doc xml:space="preserve">a name of a tag in @list</doc>
  35635. <type name="utf8" c:type="const gchar*"/>
  35636. </parameter>
  35637. <parameter name="user_data"
  35638. transfer-ownership="none"
  35639. nullable="1"
  35640. allow-none="1"
  35641. closure="2">
  35642. <doc xml:space="preserve">user data</doc>
  35643. <type name="gpointer" c:type="gpointer"/>
  35644. </parameter>
  35645. </parameters>
  35646. </callback>
  35647. <record name="TagList"
  35648. c:type="GstTagList"
  35649. glib:type-name="GstTagList"
  35650. glib:get-type="gst_tag_list_get_type"
  35651. c:symbol-prefix="tag_list">
  35652. <doc xml:space="preserve">List of tags and values used to describe media metadata.
  35653. Strings in structures must be ASCII or UTF-8 encoded. Other encodings are
  35654. not allowed. Strings must not be empty or %NULL.</doc>
  35655. <field name="mini_object" writable="1">
  35656. <doc xml:space="preserve">the parent type</doc>
  35657. <type name="MiniObject" c:type="GstMiniObject"/>
  35658. </field>
  35659. <constructor name="new"
  35660. c:identifier="gst_tag_list_new"
  35661. introspectable="0">
  35662. <doc xml:space="preserve">Creates a new taglist and appends the values for the given tags. It expects
  35663. tag-value pairs like gst_tag_list_add(), and a %NULL terminator after the
  35664. last pair. The type of the values is implicit and is documented in the API
  35665. reference, but can also be queried at runtime with gst_tag_get_type(). It
  35666. is an error to pass a value of a type not matching the tag type into this
  35667. function. The tag list will make copies of any arguments passed
  35668. (e.g. strings, buffers).
  35669. After creation you might also want to set a #GstTagScope on the returned
  35670. taglist to signal if the contained tags are global or stream tags. By
  35671. default stream scope is assumes. See gst_tag_list_set_scope().
  35672. Free-function: gst_tag_list_unref</doc>
  35673. <return-value transfer-ownership="full">
  35674. <doc xml:space="preserve">a new #GstTagList. Free with gst_tag_list_unref()
  35675. when no longer needed.</doc>
  35676. <type name="TagList" c:type="GstTagList*"/>
  35677. </return-value>
  35678. <parameters>
  35679. <parameter name="tag" transfer-ownership="none">
  35680. <doc xml:space="preserve">tag</doc>
  35681. <type name="utf8" c:type="const gchar*"/>
  35682. </parameter>
  35683. <parameter name="..." transfer-ownership="none">
  35684. <doc xml:space="preserve">%NULL-terminated list of values to set</doc>
  35685. <varargs/>
  35686. </parameter>
  35687. </parameters>
  35688. </constructor>
  35689. <constructor name="new_empty" c:identifier="gst_tag_list_new_empty">
  35690. <doc xml:space="preserve">Creates a new empty GstTagList.
  35691. Free-function: gst_tag_list_unref</doc>
  35692. <return-value transfer-ownership="full">
  35693. <doc xml:space="preserve">An empty tag list</doc>
  35694. <type name="TagList" c:type="GstTagList*"/>
  35695. </return-value>
  35696. </constructor>
  35697. <constructor name="new_from_string"
  35698. c:identifier="gst_tag_list_new_from_string">
  35699. <doc xml:space="preserve">Deserializes a tag list.</doc>
  35700. <return-value transfer-ownership="full" nullable="1">
  35701. <doc xml:space="preserve">a new #GstTagList, or %NULL in case of an
  35702. error.</doc>
  35703. <type name="TagList" c:type="GstTagList*"/>
  35704. </return-value>
  35705. <parameters>
  35706. <parameter name="str" transfer-ownership="none">
  35707. <doc xml:space="preserve">a string created with gst_tag_list_to_string()</doc>
  35708. <type name="utf8" c:type="const gchar*"/>
  35709. </parameter>
  35710. </parameters>
  35711. </constructor>
  35712. <constructor name="new_valist"
  35713. c:identifier="gst_tag_list_new_valist"
  35714. introspectable="0">
  35715. <doc xml:space="preserve">Just like gst_tag_list_new(), only that it takes a va_list argument.
  35716. Useful mostly for language bindings.
  35717. Free-function: gst_tag_list_unref</doc>
  35718. <return-value transfer-ownership="full">
  35719. <doc xml:space="preserve">a new #GstTagList. Free with gst_tag_list_unref()
  35720. when no longer needed.</doc>
  35721. <type name="TagList" c:type="GstTagList*"/>
  35722. </return-value>
  35723. <parameters>
  35724. <parameter name="var_args" transfer-ownership="none">
  35725. <doc xml:space="preserve">tag / value pairs to set</doc>
  35726. <type name="va_list" c:type="va_list"/>
  35727. </parameter>
  35728. </parameters>
  35729. </constructor>
  35730. <method name="add" c:identifier="gst_tag_list_add" introspectable="0">
  35731. <doc xml:space="preserve">Sets the values for the given tags using the specified mode.</doc>
  35732. <return-value transfer-ownership="none">
  35733. <type name="none" c:type="void"/>
  35734. </return-value>
  35735. <parameters>
  35736. <instance-parameter name="list" transfer-ownership="none">
  35737. <doc xml:space="preserve">list to set tags in</doc>
  35738. <type name="TagList" c:type="GstTagList*"/>
  35739. </instance-parameter>
  35740. <parameter name="mode" transfer-ownership="none">
  35741. <doc xml:space="preserve">the mode to use</doc>
  35742. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  35743. </parameter>
  35744. <parameter name="tag" transfer-ownership="none">
  35745. <doc xml:space="preserve">tag</doc>
  35746. <type name="utf8" c:type="const gchar*"/>
  35747. </parameter>
  35748. <parameter name="..." transfer-ownership="none">
  35749. <doc xml:space="preserve">%NULL-terminated list of values to set</doc>
  35750. <varargs/>
  35751. </parameter>
  35752. </parameters>
  35753. </method>
  35754. <method name="add_valist"
  35755. c:identifier="gst_tag_list_add_valist"
  35756. introspectable="0">
  35757. <doc xml:space="preserve">Sets the values for the given tags using the specified mode.</doc>
  35758. <return-value transfer-ownership="none">
  35759. <type name="none" c:type="void"/>
  35760. </return-value>
  35761. <parameters>
  35762. <instance-parameter name="list" transfer-ownership="none">
  35763. <doc xml:space="preserve">list to set tags in</doc>
  35764. <type name="TagList" c:type="GstTagList*"/>
  35765. </instance-parameter>
  35766. <parameter name="mode" transfer-ownership="none">
  35767. <doc xml:space="preserve">the mode to use</doc>
  35768. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  35769. </parameter>
  35770. <parameter name="tag" transfer-ownership="none">
  35771. <doc xml:space="preserve">tag</doc>
  35772. <type name="utf8" c:type="const gchar*"/>
  35773. </parameter>
  35774. <parameter name="var_args" transfer-ownership="none">
  35775. <doc xml:space="preserve">tag / value pairs to set</doc>
  35776. <type name="va_list" c:type="va_list"/>
  35777. </parameter>
  35778. </parameters>
  35779. </method>
  35780. <method name="add_valist_values"
  35781. c:identifier="gst_tag_list_add_valist_values"
  35782. introspectable="0">
  35783. <doc xml:space="preserve">Sets the GValues for the given tags using the specified mode.</doc>
  35784. <return-value transfer-ownership="none">
  35785. <type name="none" c:type="void"/>
  35786. </return-value>
  35787. <parameters>
  35788. <instance-parameter name="list" transfer-ownership="none">
  35789. <doc xml:space="preserve">list to set tags in</doc>
  35790. <type name="TagList" c:type="GstTagList*"/>
  35791. </instance-parameter>
  35792. <parameter name="mode" transfer-ownership="none">
  35793. <doc xml:space="preserve">the mode to use</doc>
  35794. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  35795. </parameter>
  35796. <parameter name="tag" transfer-ownership="none">
  35797. <doc xml:space="preserve">tag</doc>
  35798. <type name="utf8" c:type="const gchar*"/>
  35799. </parameter>
  35800. <parameter name="var_args" transfer-ownership="none">
  35801. <doc xml:space="preserve">tag / GValue pairs to set</doc>
  35802. <type name="va_list" c:type="va_list"/>
  35803. </parameter>
  35804. </parameters>
  35805. </method>
  35806. <method name="add_value" c:identifier="gst_tag_list_add_value">
  35807. <doc xml:space="preserve">Sets the GValue for a given tag using the specified mode.</doc>
  35808. <return-value transfer-ownership="none">
  35809. <type name="none" c:type="void"/>
  35810. </return-value>
  35811. <parameters>
  35812. <instance-parameter name="list" transfer-ownership="none">
  35813. <doc xml:space="preserve">list to set tags in</doc>
  35814. <type name="TagList" c:type="GstTagList*"/>
  35815. </instance-parameter>
  35816. <parameter name="mode" transfer-ownership="none">
  35817. <doc xml:space="preserve">the mode to use</doc>
  35818. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  35819. </parameter>
  35820. <parameter name="tag" transfer-ownership="none">
  35821. <doc xml:space="preserve">tag</doc>
  35822. <type name="utf8" c:type="const gchar*"/>
  35823. </parameter>
  35824. <parameter name="value" transfer-ownership="none">
  35825. <doc xml:space="preserve">GValue for this tag</doc>
  35826. <type name="GObject.Value" c:type="const GValue*"/>
  35827. </parameter>
  35828. </parameters>
  35829. </method>
  35830. <method name="add_values"
  35831. c:identifier="gst_tag_list_add_values"
  35832. introspectable="0">
  35833. <doc xml:space="preserve">Sets the GValues for the given tags using the specified mode.</doc>
  35834. <return-value transfer-ownership="none">
  35835. <type name="none" c:type="void"/>
  35836. </return-value>
  35837. <parameters>
  35838. <instance-parameter name="list" transfer-ownership="none">
  35839. <doc xml:space="preserve">list to set tags in</doc>
  35840. <type name="TagList" c:type="GstTagList*"/>
  35841. </instance-parameter>
  35842. <parameter name="mode" transfer-ownership="none">
  35843. <doc xml:space="preserve">the mode to use</doc>
  35844. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  35845. </parameter>
  35846. <parameter name="tag" transfer-ownership="none">
  35847. <doc xml:space="preserve">tag</doc>
  35848. <type name="utf8" c:type="const gchar*"/>
  35849. </parameter>
  35850. <parameter name="..." transfer-ownership="none">
  35851. <doc xml:space="preserve">GValues to set</doc>
  35852. <varargs/>
  35853. </parameter>
  35854. </parameters>
  35855. </method>
  35856. <method name="foreach" c:identifier="gst_tag_list_foreach">
  35857. <doc xml:space="preserve">Calls the given function for each tag inside the tag list. Note that if there
  35858. is no tag, the function won't be called at all.</doc>
  35859. <return-value transfer-ownership="none">
  35860. <type name="none" c:type="void"/>
  35861. </return-value>
  35862. <parameters>
  35863. <instance-parameter name="list" transfer-ownership="none">
  35864. <doc xml:space="preserve">list to iterate over</doc>
  35865. <type name="TagList" c:type="const GstTagList*"/>
  35866. </instance-parameter>
  35867. <parameter name="func"
  35868. transfer-ownership="none"
  35869. scope="call"
  35870. closure="1">
  35871. <doc xml:space="preserve">function to be called for each tag</doc>
  35872. <type name="TagForeachFunc" c:type="GstTagForeachFunc"/>
  35873. </parameter>
  35874. <parameter name="user_data"
  35875. transfer-ownership="none"
  35876. nullable="1"
  35877. allow-none="1">
  35878. <doc xml:space="preserve">user specified data</doc>
  35879. <type name="gpointer" c:type="gpointer"/>
  35880. </parameter>
  35881. </parameters>
  35882. </method>
  35883. <method name="get_boolean" c:identifier="gst_tag_list_get_boolean">
  35884. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  35885. into one if multiple values are associated with the tag.</doc>
  35886. <return-value transfer-ownership="none">
  35887. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  35888. given list.</doc>
  35889. <type name="gboolean" c:type="gboolean"/>
  35890. </return-value>
  35891. <parameters>
  35892. <instance-parameter name="list" transfer-ownership="none">
  35893. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  35894. <type name="TagList" c:type="const GstTagList*"/>
  35895. </instance-parameter>
  35896. <parameter name="tag" transfer-ownership="none">
  35897. <doc xml:space="preserve">tag to read out</doc>
  35898. <type name="utf8" c:type="const gchar*"/>
  35899. </parameter>
  35900. <parameter name="value"
  35901. direction="out"
  35902. caller-allocates="0"
  35903. transfer-ownership="full">
  35904. <doc xml:space="preserve">location for the result</doc>
  35905. <type name="gboolean" c:type="gboolean*"/>
  35906. </parameter>
  35907. </parameters>
  35908. </method>
  35909. <method name="get_boolean_index"
  35910. c:identifier="gst_tag_list_get_boolean_index">
  35911. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  35912. list.</doc>
  35913. <return-value transfer-ownership="none">
  35914. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  35915. given list.</doc>
  35916. <type name="gboolean" c:type="gboolean"/>
  35917. </return-value>
  35918. <parameters>
  35919. <instance-parameter name="list" transfer-ownership="none">
  35920. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  35921. <type name="TagList" c:type="const GstTagList*"/>
  35922. </instance-parameter>
  35923. <parameter name="tag" transfer-ownership="none">
  35924. <doc xml:space="preserve">tag to read out</doc>
  35925. <type name="utf8" c:type="const gchar*"/>
  35926. </parameter>
  35927. <parameter name="index" transfer-ownership="none">
  35928. <doc xml:space="preserve">number of entry to read out</doc>
  35929. <type name="guint" c:type="guint"/>
  35930. </parameter>
  35931. <parameter name="value"
  35932. direction="out"
  35933. caller-allocates="0"
  35934. transfer-ownership="full">
  35935. <doc xml:space="preserve">location for the result</doc>
  35936. <type name="gboolean" c:type="gboolean*"/>
  35937. </parameter>
  35938. </parameters>
  35939. </method>
  35940. <method name="get_date" c:identifier="gst_tag_list_get_date">
  35941. <doc xml:space="preserve">Copies the first date for the given tag in the taglist into the variable
  35942. pointed to by @value. Free the date with g_date_free() when it is no longer
  35943. needed.
  35944. Free-function: g_date_free</doc>
  35945. <return-value transfer-ownership="none">
  35946. <doc xml:space="preserve">%TRUE, if a date was copied, %FALSE if the tag didn't exist in the
  35947. given list or if it was %NULL.</doc>
  35948. <type name="gboolean" c:type="gboolean"/>
  35949. </return-value>
  35950. <parameters>
  35951. <instance-parameter name="list" transfer-ownership="none">
  35952. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  35953. <type name="TagList" c:type="const GstTagList*"/>
  35954. </instance-parameter>
  35955. <parameter name="tag" transfer-ownership="none">
  35956. <doc xml:space="preserve">tag to read out</doc>
  35957. <type name="utf8" c:type="const gchar*"/>
  35958. </parameter>
  35959. <parameter name="value"
  35960. direction="out"
  35961. caller-allocates="0"
  35962. transfer-ownership="full">
  35963. <doc xml:space="preserve">address of a GDate pointer
  35964. variable to store the result into</doc>
  35965. <type name="GLib.Date" c:type="GDate**"/>
  35966. </parameter>
  35967. </parameters>
  35968. </method>
  35969. <method name="get_date_index" c:identifier="gst_tag_list_get_date_index">
  35970. <doc xml:space="preserve">Gets the date that is at the given index for the given tag in the given
  35971. list and copies it into the variable pointed to by @value. Free the date
  35972. with g_date_free() when it is no longer needed.
  35973. Free-function: g_date_free</doc>
  35974. <return-value transfer-ownership="none">
  35975. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  35976. given list or if it was %NULL.</doc>
  35977. <type name="gboolean" c:type="gboolean"/>
  35978. </return-value>
  35979. <parameters>
  35980. <instance-parameter name="list" transfer-ownership="none">
  35981. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  35982. <type name="TagList" c:type="const GstTagList*"/>
  35983. </instance-parameter>
  35984. <parameter name="tag" transfer-ownership="none">
  35985. <doc xml:space="preserve">tag to read out</doc>
  35986. <type name="utf8" c:type="const gchar*"/>
  35987. </parameter>
  35988. <parameter name="index" transfer-ownership="none">
  35989. <doc xml:space="preserve">number of entry to read out</doc>
  35990. <type name="guint" c:type="guint"/>
  35991. </parameter>
  35992. <parameter name="value"
  35993. direction="out"
  35994. caller-allocates="0"
  35995. transfer-ownership="full">
  35996. <doc xml:space="preserve">location for the result</doc>
  35997. <type name="GLib.Date" c:type="GDate**"/>
  35998. </parameter>
  35999. </parameters>
  36000. </method>
  36001. <method name="get_date_time" c:identifier="gst_tag_list_get_date_time">
  36002. <doc xml:space="preserve">Copies the first datetime for the given tag in the taglist into the variable
  36003. pointed to by @value. Unref the date with gst_date_time_unref() when
  36004. it is no longer needed.
  36005. Free-function: gst_date_time_unref</doc>
  36006. <return-value transfer-ownership="none">
  36007. <doc xml:space="preserve">%TRUE, if a datetime was copied, %FALSE if the tag didn't exist in
  36008. the given list or if it was %NULL.</doc>
  36009. <type name="gboolean" c:type="gboolean"/>
  36010. </return-value>
  36011. <parameters>
  36012. <instance-parameter name="list" transfer-ownership="none">
  36013. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36014. <type name="TagList" c:type="const GstTagList*"/>
  36015. </instance-parameter>
  36016. <parameter name="tag" transfer-ownership="none">
  36017. <doc xml:space="preserve">tag to read out</doc>
  36018. <type name="utf8" c:type="const gchar*"/>
  36019. </parameter>
  36020. <parameter name="value"
  36021. direction="out"
  36022. caller-allocates="0"
  36023. transfer-ownership="full">
  36024. <doc xml:space="preserve">address of a #GstDateTime
  36025. pointer variable to store the result into</doc>
  36026. <type name="DateTime" c:type="GstDateTime**"/>
  36027. </parameter>
  36028. </parameters>
  36029. </method>
  36030. <method name="get_date_time_index"
  36031. c:identifier="gst_tag_list_get_date_time_index">
  36032. <doc xml:space="preserve">Gets the datetime that is at the given index for the given tag in the given
  36033. list and copies it into the variable pointed to by @value. Unref the datetime
  36034. with gst_date_time_unref() when it is no longer needed.
  36035. Free-function: gst_date_time_unref</doc>
  36036. <return-value transfer-ownership="none">
  36037. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36038. given list or if it was %NULL.</doc>
  36039. <type name="gboolean" c:type="gboolean"/>
  36040. </return-value>
  36041. <parameters>
  36042. <instance-parameter name="list" transfer-ownership="none">
  36043. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36044. <type name="TagList" c:type="const GstTagList*"/>
  36045. </instance-parameter>
  36046. <parameter name="tag" transfer-ownership="none">
  36047. <doc xml:space="preserve">tag to read out</doc>
  36048. <type name="utf8" c:type="const gchar*"/>
  36049. </parameter>
  36050. <parameter name="index" transfer-ownership="none">
  36051. <doc xml:space="preserve">number of entry to read out</doc>
  36052. <type name="guint" c:type="guint"/>
  36053. </parameter>
  36054. <parameter name="value"
  36055. direction="out"
  36056. caller-allocates="0"
  36057. transfer-ownership="full">
  36058. <doc xml:space="preserve">location for the result</doc>
  36059. <type name="DateTime" c:type="GstDateTime**"/>
  36060. </parameter>
  36061. </parameters>
  36062. </method>
  36063. <method name="get_double" c:identifier="gst_tag_list_get_double">
  36064. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  36065. into one if multiple values are associated with the tag.</doc>
  36066. <return-value transfer-ownership="none">
  36067. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36068. given list.</doc>
  36069. <type name="gboolean" c:type="gboolean"/>
  36070. </return-value>
  36071. <parameters>
  36072. <instance-parameter name="list" transfer-ownership="none">
  36073. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36074. <type name="TagList" c:type="const GstTagList*"/>
  36075. </instance-parameter>
  36076. <parameter name="tag" transfer-ownership="none">
  36077. <doc xml:space="preserve">tag to read out</doc>
  36078. <type name="utf8" c:type="const gchar*"/>
  36079. </parameter>
  36080. <parameter name="value"
  36081. direction="out"
  36082. caller-allocates="0"
  36083. transfer-ownership="full">
  36084. <doc xml:space="preserve">location for the result</doc>
  36085. <type name="gdouble" c:type="gdouble*"/>
  36086. </parameter>
  36087. </parameters>
  36088. </method>
  36089. <method name="get_double_index"
  36090. c:identifier="gst_tag_list_get_double_index">
  36091. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36092. list.</doc>
  36093. <return-value transfer-ownership="none">
  36094. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36095. given list.</doc>
  36096. <type name="gboolean" c:type="gboolean"/>
  36097. </return-value>
  36098. <parameters>
  36099. <instance-parameter name="list" transfer-ownership="none">
  36100. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36101. <type name="TagList" c:type="const GstTagList*"/>
  36102. </instance-parameter>
  36103. <parameter name="tag" transfer-ownership="none">
  36104. <doc xml:space="preserve">tag to read out</doc>
  36105. <type name="utf8" c:type="const gchar*"/>
  36106. </parameter>
  36107. <parameter name="index" transfer-ownership="none">
  36108. <doc xml:space="preserve">number of entry to read out</doc>
  36109. <type name="guint" c:type="guint"/>
  36110. </parameter>
  36111. <parameter name="value"
  36112. direction="out"
  36113. caller-allocates="0"
  36114. transfer-ownership="full">
  36115. <doc xml:space="preserve">location for the result</doc>
  36116. <type name="gdouble" c:type="gdouble*"/>
  36117. </parameter>
  36118. </parameters>
  36119. </method>
  36120. <method name="get_float" c:identifier="gst_tag_list_get_float">
  36121. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  36122. into one if multiple values are associated with the tag.</doc>
  36123. <return-value transfer-ownership="none">
  36124. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36125. given list.</doc>
  36126. <type name="gboolean" c:type="gboolean"/>
  36127. </return-value>
  36128. <parameters>
  36129. <instance-parameter name="list" transfer-ownership="none">
  36130. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36131. <type name="TagList" c:type="const GstTagList*"/>
  36132. </instance-parameter>
  36133. <parameter name="tag" transfer-ownership="none">
  36134. <doc xml:space="preserve">tag to read out</doc>
  36135. <type name="utf8" c:type="const gchar*"/>
  36136. </parameter>
  36137. <parameter name="value"
  36138. direction="out"
  36139. caller-allocates="0"
  36140. transfer-ownership="full">
  36141. <doc xml:space="preserve">location for the result</doc>
  36142. <type name="gfloat" c:type="gfloat*"/>
  36143. </parameter>
  36144. </parameters>
  36145. </method>
  36146. <method name="get_float_index"
  36147. c:identifier="gst_tag_list_get_float_index">
  36148. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36149. list.</doc>
  36150. <return-value transfer-ownership="none">
  36151. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36152. given list.</doc>
  36153. <type name="gboolean" c:type="gboolean"/>
  36154. </return-value>
  36155. <parameters>
  36156. <instance-parameter name="list" transfer-ownership="none">
  36157. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36158. <type name="TagList" c:type="const GstTagList*"/>
  36159. </instance-parameter>
  36160. <parameter name="tag" transfer-ownership="none">
  36161. <doc xml:space="preserve">tag to read out</doc>
  36162. <type name="utf8" c:type="const gchar*"/>
  36163. </parameter>
  36164. <parameter name="index" transfer-ownership="none">
  36165. <doc xml:space="preserve">number of entry to read out</doc>
  36166. <type name="guint" c:type="guint"/>
  36167. </parameter>
  36168. <parameter name="value"
  36169. direction="out"
  36170. caller-allocates="0"
  36171. transfer-ownership="full">
  36172. <doc xml:space="preserve">location for the result</doc>
  36173. <type name="gfloat" c:type="gfloat*"/>
  36174. </parameter>
  36175. </parameters>
  36176. </method>
  36177. <method name="get_int" c:identifier="gst_tag_list_get_int">
  36178. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  36179. into one if multiple values are associated with the tag.</doc>
  36180. <return-value transfer-ownership="none">
  36181. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36182. given list.</doc>
  36183. <type name="gboolean" c:type="gboolean"/>
  36184. </return-value>
  36185. <parameters>
  36186. <instance-parameter name="list" transfer-ownership="none">
  36187. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36188. <type name="TagList" c:type="const GstTagList*"/>
  36189. </instance-parameter>
  36190. <parameter name="tag" transfer-ownership="none">
  36191. <doc xml:space="preserve">tag to read out</doc>
  36192. <type name="utf8" c:type="const gchar*"/>
  36193. </parameter>
  36194. <parameter name="value"
  36195. direction="out"
  36196. caller-allocates="0"
  36197. transfer-ownership="full">
  36198. <doc xml:space="preserve">location for the result</doc>
  36199. <type name="gint" c:type="gint*"/>
  36200. </parameter>
  36201. </parameters>
  36202. </method>
  36203. <method name="get_int64" c:identifier="gst_tag_list_get_int64">
  36204. <return-value transfer-ownership="none">
  36205. <type name="gboolean" c:type="gboolean"/>
  36206. </return-value>
  36207. <parameters>
  36208. <instance-parameter name="list" transfer-ownership="none">
  36209. <type name="TagList" c:type="const GstTagList*"/>
  36210. </instance-parameter>
  36211. <parameter name="tag" transfer-ownership="none">
  36212. <type name="utf8" c:type="const gchar*"/>
  36213. </parameter>
  36214. <parameter name="value" transfer-ownership="none">
  36215. <type name="gint64" c:type="gint64*"/>
  36216. </parameter>
  36217. </parameters>
  36218. </method>
  36219. <method name="get_int64_index"
  36220. c:identifier="gst_tag_list_get_int64_index">
  36221. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36222. list.</doc>
  36223. <return-value transfer-ownership="none">
  36224. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36225. given list.</doc>
  36226. <type name="gboolean" c:type="gboolean"/>
  36227. </return-value>
  36228. <parameters>
  36229. <instance-parameter name="list" transfer-ownership="none">
  36230. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36231. <type name="TagList" c:type="const GstTagList*"/>
  36232. </instance-parameter>
  36233. <parameter name="tag" transfer-ownership="none">
  36234. <doc xml:space="preserve">tag to read out</doc>
  36235. <type name="utf8" c:type="const gchar*"/>
  36236. </parameter>
  36237. <parameter name="index" transfer-ownership="none">
  36238. <doc xml:space="preserve">number of entry to read out</doc>
  36239. <type name="guint" c:type="guint"/>
  36240. </parameter>
  36241. <parameter name="value"
  36242. direction="out"
  36243. caller-allocates="0"
  36244. transfer-ownership="full">
  36245. <doc xml:space="preserve">location for the result</doc>
  36246. <type name="gint64" c:type="gint64*"/>
  36247. </parameter>
  36248. </parameters>
  36249. </method>
  36250. <method name="get_int_index" c:identifier="gst_tag_list_get_int_index">
  36251. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36252. list.</doc>
  36253. <return-value transfer-ownership="none">
  36254. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36255. given list.</doc>
  36256. <type name="gboolean" c:type="gboolean"/>
  36257. </return-value>
  36258. <parameters>
  36259. <instance-parameter name="list" transfer-ownership="none">
  36260. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36261. <type name="TagList" c:type="const GstTagList*"/>
  36262. </instance-parameter>
  36263. <parameter name="tag" transfer-ownership="none">
  36264. <doc xml:space="preserve">tag to read out</doc>
  36265. <type name="utf8" c:type="const gchar*"/>
  36266. </parameter>
  36267. <parameter name="index" transfer-ownership="none">
  36268. <doc xml:space="preserve">number of entry to read out</doc>
  36269. <type name="guint" c:type="guint"/>
  36270. </parameter>
  36271. <parameter name="value"
  36272. direction="out"
  36273. caller-allocates="0"
  36274. transfer-ownership="full">
  36275. <doc xml:space="preserve">location for the result</doc>
  36276. <type name="gint" c:type="gint*"/>
  36277. </parameter>
  36278. </parameters>
  36279. </method>
  36280. <method name="get_pointer" c:identifier="gst_tag_list_get_pointer">
  36281. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  36282. into one if multiple values are associated with the tag.</doc>
  36283. <return-value transfer-ownership="none">
  36284. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36285. given list.</doc>
  36286. <type name="gboolean" c:type="gboolean"/>
  36287. </return-value>
  36288. <parameters>
  36289. <instance-parameter name="list" transfer-ownership="none">
  36290. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36291. <type name="TagList" c:type="const GstTagList*"/>
  36292. </instance-parameter>
  36293. <parameter name="tag" transfer-ownership="none">
  36294. <doc xml:space="preserve">tag to read out</doc>
  36295. <type name="utf8" c:type="const gchar*"/>
  36296. </parameter>
  36297. <parameter name="value"
  36298. direction="out"
  36299. caller-allocates="0"
  36300. transfer-ownership="none"
  36301. nullable="1">
  36302. <doc xml:space="preserve">location for the result</doc>
  36303. <type name="gpointer" c:type="gpointer*"/>
  36304. </parameter>
  36305. </parameters>
  36306. </method>
  36307. <method name="get_pointer_index"
  36308. c:identifier="gst_tag_list_get_pointer_index">
  36309. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36310. list.</doc>
  36311. <return-value transfer-ownership="none">
  36312. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36313. given list.</doc>
  36314. <type name="gboolean" c:type="gboolean"/>
  36315. </return-value>
  36316. <parameters>
  36317. <instance-parameter name="list" transfer-ownership="none">
  36318. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36319. <type name="TagList" c:type="const GstTagList*"/>
  36320. </instance-parameter>
  36321. <parameter name="tag" transfer-ownership="none">
  36322. <doc xml:space="preserve">tag to read out</doc>
  36323. <type name="utf8" c:type="const gchar*"/>
  36324. </parameter>
  36325. <parameter name="index" transfer-ownership="none">
  36326. <doc xml:space="preserve">number of entry to read out</doc>
  36327. <type name="guint" c:type="guint"/>
  36328. </parameter>
  36329. <parameter name="value"
  36330. direction="out"
  36331. caller-allocates="0"
  36332. transfer-ownership="none"
  36333. nullable="1">
  36334. <doc xml:space="preserve">location for the result</doc>
  36335. <type name="gpointer" c:type="gpointer*"/>
  36336. </parameter>
  36337. </parameters>
  36338. </method>
  36339. <method name="get_sample" c:identifier="gst_tag_list_get_sample">
  36340. <doc xml:space="preserve">Copies the first sample for the given tag in the taglist into the variable
  36341. pointed to by @sample. Free the sample with gst_sample_unref() when it is
  36342. no longer needed. You can retrieve the buffer from the sample using
  36343. gst_sample_get_buffer() and the associated caps (if any) with
  36344. gst_sample_get_caps().
  36345. Free-function: gst_sample_unref</doc>
  36346. <return-value transfer-ownership="none">
  36347. <doc xml:space="preserve">%TRUE, if a sample was returned, %FALSE if the tag didn't exist in
  36348. the given list or if it was %NULL.</doc>
  36349. <type name="gboolean" c:type="gboolean"/>
  36350. </return-value>
  36351. <parameters>
  36352. <instance-parameter name="list" transfer-ownership="none">
  36353. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36354. <type name="TagList" c:type="const GstTagList*"/>
  36355. </instance-parameter>
  36356. <parameter name="tag" transfer-ownership="none">
  36357. <doc xml:space="preserve">tag to read out</doc>
  36358. <type name="utf8" c:type="const gchar*"/>
  36359. </parameter>
  36360. <parameter name="sample"
  36361. direction="out"
  36362. caller-allocates="0"
  36363. transfer-ownership="full">
  36364. <doc xml:space="preserve">address of a GstSample
  36365. pointer variable to store the result into</doc>
  36366. <type name="Sample" c:type="GstSample**"/>
  36367. </parameter>
  36368. </parameters>
  36369. </method>
  36370. <method name="get_sample_index"
  36371. c:identifier="gst_tag_list_get_sample_index">
  36372. <doc xml:space="preserve">Gets the sample that is at the given index for the given tag in the given
  36373. list and copies it into the variable pointed to by @sample. Free the sample
  36374. with gst_sample_unref() when it is no longer needed. You can retrieve the
  36375. buffer from the sample using gst_sample_get_buffer() and the associated
  36376. caps (if any) with gst_sample_get_caps().
  36377. Free-function: gst_sample_unref</doc>
  36378. <return-value transfer-ownership="none">
  36379. <doc xml:space="preserve">%TRUE, if a sample was copied, %FALSE if the tag didn't exist in the
  36380. given list or if it was %NULL.</doc>
  36381. <type name="gboolean" c:type="gboolean"/>
  36382. </return-value>
  36383. <parameters>
  36384. <instance-parameter name="list" transfer-ownership="none">
  36385. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36386. <type name="TagList" c:type="const GstTagList*"/>
  36387. </instance-parameter>
  36388. <parameter name="tag" transfer-ownership="none">
  36389. <doc xml:space="preserve">tag to read out</doc>
  36390. <type name="utf8" c:type="const gchar*"/>
  36391. </parameter>
  36392. <parameter name="index" transfer-ownership="none">
  36393. <doc xml:space="preserve">number of entry to read out</doc>
  36394. <type name="guint" c:type="guint"/>
  36395. </parameter>
  36396. <parameter name="sample"
  36397. direction="out"
  36398. caller-allocates="0"
  36399. transfer-ownership="full">
  36400. <doc xml:space="preserve">address of a GstSample
  36401. pointer variable to store the result into</doc>
  36402. <type name="Sample" c:type="GstSample**"/>
  36403. </parameter>
  36404. </parameters>
  36405. </method>
  36406. <method name="get_scope" c:identifier="gst_tag_list_get_scope">
  36407. <doc xml:space="preserve">Gets the scope of @list.</doc>
  36408. <return-value transfer-ownership="none">
  36409. <doc xml:space="preserve">The scope of @list</doc>
  36410. <type name="TagScope" c:type="GstTagScope"/>
  36411. </return-value>
  36412. <parameters>
  36413. <instance-parameter name="list" transfer-ownership="none">
  36414. <doc xml:space="preserve">a #GstTagList</doc>
  36415. <type name="TagList" c:type="const GstTagList*"/>
  36416. </instance-parameter>
  36417. </parameters>
  36418. </method>
  36419. <method name="get_string" c:identifier="gst_tag_list_get_string">
  36420. <doc xml:space="preserve">Copies the contents for the given tag into the value, possibly merging
  36421. multiple values into one if multiple values are associated with the tag.
  36422. Use gst_tag_list_get_string_index (list, tag, 0, value) if you want
  36423. to retrieve the first string associated with this tag unmodified.
  36424. The resulting string in @value will be in UTF-8 encoding and should be
  36425. freed by the caller using g_free when no longer needed. The
  36426. returned string is also guaranteed to be non-%NULL and non-empty.
  36427. Free-function: g_free</doc>
  36428. <return-value transfer-ownership="none">
  36429. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36430. given list.</doc>
  36431. <type name="gboolean" c:type="gboolean"/>
  36432. </return-value>
  36433. <parameters>
  36434. <instance-parameter name="list" transfer-ownership="none">
  36435. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36436. <type name="TagList" c:type="const GstTagList*"/>
  36437. </instance-parameter>
  36438. <parameter name="tag" transfer-ownership="none">
  36439. <doc xml:space="preserve">tag to read out</doc>
  36440. <type name="utf8" c:type="const gchar*"/>
  36441. </parameter>
  36442. <parameter name="value"
  36443. direction="out"
  36444. caller-allocates="0"
  36445. transfer-ownership="full">
  36446. <doc xml:space="preserve">location for the result</doc>
  36447. <type name="utf8" c:type="gchar**"/>
  36448. </parameter>
  36449. </parameters>
  36450. </method>
  36451. <method name="get_string_index"
  36452. c:identifier="gst_tag_list_get_string_index">
  36453. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36454. list.
  36455. The resulting string in @value will be in UTF-8 encoding and should be
  36456. freed by the caller using g_free when no longer needed. The
  36457. returned string is also guaranteed to be non-%NULL and non-empty.
  36458. Free-function: g_free</doc>
  36459. <return-value transfer-ownership="none">
  36460. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36461. given list.</doc>
  36462. <type name="gboolean" c:type="gboolean"/>
  36463. </return-value>
  36464. <parameters>
  36465. <instance-parameter name="list" transfer-ownership="none">
  36466. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36467. <type name="TagList" c:type="const GstTagList*"/>
  36468. </instance-parameter>
  36469. <parameter name="tag" transfer-ownership="none">
  36470. <doc xml:space="preserve">tag to read out</doc>
  36471. <type name="utf8" c:type="const gchar*"/>
  36472. </parameter>
  36473. <parameter name="index" transfer-ownership="none">
  36474. <doc xml:space="preserve">number of entry to read out</doc>
  36475. <type name="guint" c:type="guint"/>
  36476. </parameter>
  36477. <parameter name="value"
  36478. direction="out"
  36479. caller-allocates="0"
  36480. transfer-ownership="full">
  36481. <doc xml:space="preserve">location for the result</doc>
  36482. <type name="utf8" c:type="gchar**"/>
  36483. </parameter>
  36484. </parameters>
  36485. </method>
  36486. <method name="get_tag_size" c:identifier="gst_tag_list_get_tag_size">
  36487. <doc xml:space="preserve">Checks how many value are stored in this tag list for the given tag.</doc>
  36488. <return-value transfer-ownership="none">
  36489. <doc xml:space="preserve">The number of tags stored</doc>
  36490. <type name="guint" c:type="guint"/>
  36491. </return-value>
  36492. <parameters>
  36493. <instance-parameter name="list" transfer-ownership="none">
  36494. <doc xml:space="preserve">a taglist</doc>
  36495. <type name="TagList" c:type="const GstTagList*"/>
  36496. </instance-parameter>
  36497. <parameter name="tag" transfer-ownership="none">
  36498. <doc xml:space="preserve">the tag to query</doc>
  36499. <type name="utf8" c:type="const gchar*"/>
  36500. </parameter>
  36501. </parameters>
  36502. </method>
  36503. <method name="get_uint" c:identifier="gst_tag_list_get_uint">
  36504. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  36505. into one if multiple values are associated with the tag.</doc>
  36506. <return-value transfer-ownership="none">
  36507. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36508. given list.</doc>
  36509. <type name="gboolean" c:type="gboolean"/>
  36510. </return-value>
  36511. <parameters>
  36512. <instance-parameter name="list" transfer-ownership="none">
  36513. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36514. <type name="TagList" c:type="const GstTagList*"/>
  36515. </instance-parameter>
  36516. <parameter name="tag" transfer-ownership="none">
  36517. <doc xml:space="preserve">tag to read out</doc>
  36518. <type name="utf8" c:type="const gchar*"/>
  36519. </parameter>
  36520. <parameter name="value"
  36521. direction="out"
  36522. caller-allocates="0"
  36523. transfer-ownership="full">
  36524. <doc xml:space="preserve">location for the result</doc>
  36525. <type name="guint" c:type="guint*"/>
  36526. </parameter>
  36527. </parameters>
  36528. </method>
  36529. <method name="get_uint64" c:identifier="gst_tag_list_get_uint64">
  36530. <doc xml:space="preserve">Copies the contents for the given tag into the value, merging multiple values
  36531. into one if multiple values are associated with the tag.</doc>
  36532. <return-value transfer-ownership="none">
  36533. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36534. given list.</doc>
  36535. <type name="gboolean" c:type="gboolean"/>
  36536. </return-value>
  36537. <parameters>
  36538. <instance-parameter name="list" transfer-ownership="none">
  36539. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36540. <type name="TagList" c:type="const GstTagList*"/>
  36541. </instance-parameter>
  36542. <parameter name="tag" transfer-ownership="none">
  36543. <doc xml:space="preserve">tag to read out</doc>
  36544. <type name="utf8" c:type="const gchar*"/>
  36545. </parameter>
  36546. <parameter name="value"
  36547. direction="out"
  36548. caller-allocates="0"
  36549. transfer-ownership="full">
  36550. <doc xml:space="preserve">location for the result</doc>
  36551. <type name="guint64" c:type="guint64*"/>
  36552. </parameter>
  36553. </parameters>
  36554. </method>
  36555. <method name="get_uint64_index"
  36556. c:identifier="gst_tag_list_get_uint64_index">
  36557. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36558. list.</doc>
  36559. <return-value transfer-ownership="none">
  36560. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36561. given list.</doc>
  36562. <type name="gboolean" c:type="gboolean"/>
  36563. </return-value>
  36564. <parameters>
  36565. <instance-parameter name="list" transfer-ownership="none">
  36566. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36567. <type name="TagList" c:type="const GstTagList*"/>
  36568. </instance-parameter>
  36569. <parameter name="tag" transfer-ownership="none">
  36570. <doc xml:space="preserve">tag to read out</doc>
  36571. <type name="utf8" c:type="const gchar*"/>
  36572. </parameter>
  36573. <parameter name="index" transfer-ownership="none">
  36574. <doc xml:space="preserve">number of entry to read out</doc>
  36575. <type name="guint" c:type="guint"/>
  36576. </parameter>
  36577. <parameter name="value"
  36578. direction="out"
  36579. caller-allocates="0"
  36580. transfer-ownership="full">
  36581. <doc xml:space="preserve">location for the result</doc>
  36582. <type name="guint64" c:type="guint64*"/>
  36583. </parameter>
  36584. </parameters>
  36585. </method>
  36586. <method name="get_uint_index" c:identifier="gst_tag_list_get_uint_index">
  36587. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36588. list.</doc>
  36589. <return-value transfer-ownership="none">
  36590. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36591. given list.</doc>
  36592. <type name="gboolean" c:type="gboolean"/>
  36593. </return-value>
  36594. <parameters>
  36595. <instance-parameter name="list" transfer-ownership="none">
  36596. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36597. <type name="TagList" c:type="const GstTagList*"/>
  36598. </instance-parameter>
  36599. <parameter name="tag" transfer-ownership="none">
  36600. <doc xml:space="preserve">tag to read out</doc>
  36601. <type name="utf8" c:type="const gchar*"/>
  36602. </parameter>
  36603. <parameter name="index" transfer-ownership="none">
  36604. <doc xml:space="preserve">number of entry to read out</doc>
  36605. <type name="guint" c:type="guint"/>
  36606. </parameter>
  36607. <parameter name="value"
  36608. direction="out"
  36609. caller-allocates="0"
  36610. transfer-ownership="full">
  36611. <doc xml:space="preserve">location for the result</doc>
  36612. <type name="guint" c:type="guint*"/>
  36613. </parameter>
  36614. </parameters>
  36615. </method>
  36616. <method name="get_value_index"
  36617. c:identifier="gst_tag_list_get_value_index">
  36618. <doc xml:space="preserve">Gets the value that is at the given index for the given tag in the given
  36619. list.</doc>
  36620. <return-value transfer-ownership="none" nullable="1">
  36621. <doc xml:space="preserve">The GValue for the specified
  36622. entry or %NULL if the tag wasn't available or the tag
  36623. doesn't have as many entries</doc>
  36624. <type name="GObject.Value" c:type="const GValue*"/>
  36625. </return-value>
  36626. <parameters>
  36627. <instance-parameter name="list" transfer-ownership="none">
  36628. <doc xml:space="preserve">a #GstTagList</doc>
  36629. <type name="TagList" c:type="const GstTagList*"/>
  36630. </instance-parameter>
  36631. <parameter name="tag" transfer-ownership="none">
  36632. <doc xml:space="preserve">tag to read out</doc>
  36633. <type name="utf8" c:type="const gchar*"/>
  36634. </parameter>
  36635. <parameter name="index" transfer-ownership="none">
  36636. <doc xml:space="preserve">number of entry to read out</doc>
  36637. <type name="guint" c:type="guint"/>
  36638. </parameter>
  36639. </parameters>
  36640. </method>
  36641. <method name="insert" c:identifier="gst_tag_list_insert">
  36642. <doc xml:space="preserve">Inserts the tags of the @from list into the first list using the given mode.</doc>
  36643. <return-value transfer-ownership="none">
  36644. <type name="none" c:type="void"/>
  36645. </return-value>
  36646. <parameters>
  36647. <instance-parameter name="into" transfer-ownership="none">
  36648. <doc xml:space="preserve">list to merge into</doc>
  36649. <type name="TagList" c:type="GstTagList*"/>
  36650. </instance-parameter>
  36651. <parameter name="from" transfer-ownership="none">
  36652. <doc xml:space="preserve">list to merge from</doc>
  36653. <type name="TagList" c:type="const GstTagList*"/>
  36654. </parameter>
  36655. <parameter name="mode" transfer-ownership="none">
  36656. <doc xml:space="preserve">the mode to use</doc>
  36657. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  36658. </parameter>
  36659. </parameters>
  36660. </method>
  36661. <method name="is_empty" c:identifier="gst_tag_list_is_empty">
  36662. <doc xml:space="preserve">Checks if the given taglist is empty.</doc>
  36663. <return-value transfer-ownership="none">
  36664. <doc xml:space="preserve">%TRUE if the taglist is empty, otherwise %FALSE.</doc>
  36665. <type name="gboolean" c:type="gboolean"/>
  36666. </return-value>
  36667. <parameters>
  36668. <instance-parameter name="list" transfer-ownership="none">
  36669. <doc xml:space="preserve">A #GstTagList.</doc>
  36670. <type name="TagList" c:type="const GstTagList*"/>
  36671. </instance-parameter>
  36672. </parameters>
  36673. </method>
  36674. <method name="is_equal" c:identifier="gst_tag_list_is_equal">
  36675. <doc xml:space="preserve">Checks if the two given taglists are equal.</doc>
  36676. <return-value transfer-ownership="none">
  36677. <doc xml:space="preserve">%TRUE if the taglists are equal, otherwise %FALSE</doc>
  36678. <type name="gboolean" c:type="gboolean"/>
  36679. </return-value>
  36680. <parameters>
  36681. <instance-parameter name="list1" transfer-ownership="none">
  36682. <doc xml:space="preserve">a #GstTagList.</doc>
  36683. <type name="TagList" c:type="const GstTagList*"/>
  36684. </instance-parameter>
  36685. <parameter name="list2" transfer-ownership="none">
  36686. <doc xml:space="preserve">a #GstTagList.</doc>
  36687. <type name="TagList" c:type="const GstTagList*"/>
  36688. </parameter>
  36689. </parameters>
  36690. </method>
  36691. <method name="merge" c:identifier="gst_tag_list_merge">
  36692. <doc xml:space="preserve">Merges the two given lists into a new list. If one of the lists is %NULL, a
  36693. copy of the other is returned. If both lists are %NULL, %NULL is returned.
  36694. Free-function: gst_tag_list_unref</doc>
  36695. <return-value transfer-ownership="full" nullable="1">
  36696. <doc xml:space="preserve">the new list</doc>
  36697. <type name="TagList" c:type="GstTagList*"/>
  36698. </return-value>
  36699. <parameters>
  36700. <instance-parameter name="list1"
  36701. transfer-ownership="none"
  36702. nullable="1"
  36703. allow-none="1">
  36704. <doc xml:space="preserve">first list to merge</doc>
  36705. <type name="TagList" c:type="const GstTagList*"/>
  36706. </instance-parameter>
  36707. <parameter name="list2"
  36708. transfer-ownership="none"
  36709. nullable="1"
  36710. allow-none="1">
  36711. <doc xml:space="preserve">second list to merge</doc>
  36712. <type name="TagList" c:type="const GstTagList*"/>
  36713. </parameter>
  36714. <parameter name="mode" transfer-ownership="none">
  36715. <doc xml:space="preserve">the mode to use</doc>
  36716. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  36717. </parameter>
  36718. </parameters>
  36719. </method>
  36720. <method name="n_tags" c:identifier="gst_tag_list_n_tags">
  36721. <doc xml:space="preserve">Get the number of tags in @list.</doc>
  36722. <return-value transfer-ownership="none">
  36723. <doc xml:space="preserve">The number of tags in @list.</doc>
  36724. <type name="gint" c:type="gint"/>
  36725. </return-value>
  36726. <parameters>
  36727. <instance-parameter name="list" transfer-ownership="none">
  36728. <doc xml:space="preserve">A #GstTagList.</doc>
  36729. <type name="TagList" c:type="const GstTagList*"/>
  36730. </instance-parameter>
  36731. </parameters>
  36732. </method>
  36733. <method name="nth_tag_name" c:identifier="gst_tag_list_nth_tag_name">
  36734. <doc xml:space="preserve">Get the name of the tag in @list at @index.</doc>
  36735. <return-value transfer-ownership="none">
  36736. <doc xml:space="preserve">The name of the tag at @index.</doc>
  36737. <type name="utf8" c:type="const gchar*"/>
  36738. </return-value>
  36739. <parameters>
  36740. <instance-parameter name="list" transfer-ownership="none">
  36741. <doc xml:space="preserve">A #GstTagList.</doc>
  36742. <type name="TagList" c:type="const GstTagList*"/>
  36743. </instance-parameter>
  36744. <parameter name="index" transfer-ownership="none">
  36745. <doc xml:space="preserve">the index</doc>
  36746. <type name="guint" c:type="guint"/>
  36747. </parameter>
  36748. </parameters>
  36749. </method>
  36750. <method name="peek_string_index"
  36751. c:identifier="gst_tag_list_peek_string_index">
  36752. <doc xml:space="preserve">Peeks at the value that is at the given index for the given tag in the given
  36753. list.
  36754. The resulting string in @value will be in UTF-8 encoding and doesn't need
  36755. to be freed by the caller. The returned string is also guaranteed to
  36756. be non-%NULL and non-empty.</doc>
  36757. <return-value transfer-ownership="none">
  36758. <doc xml:space="preserve">%TRUE, if a value was set, %FALSE if the tag didn't exist in the
  36759. given list.</doc>
  36760. <type name="gboolean" c:type="gboolean"/>
  36761. </return-value>
  36762. <parameters>
  36763. <instance-parameter name="list" transfer-ownership="none">
  36764. <doc xml:space="preserve">a #GstTagList to get the tag from</doc>
  36765. <type name="TagList" c:type="const GstTagList*"/>
  36766. </instance-parameter>
  36767. <parameter name="tag" transfer-ownership="none">
  36768. <doc xml:space="preserve">tag to read out</doc>
  36769. <type name="utf8" c:type="const gchar*"/>
  36770. </parameter>
  36771. <parameter name="index" transfer-ownership="none">
  36772. <doc xml:space="preserve">number of entry to read out</doc>
  36773. <type name="guint" c:type="guint"/>
  36774. </parameter>
  36775. <parameter name="value"
  36776. direction="out"
  36777. caller-allocates="0"
  36778. transfer-ownership="none">
  36779. <doc xml:space="preserve">location for the result</doc>
  36780. <type name="utf8" c:type="const gchar**"/>
  36781. </parameter>
  36782. </parameters>
  36783. </method>
  36784. <method name="remove_tag" c:identifier="gst_tag_list_remove_tag">
  36785. <doc xml:space="preserve">Removes the given tag from the taglist.</doc>
  36786. <return-value transfer-ownership="none">
  36787. <type name="none" c:type="void"/>
  36788. </return-value>
  36789. <parameters>
  36790. <instance-parameter name="list" transfer-ownership="none">
  36791. <doc xml:space="preserve">list to remove tag from</doc>
  36792. <type name="TagList" c:type="GstTagList*"/>
  36793. </instance-parameter>
  36794. <parameter name="tag" transfer-ownership="none">
  36795. <doc xml:space="preserve">tag to remove</doc>
  36796. <type name="utf8" c:type="const gchar*"/>
  36797. </parameter>
  36798. </parameters>
  36799. </method>
  36800. <method name="set_scope" c:identifier="gst_tag_list_set_scope">
  36801. <doc xml:space="preserve">Sets the scope of @list to @scope. By default the scope
  36802. of a taglist is stream scope.</doc>
  36803. <return-value transfer-ownership="none">
  36804. <type name="none" c:type="void"/>
  36805. </return-value>
  36806. <parameters>
  36807. <instance-parameter name="list" transfer-ownership="none">
  36808. <doc xml:space="preserve">a #GstTagList</doc>
  36809. <type name="TagList" c:type="GstTagList*"/>
  36810. </instance-parameter>
  36811. <parameter name="scope" transfer-ownership="none">
  36812. <doc xml:space="preserve">new scope for @list</doc>
  36813. <type name="TagScope" c:type="GstTagScope"/>
  36814. </parameter>
  36815. </parameters>
  36816. </method>
  36817. <method name="to_string" c:identifier="gst_tag_list_to_string">
  36818. <doc xml:space="preserve">Serializes a tag list to a string.</doc>
  36819. <return-value transfer-ownership="full" nullable="1">
  36820. <doc xml:space="preserve">a newly-allocated string, or %NULL in case of
  36821. an error. The string must be freed with g_free() when no longer
  36822. needed.</doc>
  36823. <type name="utf8" c:type="gchar*"/>
  36824. </return-value>
  36825. <parameters>
  36826. <instance-parameter name="list" transfer-ownership="none">
  36827. <doc xml:space="preserve">a #GstTagList</doc>
  36828. <type name="TagList" c:type="const GstTagList*"/>
  36829. </instance-parameter>
  36830. </parameters>
  36831. </method>
  36832. <function name="copy_value" c:identifier="gst_tag_list_copy_value">
  36833. <doc xml:space="preserve">Copies the contents for the given tag into the value,
  36834. merging multiple values into one if multiple values are associated
  36835. with the tag.
  36836. You must g_value_unset() the value after use.</doc>
  36837. <return-value transfer-ownership="none">
  36838. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  36839. given list.</doc>
  36840. <type name="gboolean" c:type="gboolean"/>
  36841. </return-value>
  36842. <parameters>
  36843. <parameter name="dest"
  36844. direction="out"
  36845. caller-allocates="1"
  36846. transfer-ownership="none">
  36847. <doc xml:space="preserve">uninitialized #GValue to copy into</doc>
  36848. <type name="GObject.Value" c:type="GValue*"/>
  36849. </parameter>
  36850. <parameter name="list" transfer-ownership="none">
  36851. <doc xml:space="preserve">list to get the tag from</doc>
  36852. <type name="TagList" c:type="const GstTagList*"/>
  36853. </parameter>
  36854. <parameter name="tag" transfer-ownership="none">
  36855. <doc xml:space="preserve">tag to read out</doc>
  36856. <type name="utf8" c:type="const gchar*"/>
  36857. </parameter>
  36858. </parameters>
  36859. </function>
  36860. </record>
  36861. <callback name="TagMergeFunc" c:type="GstTagMergeFunc">
  36862. <doc xml:space="preserve">A function for merging multiple values of a tag used when registering
  36863. tags.</doc>
  36864. <return-value transfer-ownership="none">
  36865. <type name="none" c:type="void"/>
  36866. </return-value>
  36867. <parameters>
  36868. <parameter name="dest" transfer-ownership="none">
  36869. <doc xml:space="preserve">the destination #GValue</doc>
  36870. <type name="GObject.Value" c:type="GValue*"/>
  36871. </parameter>
  36872. <parameter name="src" transfer-ownership="none">
  36873. <doc xml:space="preserve">the source #GValue</doc>
  36874. <type name="GObject.Value" c:type="const GValue*"/>
  36875. </parameter>
  36876. </parameters>
  36877. </callback>
  36878. <enumeration name="TagMergeMode"
  36879. glib:type-name="GstTagMergeMode"
  36880. glib:get-type="gst_tag_merge_mode_get_type"
  36881. c:type="GstTagMergeMode">
  36882. <doc xml:space="preserve">The different tag merging modes are basically replace, overwrite and append,
  36883. but they can be seen from two directions. Given two taglists: (A) the tags
  36884. already in the element and (B) the ones that are supplied to the element (
  36885. e.g. via gst_tag_setter_merge_tags() / gst_tag_setter_add_tags() or a
  36886. %GST_EVENT_TAG), how are these tags merged?
  36887. In the table below this is shown for the cases that a tag exists in the list
  36888. (A) or does not exists (!A) and combinations thereof.
  36889. &lt;table frame="all" colsep="1" rowsep="1"&gt;
  36890. &lt;title&gt;merge mode&lt;/title&gt;
  36891. &lt;tgroup cols='5' align='left'&gt;
  36892. &lt;thead&gt;
  36893. &lt;row&gt;
  36894. &lt;entry&gt;merge mode&lt;/entry&gt;
  36895. &lt;entry&gt;A + B&lt;/entry&gt;
  36896. &lt;entry&gt;A + !B&lt;/entry&gt;
  36897. &lt;entry&gt;!A + B&lt;/entry&gt;
  36898. &lt;entry&gt;!A + !B&lt;/entry&gt;
  36899. &lt;/row&gt;
  36900. &lt;/thead&gt;
  36901. &lt;tbody&gt;
  36902. &lt;row&gt;
  36903. &lt;entry&gt;REPLACE_ALL&lt;/entry&gt;
  36904. &lt;entry&gt;B&lt;/entry&gt;
  36905. &lt;entry&gt;-&lt;/entry&gt;
  36906. &lt;entry&gt;B&lt;/entry&gt;
  36907. &lt;entry&gt;-&lt;/entry&gt;
  36908. &lt;/row&gt;
  36909. &lt;row&gt;
  36910. &lt;entry&gt;REPLACE&lt;/entry&gt;
  36911. &lt;entry&gt;B&lt;/entry&gt;
  36912. &lt;entry&gt;A&lt;/entry&gt;
  36913. &lt;entry&gt;B&lt;/entry&gt;
  36914. &lt;entry&gt;-&lt;/entry&gt;
  36915. &lt;/row&gt;
  36916. &lt;row&gt;
  36917. &lt;entry&gt;APPEND&lt;/entry&gt;
  36918. &lt;entry&gt;A, B&lt;/entry&gt;
  36919. &lt;entry&gt;A&lt;/entry&gt;
  36920. &lt;entry&gt;B&lt;/entry&gt;
  36921. &lt;entry&gt;-&lt;/entry&gt;
  36922. &lt;/row&gt;
  36923. &lt;row&gt;
  36924. &lt;entry&gt;PREPEND&lt;/entry&gt;
  36925. &lt;entry&gt;B, A&lt;/entry&gt;
  36926. &lt;entry&gt;A&lt;/entry&gt;
  36927. &lt;entry&gt;B&lt;/entry&gt;
  36928. &lt;entry&gt;-&lt;/entry&gt;
  36929. &lt;/row&gt;
  36930. &lt;row&gt;
  36931. &lt;entry&gt;KEEP&lt;/entry&gt;
  36932. &lt;entry&gt;A&lt;/entry&gt;
  36933. &lt;entry&gt;A&lt;/entry&gt;
  36934. &lt;entry&gt;B&lt;/entry&gt;
  36935. &lt;entry&gt;-&lt;/entry&gt;
  36936. &lt;/row&gt;
  36937. &lt;row&gt;
  36938. &lt;entry&gt;KEEP_ALL&lt;/entry&gt;
  36939. &lt;entry&gt;A&lt;/entry&gt;
  36940. &lt;entry&gt;A&lt;/entry&gt;
  36941. &lt;entry&gt;-&lt;/entry&gt;
  36942. &lt;entry&gt;-&lt;/entry&gt;
  36943. &lt;/row&gt;
  36944. &lt;/tbody&gt;
  36945. &lt;/tgroup&gt;
  36946. &lt;/table&gt;</doc>
  36947. <member name="undefined"
  36948. value="0"
  36949. c:identifier="GST_TAG_MERGE_UNDEFINED"
  36950. glib:nick="undefined">
  36951. <doc xml:space="preserve">undefined merge mode</doc>
  36952. </member>
  36953. <member name="replace_all"
  36954. value="1"
  36955. c:identifier="GST_TAG_MERGE_REPLACE_ALL"
  36956. glib:nick="replace-all">
  36957. <doc xml:space="preserve">replace all tags (clear list and append)</doc>
  36958. </member>
  36959. <member name="replace"
  36960. value="2"
  36961. c:identifier="GST_TAG_MERGE_REPLACE"
  36962. glib:nick="replace">
  36963. <doc xml:space="preserve">replace tags</doc>
  36964. </member>
  36965. <member name="append"
  36966. value="3"
  36967. c:identifier="GST_TAG_MERGE_APPEND"
  36968. glib:nick="append">
  36969. <doc xml:space="preserve">append tags</doc>
  36970. </member>
  36971. <member name="prepend"
  36972. value="4"
  36973. c:identifier="GST_TAG_MERGE_PREPEND"
  36974. glib:nick="prepend">
  36975. <doc xml:space="preserve">prepend tags</doc>
  36976. </member>
  36977. <member name="keep"
  36978. value="5"
  36979. c:identifier="GST_TAG_MERGE_KEEP"
  36980. glib:nick="keep">
  36981. <doc xml:space="preserve">keep existing tags</doc>
  36982. </member>
  36983. <member name="keep_all"
  36984. value="6"
  36985. c:identifier="GST_TAG_MERGE_KEEP_ALL"
  36986. glib:nick="keep-all">
  36987. <doc xml:space="preserve">keep all existing tags</doc>
  36988. </member>
  36989. <member name="count"
  36990. value="7"
  36991. c:identifier="GST_TAG_MERGE_COUNT"
  36992. glib:nick="count">
  36993. <doc xml:space="preserve">the number of merge modes</doc>
  36994. </member>
  36995. </enumeration>
  36996. <enumeration name="TagScope"
  36997. glib:type-name="GstTagScope"
  36998. glib:get-type="gst_tag_scope_get_type"
  36999. c:type="GstTagScope">
  37000. <doc xml:space="preserve">GstTagScope specifies if a taglist applies to the complete
  37001. medium or only to one single stream.</doc>
  37002. <member name="stream"
  37003. value="0"
  37004. c:identifier="GST_TAG_SCOPE_STREAM"
  37005. glib:nick="stream">
  37006. <doc xml:space="preserve">tags specific to this single stream</doc>
  37007. </member>
  37008. <member name="global"
  37009. value="1"
  37010. c:identifier="GST_TAG_SCOPE_GLOBAL"
  37011. glib:nick="global">
  37012. <doc xml:space="preserve">global tags for the complete medium</doc>
  37013. </member>
  37014. </enumeration>
  37015. <interface name="TagSetter"
  37016. c:symbol-prefix="tag_setter"
  37017. c:type="GstTagSetter"
  37018. glib:type-name="GstTagSetter"
  37019. glib:get-type="gst_tag_setter_get_type"
  37020. glib:type-struct="TagSetterInterface">
  37021. <doc xml:space="preserve">Element interface that allows setting of media metadata.
  37022. Elements that support changing a stream's metadata will implement this
  37023. interface. Examples of such elements are 'vorbisenc', 'theoraenc' and
  37024. 'id3v2mux'.
  37025. If you just want to retrieve metadata in your application then all you
  37026. need to do is watch for tag messages on your pipeline's bus. This
  37027. interface is only for setting metadata, not for extracting it. To set tags
  37028. from the application, find tagsetter elements and set tags using e.g.
  37029. gst_tag_setter_merge_tags() or gst_tag_setter_add_tags(). Also consider
  37030. setting the #GstTagMergeMode that is used for tag events that arrive at the
  37031. tagsetter element (default mode is to keep existing tags).
  37032. The application should do that before the element goes to %GST_STATE_PAUSED.
  37033. Elements implementing the #GstTagSetter interface often have to merge
  37034. any tags received from upstream and the tags set by the application via
  37035. the interface. This can be done like this:
  37036. |[&lt;!-- language="C" --&gt;
  37037. GstTagMergeMode merge_mode;
  37038. const GstTagList *application_tags;
  37039. const GstTagList *event_tags;
  37040. GstTagSetter *tagsetter;
  37041. GstTagList *result;
  37042. tagsetter = GST_TAG_SETTER (element);
  37043. merge_mode = gst_tag_setter_get_tag_merge_mode (tagsetter);
  37044. application_tags = gst_tag_setter_get_tag_list (tagsetter);
  37045. event_tags = (const GstTagList *) element-&gt;event_tags;
  37046. GST_LOG_OBJECT (tagsetter, "merging tags, merge mode = %d", merge_mode);
  37047. GST_LOG_OBJECT (tagsetter, "event tags: %" GST_PTR_FORMAT, event_tags);
  37048. GST_LOG_OBJECT (tagsetter, "set tags: %" GST_PTR_FORMAT, application_tags);
  37049. result = gst_tag_list_merge (application_tags, event_tags, merge_mode);
  37050. GST_LOG_OBJECT (tagsetter, "final tags: %" GST_PTR_FORMAT, result);
  37051. ]|</doc>
  37052. <prerequisite name="Element"/>
  37053. <method name="add_tag_valist"
  37054. c:identifier="gst_tag_setter_add_tag_valist"
  37055. introspectable="0">
  37056. <doc xml:space="preserve">Adds the given tag / value pairs on the setter using the given merge mode.
  37057. The list must be terminated with %NULL.</doc>
  37058. <return-value transfer-ownership="none">
  37059. <type name="none" c:type="void"/>
  37060. </return-value>
  37061. <parameters>
  37062. <instance-parameter name="setter" transfer-ownership="none">
  37063. <doc xml:space="preserve">a #GstTagSetter</doc>
  37064. <type name="TagSetter" c:type="GstTagSetter*"/>
  37065. </instance-parameter>
  37066. <parameter name="mode" transfer-ownership="none">
  37067. <doc xml:space="preserve">the mode to use</doc>
  37068. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37069. </parameter>
  37070. <parameter name="tag" transfer-ownership="none">
  37071. <doc xml:space="preserve">tag to set</doc>
  37072. <type name="utf8" c:type="const gchar*"/>
  37073. </parameter>
  37074. <parameter name="var_args" transfer-ownership="none">
  37075. <doc xml:space="preserve">tag / value pairs to set</doc>
  37076. <type name="va_list" c:type="va_list"/>
  37077. </parameter>
  37078. </parameters>
  37079. </method>
  37080. <method name="add_tag_valist_values"
  37081. c:identifier="gst_tag_setter_add_tag_valist_values"
  37082. introspectable="0">
  37083. <doc xml:space="preserve">Adds the given tag / GValue pairs on the setter using the given merge mode.
  37084. The list must be terminated with %NULL.</doc>
  37085. <return-value transfer-ownership="none">
  37086. <type name="none" c:type="void"/>
  37087. </return-value>
  37088. <parameters>
  37089. <instance-parameter name="setter" transfer-ownership="none">
  37090. <doc xml:space="preserve">a #GstTagSetter</doc>
  37091. <type name="TagSetter" c:type="GstTagSetter*"/>
  37092. </instance-parameter>
  37093. <parameter name="mode" transfer-ownership="none">
  37094. <doc xml:space="preserve">the mode to use</doc>
  37095. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37096. </parameter>
  37097. <parameter name="tag" transfer-ownership="none">
  37098. <doc xml:space="preserve">tag to set</doc>
  37099. <type name="utf8" c:type="const gchar*"/>
  37100. </parameter>
  37101. <parameter name="var_args" transfer-ownership="none">
  37102. <doc xml:space="preserve">tag / GValue pairs to set</doc>
  37103. <type name="va_list" c:type="va_list"/>
  37104. </parameter>
  37105. </parameters>
  37106. </method>
  37107. <method name="add_tag_value" c:identifier="gst_tag_setter_add_tag_value">
  37108. <doc xml:space="preserve">Adds the given tag / GValue pair on the setter using the given merge mode.</doc>
  37109. <return-value transfer-ownership="none">
  37110. <type name="none" c:type="void"/>
  37111. </return-value>
  37112. <parameters>
  37113. <instance-parameter name="setter" transfer-ownership="none">
  37114. <doc xml:space="preserve">a #GstTagSetter</doc>
  37115. <type name="TagSetter" c:type="GstTagSetter*"/>
  37116. </instance-parameter>
  37117. <parameter name="mode" transfer-ownership="none">
  37118. <doc xml:space="preserve">the mode to use</doc>
  37119. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37120. </parameter>
  37121. <parameter name="tag" transfer-ownership="none">
  37122. <doc xml:space="preserve">tag to set</doc>
  37123. <type name="utf8" c:type="const gchar*"/>
  37124. </parameter>
  37125. <parameter name="value" transfer-ownership="none">
  37126. <doc xml:space="preserve">GValue to set for the tag</doc>
  37127. <type name="GObject.Value" c:type="const GValue*"/>
  37128. </parameter>
  37129. </parameters>
  37130. </method>
  37131. <method name="add_tag_values"
  37132. c:identifier="gst_tag_setter_add_tag_values"
  37133. introspectable="0">
  37134. <doc xml:space="preserve">Adds the given tag / GValue pairs on the setter using the given merge mode.
  37135. The list must be terminated with %NULL.</doc>
  37136. <return-value transfer-ownership="none">
  37137. <type name="none" c:type="void"/>
  37138. </return-value>
  37139. <parameters>
  37140. <instance-parameter name="setter" transfer-ownership="none">
  37141. <doc xml:space="preserve">a #GstTagSetter</doc>
  37142. <type name="TagSetter" c:type="GstTagSetter*"/>
  37143. </instance-parameter>
  37144. <parameter name="mode" transfer-ownership="none">
  37145. <doc xml:space="preserve">the mode to use</doc>
  37146. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37147. </parameter>
  37148. <parameter name="tag" transfer-ownership="none">
  37149. <doc xml:space="preserve">tag to set</doc>
  37150. <type name="utf8" c:type="const gchar*"/>
  37151. </parameter>
  37152. <parameter name="..." transfer-ownership="none">
  37153. <doc xml:space="preserve">more tag / GValue pairs to set</doc>
  37154. <varargs/>
  37155. </parameter>
  37156. </parameters>
  37157. </method>
  37158. <method name="add_tags"
  37159. c:identifier="gst_tag_setter_add_tags"
  37160. introspectable="0">
  37161. <doc xml:space="preserve">Adds the given tag / value pairs on the setter using the given merge mode.
  37162. The list must be terminated with %NULL.</doc>
  37163. <return-value transfer-ownership="none">
  37164. <type name="none" c:type="void"/>
  37165. </return-value>
  37166. <parameters>
  37167. <instance-parameter name="setter" transfer-ownership="none">
  37168. <doc xml:space="preserve">a #GstTagSetter</doc>
  37169. <type name="TagSetter" c:type="GstTagSetter*"/>
  37170. </instance-parameter>
  37171. <parameter name="mode" transfer-ownership="none">
  37172. <doc xml:space="preserve">the mode to use</doc>
  37173. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37174. </parameter>
  37175. <parameter name="tag" transfer-ownership="none">
  37176. <doc xml:space="preserve">tag to set</doc>
  37177. <type name="utf8" c:type="const gchar*"/>
  37178. </parameter>
  37179. <parameter name="..." transfer-ownership="none">
  37180. <doc xml:space="preserve">more tag / value pairs to set</doc>
  37181. <varargs/>
  37182. </parameter>
  37183. </parameters>
  37184. </method>
  37185. <method name="get_tag_list" c:identifier="gst_tag_setter_get_tag_list">
  37186. <doc xml:space="preserve">Returns the current list of tags the setter uses. The list should not be
  37187. modified or freed.
  37188. This function is not thread-safe.</doc>
  37189. <return-value transfer-ownership="none" nullable="1">
  37190. <doc xml:space="preserve">a current snapshot of the
  37191. taglist used in the setter or %NULL if none is used.</doc>
  37192. <type name="TagList" c:type="const GstTagList*"/>
  37193. </return-value>
  37194. <parameters>
  37195. <instance-parameter name="setter" transfer-ownership="none">
  37196. <doc xml:space="preserve">a #GstTagSetter</doc>
  37197. <type name="TagSetter" c:type="GstTagSetter*"/>
  37198. </instance-parameter>
  37199. </parameters>
  37200. </method>
  37201. <method name="get_tag_merge_mode"
  37202. c:identifier="gst_tag_setter_get_tag_merge_mode">
  37203. <doc xml:space="preserve">Queries the mode by which tags inside the setter are overwritten by tags
  37204. from events</doc>
  37205. <return-value transfer-ownership="none">
  37206. <doc xml:space="preserve">the merge mode used inside the element.</doc>
  37207. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37208. </return-value>
  37209. <parameters>
  37210. <instance-parameter name="setter" transfer-ownership="none">
  37211. <doc xml:space="preserve">a #GstTagSetter</doc>
  37212. <type name="TagSetter" c:type="GstTagSetter*"/>
  37213. </instance-parameter>
  37214. </parameters>
  37215. </method>
  37216. <method name="merge_tags" c:identifier="gst_tag_setter_merge_tags">
  37217. <doc xml:space="preserve">Merges the given list into the setter's list using the given mode.</doc>
  37218. <return-value transfer-ownership="none">
  37219. <type name="none" c:type="void"/>
  37220. </return-value>
  37221. <parameters>
  37222. <instance-parameter name="setter" transfer-ownership="none">
  37223. <doc xml:space="preserve">a #GstTagSetter</doc>
  37224. <type name="TagSetter" c:type="GstTagSetter*"/>
  37225. </instance-parameter>
  37226. <parameter name="list" transfer-ownership="none">
  37227. <doc xml:space="preserve">a tag list to merge from</doc>
  37228. <type name="TagList" c:type="const GstTagList*"/>
  37229. </parameter>
  37230. <parameter name="mode" transfer-ownership="none">
  37231. <doc xml:space="preserve">the mode to merge with</doc>
  37232. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37233. </parameter>
  37234. </parameters>
  37235. </method>
  37236. <method name="reset_tags" c:identifier="gst_tag_setter_reset_tags">
  37237. <doc xml:space="preserve">Reset the internal taglist. Elements should call this from within the
  37238. state-change handler.</doc>
  37239. <return-value transfer-ownership="none">
  37240. <type name="none" c:type="void"/>
  37241. </return-value>
  37242. <parameters>
  37243. <instance-parameter name="setter" transfer-ownership="none">
  37244. <doc xml:space="preserve">a #GstTagSetter</doc>
  37245. <type name="TagSetter" c:type="GstTagSetter*"/>
  37246. </instance-parameter>
  37247. </parameters>
  37248. </method>
  37249. <method name="set_tag_merge_mode"
  37250. c:identifier="gst_tag_setter_set_tag_merge_mode">
  37251. <doc xml:space="preserve">Sets the given merge mode that is used for adding tags from events to tags
  37252. specified by this interface. The default is #GST_TAG_MERGE_KEEP, which keeps
  37253. the tags set with this interface and discards tags from events.</doc>
  37254. <return-value transfer-ownership="none">
  37255. <type name="none" c:type="void"/>
  37256. </return-value>
  37257. <parameters>
  37258. <instance-parameter name="setter" transfer-ownership="none">
  37259. <doc xml:space="preserve">a #GstTagSetter</doc>
  37260. <type name="TagSetter" c:type="GstTagSetter*"/>
  37261. </instance-parameter>
  37262. <parameter name="mode" transfer-ownership="none">
  37263. <doc xml:space="preserve">The mode with which tags are added</doc>
  37264. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  37265. </parameter>
  37266. </parameters>
  37267. </method>
  37268. </interface>
  37269. <record name="TagSetterInterface"
  37270. c:type="GstTagSetterInterface"
  37271. glib:is-gtype-struct-for="TagSetter">
  37272. <doc xml:space="preserve">#GstTagSetterInterface interface.</doc>
  37273. <field name="g_iface">
  37274. <doc xml:space="preserve">parent interface type.</doc>
  37275. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  37276. </field>
  37277. </record>
  37278. <class name="Task"
  37279. c:symbol-prefix="task"
  37280. c:type="GstTask"
  37281. parent="Object"
  37282. glib:type-name="GstTask"
  37283. glib:get-type="gst_task_get_type"
  37284. glib:type-struct="TaskClass">
  37285. <doc xml:space="preserve">#GstTask is used by #GstElement and #GstPad to provide the data passing
  37286. threads in a #GstPipeline.
  37287. A #GstPad will typically start a #GstTask to push or pull data to/from the
  37288. peer pads. Most source elements start a #GstTask to push data. In some cases
  37289. a demuxer element can start a #GstTask to pull data from a peer element. This
  37290. is typically done when the demuxer can perform random access on the upstream
  37291. peer element for improved performance.
  37292. Although convenience functions exist on #GstPad to start/pause/stop tasks, it
  37293. might sometimes be needed to create a #GstTask manually if it is not related to
  37294. a #GstPad.
  37295. Before the #GstTask can be run, it needs a #GRecMutex that can be set with
  37296. gst_task_set_lock().
  37297. The task can be started, paused and stopped with gst_task_start(), gst_task_pause()
  37298. and gst_task_stop() respectively or with the gst_task_set_state() function.
  37299. A #GstTask will repeatedly call the #GstTaskFunction with the user data
  37300. that was provided when creating the task with gst_task_new(). While calling
  37301. the function it will acquire the provided lock. The provided lock is released
  37302. when the task pauses or stops.
  37303. Stopping a task with gst_task_stop() will not immediately make sure the task is
  37304. not running anymore. Use gst_task_join() to make sure the task is completely
  37305. stopped and the thread is stopped.
  37306. After creating a #GstTask, use gst_object_unref() to free its resources. This can
  37307. only be done when the task is not running anymore.
  37308. Task functions can send a #GstMessage to send out-of-band data to the
  37309. application. The application can receive messages from the #GstBus in its
  37310. mainloop.
  37311. For debugging purposes, the task will configure its object name as the thread
  37312. name on Linux. Please note that the object name should be configured before the
  37313. task is started; changing the object name after the task has been started, has
  37314. no effect on the thread name.</doc>
  37315. <constructor name="new" c:identifier="gst_task_new">
  37316. <doc xml:space="preserve">Create a new Task that will repeatedly call the provided @func
  37317. with @user_data as a parameter. Typically the task will run in
  37318. a new thread.
  37319. The function cannot be changed after the task has been created. You
  37320. must create a new #GstTask to change the function.
  37321. This function will not yet create and start a thread. Use gst_task_start() or
  37322. gst_task_pause() to create and start the GThread.
  37323. Before the task can be used, a #GRecMutex must be configured using the
  37324. gst_task_set_lock() function. This lock will always be acquired while
  37325. @func is called.</doc>
  37326. <return-value transfer-ownership="full">
  37327. <doc xml:space="preserve">A new #GstTask.
  37328. MT safe.</doc>
  37329. <type name="Task" c:type="GstTask*"/>
  37330. </return-value>
  37331. <parameters>
  37332. <parameter name="func"
  37333. transfer-ownership="none"
  37334. scope="notified"
  37335. closure="1"
  37336. destroy="2">
  37337. <doc xml:space="preserve">The #GstTaskFunction to use</doc>
  37338. <type name="TaskFunction" c:type="GstTaskFunction"/>
  37339. </parameter>
  37340. <parameter name="user_data"
  37341. transfer-ownership="none"
  37342. nullable="1"
  37343. allow-none="1">
  37344. <doc xml:space="preserve">User data to pass to @func</doc>
  37345. <type name="gpointer" c:type="gpointer"/>
  37346. </parameter>
  37347. <parameter name="notify" transfer-ownership="none" scope="async">
  37348. <doc xml:space="preserve">the function to call when @user_data is no longer needed.</doc>
  37349. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  37350. </parameter>
  37351. </parameters>
  37352. </constructor>
  37353. <function name="cleanup_all" c:identifier="gst_task_cleanup_all">
  37354. <doc xml:space="preserve">Wait for all tasks to be stopped. This is mainly used internally
  37355. to ensure proper cleanup of internal data structures in test suites.
  37356. MT safe.</doc>
  37357. <return-value transfer-ownership="none">
  37358. <type name="none" c:type="void"/>
  37359. </return-value>
  37360. </function>
  37361. <method name="get_pool" c:identifier="gst_task_get_pool">
  37362. <doc xml:space="preserve">Get the #GstTaskPool that this task will use for its streaming
  37363. threads.
  37364. MT safe.</doc>
  37365. <return-value transfer-ownership="full">
  37366. <doc xml:space="preserve">the #GstTaskPool used by @task. gst_object_unref()
  37367. after usage.</doc>
  37368. <type name="TaskPool" c:type="GstTaskPool*"/>
  37369. </return-value>
  37370. <parameters>
  37371. <instance-parameter name="task" transfer-ownership="none">
  37372. <doc xml:space="preserve">a #GstTask</doc>
  37373. <type name="Task" c:type="GstTask*"/>
  37374. </instance-parameter>
  37375. </parameters>
  37376. </method>
  37377. <method name="get_state" c:identifier="gst_task_get_state">
  37378. <doc xml:space="preserve">Get the current state of the task.</doc>
  37379. <return-value transfer-ownership="none">
  37380. <doc xml:space="preserve">The #GstTaskState of the task
  37381. MT safe.</doc>
  37382. <type name="TaskState" c:type="GstTaskState"/>
  37383. </return-value>
  37384. <parameters>
  37385. <instance-parameter name="task" transfer-ownership="none">
  37386. <doc xml:space="preserve">The #GstTask to query</doc>
  37387. <type name="Task" c:type="GstTask*"/>
  37388. </instance-parameter>
  37389. </parameters>
  37390. </method>
  37391. <method name="join" c:identifier="gst_task_join">
  37392. <doc xml:space="preserve">Joins @task. After this call, it is safe to unref the task
  37393. and clean up the lock set with gst_task_set_lock().
  37394. The task will automatically be stopped with this call.
  37395. This function cannot be called from within a task function as this
  37396. would cause a deadlock. The function will detect this and print a
  37397. g_warning.</doc>
  37398. <return-value transfer-ownership="none">
  37399. <doc xml:space="preserve">%TRUE if the task could be joined.
  37400. MT safe.</doc>
  37401. <type name="gboolean" c:type="gboolean"/>
  37402. </return-value>
  37403. <parameters>
  37404. <instance-parameter name="task" transfer-ownership="none">
  37405. <doc xml:space="preserve">The #GstTask to join</doc>
  37406. <type name="Task" c:type="GstTask*"/>
  37407. </instance-parameter>
  37408. </parameters>
  37409. </method>
  37410. <method name="pause" c:identifier="gst_task_pause">
  37411. <doc xml:space="preserve">Pauses @task. This method can also be called on a task in the
  37412. stopped state, in which case a thread will be started and will remain
  37413. in the paused state. This function does not wait for the task to complete
  37414. the paused state.</doc>
  37415. <return-value transfer-ownership="none">
  37416. <doc xml:space="preserve">%TRUE if the task could be paused.
  37417. MT safe.</doc>
  37418. <type name="gboolean" c:type="gboolean"/>
  37419. </return-value>
  37420. <parameters>
  37421. <instance-parameter name="task" transfer-ownership="none">
  37422. <doc xml:space="preserve">The #GstTask to pause</doc>
  37423. <type name="Task" c:type="GstTask*"/>
  37424. </instance-parameter>
  37425. </parameters>
  37426. </method>
  37427. <method name="set_enter_callback"
  37428. c:identifier="gst_task_set_enter_callback">
  37429. <doc xml:space="preserve">Call @enter_func when the task function of @task is entered. @user_data will
  37430. be passed to @enter_func and @notify will be called when @user_data is no
  37431. longer referenced.</doc>
  37432. <return-value transfer-ownership="none">
  37433. <type name="none" c:type="void"/>
  37434. </return-value>
  37435. <parameters>
  37436. <instance-parameter name="task" transfer-ownership="none">
  37437. <doc xml:space="preserve">The #GstTask to use</doc>
  37438. <type name="Task" c:type="GstTask*"/>
  37439. </instance-parameter>
  37440. <parameter name="enter_func"
  37441. transfer-ownership="none"
  37442. scope="notified"
  37443. closure="1"
  37444. destroy="2">
  37445. <doc xml:space="preserve">a #GstTaskThreadFunc</doc>
  37446. <type name="TaskThreadFunc" c:type="GstTaskThreadFunc"/>
  37447. </parameter>
  37448. <parameter name="user_data"
  37449. transfer-ownership="none"
  37450. nullable="1"
  37451. allow-none="1">
  37452. <doc xml:space="preserve">user data passed to @enter_func</doc>
  37453. <type name="gpointer" c:type="gpointer"/>
  37454. </parameter>
  37455. <parameter name="notify" transfer-ownership="none" scope="async">
  37456. <doc xml:space="preserve">called when @user_data is no longer referenced</doc>
  37457. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  37458. </parameter>
  37459. </parameters>
  37460. </method>
  37461. <method name="set_leave_callback"
  37462. c:identifier="gst_task_set_leave_callback">
  37463. <doc xml:space="preserve">Call @leave_func when the task function of @task is left. @user_data will
  37464. be passed to @leave_func and @notify will be called when @user_data is no
  37465. longer referenced.</doc>
  37466. <return-value transfer-ownership="none">
  37467. <type name="none" c:type="void"/>
  37468. </return-value>
  37469. <parameters>
  37470. <instance-parameter name="task" transfer-ownership="none">
  37471. <doc xml:space="preserve">The #GstTask to use</doc>
  37472. <type name="Task" c:type="GstTask*"/>
  37473. </instance-parameter>
  37474. <parameter name="leave_func"
  37475. transfer-ownership="none"
  37476. scope="notified"
  37477. closure="1"
  37478. destroy="2">
  37479. <doc xml:space="preserve">a #GstTaskThreadFunc</doc>
  37480. <type name="TaskThreadFunc" c:type="GstTaskThreadFunc"/>
  37481. </parameter>
  37482. <parameter name="user_data"
  37483. transfer-ownership="none"
  37484. nullable="1"
  37485. allow-none="1">
  37486. <doc xml:space="preserve">user data passed to @leave_func</doc>
  37487. <type name="gpointer" c:type="gpointer"/>
  37488. </parameter>
  37489. <parameter name="notify" transfer-ownership="none" scope="async">
  37490. <doc xml:space="preserve">called when @user_data is no longer referenced</doc>
  37491. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  37492. </parameter>
  37493. </parameters>
  37494. </method>
  37495. <method name="set_lock" c:identifier="gst_task_set_lock">
  37496. <doc xml:space="preserve">Set the mutex used by the task. The mutex will be acquired before
  37497. calling the #GstTaskFunction.
  37498. This function has to be called before calling gst_task_pause() or
  37499. gst_task_start().
  37500. MT safe.</doc>
  37501. <return-value transfer-ownership="none">
  37502. <type name="none" c:type="void"/>
  37503. </return-value>
  37504. <parameters>
  37505. <instance-parameter name="task" transfer-ownership="none">
  37506. <doc xml:space="preserve">The #GstTask to use</doc>
  37507. <type name="Task" c:type="GstTask*"/>
  37508. </instance-parameter>
  37509. <parameter name="mutex" transfer-ownership="none">
  37510. <doc xml:space="preserve">The #GRecMutex to use</doc>
  37511. <type name="GLib.RecMutex" c:type="GRecMutex*"/>
  37512. </parameter>
  37513. </parameters>
  37514. </method>
  37515. <method name="set_pool" c:identifier="gst_task_set_pool">
  37516. <doc xml:space="preserve">Set @pool as the new GstTaskPool for @task. Any new streaming threads that
  37517. will be created by @task will now use @pool.
  37518. MT safe.</doc>
  37519. <return-value transfer-ownership="none">
  37520. <type name="none" c:type="void"/>
  37521. </return-value>
  37522. <parameters>
  37523. <instance-parameter name="task" transfer-ownership="none">
  37524. <doc xml:space="preserve">a #GstTask</doc>
  37525. <type name="Task" c:type="GstTask*"/>
  37526. </instance-parameter>
  37527. <parameter name="pool" transfer-ownership="none">
  37528. <doc xml:space="preserve">a #GstTaskPool</doc>
  37529. <type name="TaskPool" c:type="GstTaskPool*"/>
  37530. </parameter>
  37531. </parameters>
  37532. </method>
  37533. <method name="set_state" c:identifier="gst_task_set_state">
  37534. <doc xml:space="preserve">Sets the state of @task to @state.
  37535. The @task must have a lock associated with it using
  37536. gst_task_set_lock() when going to GST_TASK_STARTED or GST_TASK_PAUSED or
  37537. this function will return %FALSE.
  37538. MT safe.</doc>
  37539. <return-value transfer-ownership="none">
  37540. <doc xml:space="preserve">%TRUE if the state could be changed.</doc>
  37541. <type name="gboolean" c:type="gboolean"/>
  37542. </return-value>
  37543. <parameters>
  37544. <instance-parameter name="task" transfer-ownership="none">
  37545. <doc xml:space="preserve">a #GstTask</doc>
  37546. <type name="Task" c:type="GstTask*"/>
  37547. </instance-parameter>
  37548. <parameter name="state" transfer-ownership="none">
  37549. <doc xml:space="preserve">the new task state</doc>
  37550. <type name="TaskState" c:type="GstTaskState"/>
  37551. </parameter>
  37552. </parameters>
  37553. </method>
  37554. <method name="start" c:identifier="gst_task_start">
  37555. <doc xml:space="preserve">Starts @task. The @task must have a lock associated with it using
  37556. gst_task_set_lock() or this function will return %FALSE.</doc>
  37557. <return-value transfer-ownership="none">
  37558. <doc xml:space="preserve">%TRUE if the task could be started.
  37559. MT safe.</doc>
  37560. <type name="gboolean" c:type="gboolean"/>
  37561. </return-value>
  37562. <parameters>
  37563. <instance-parameter name="task" transfer-ownership="none">
  37564. <doc xml:space="preserve">The #GstTask to start</doc>
  37565. <type name="Task" c:type="GstTask*"/>
  37566. </instance-parameter>
  37567. </parameters>
  37568. </method>
  37569. <method name="stop" c:identifier="gst_task_stop">
  37570. <doc xml:space="preserve">Stops @task. This method merely schedules the task to stop and
  37571. will not wait for the task to have completely stopped. Use
  37572. gst_task_join() to stop and wait for completion.</doc>
  37573. <return-value transfer-ownership="none">
  37574. <doc xml:space="preserve">%TRUE if the task could be stopped.
  37575. MT safe.</doc>
  37576. <type name="gboolean" c:type="gboolean"/>
  37577. </return-value>
  37578. <parameters>
  37579. <instance-parameter name="task" transfer-ownership="none">
  37580. <doc xml:space="preserve">The #GstTask to stop</doc>
  37581. <type name="Task" c:type="GstTask*"/>
  37582. </instance-parameter>
  37583. </parameters>
  37584. </method>
  37585. <field name="object">
  37586. <type name="Object" c:type="GstObject"/>
  37587. </field>
  37588. <field name="state">
  37589. <doc xml:space="preserve">the state of the task</doc>
  37590. <type name="TaskState" c:type="GstTaskState"/>
  37591. </field>
  37592. <field name="cond">
  37593. <doc xml:space="preserve">used to pause/resume the task</doc>
  37594. <type name="GLib.Cond" c:type="GCond"/>
  37595. </field>
  37596. <field name="lock">
  37597. <doc xml:space="preserve">The lock taken when iterating the task function</doc>
  37598. <type name="GLib.RecMutex" c:type="GRecMutex*"/>
  37599. </field>
  37600. <field name="func">
  37601. <doc xml:space="preserve">the function executed by this task</doc>
  37602. <type name="TaskFunction" c:type="GstTaskFunction"/>
  37603. </field>
  37604. <field name="user_data">
  37605. <doc xml:space="preserve">user_data passed to the task function</doc>
  37606. <type name="gpointer" c:type="gpointer"/>
  37607. </field>
  37608. <field name="notify">
  37609. <doc xml:space="preserve">GDestroyNotify for @user_data</doc>
  37610. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  37611. </field>
  37612. <field name="running">
  37613. <doc xml:space="preserve">a flag indicating that the task is running</doc>
  37614. <type name="gboolean" c:type="gboolean"/>
  37615. </field>
  37616. <field name="thread" readable="0" private="1">
  37617. <type name="GLib.Thread" c:type="GThread*"/>
  37618. </field>
  37619. <field name="priv" readable="0" private="1">
  37620. <type name="TaskPrivate" c:type="GstTaskPrivate*"/>
  37621. </field>
  37622. <field name="_gst_reserved" readable="0" private="1">
  37623. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  37624. <type name="gpointer" c:type="gpointer"/>
  37625. </array>
  37626. </field>
  37627. </class>
  37628. <record name="TaskClass"
  37629. c:type="GstTaskClass"
  37630. glib:is-gtype-struct-for="Task">
  37631. <field name="parent_class">
  37632. <type name="ObjectClass" c:type="GstObjectClass"/>
  37633. </field>
  37634. <field name="pool" readable="0" private="1">
  37635. <type name="TaskPool" c:type="GstTaskPool*"/>
  37636. </field>
  37637. <field name="_gst_reserved" readable="0" private="1">
  37638. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  37639. <type name="gpointer" c:type="gpointer"/>
  37640. </array>
  37641. </field>
  37642. </record>
  37643. <callback name="TaskFunction" c:type="GstTaskFunction">
  37644. <doc xml:space="preserve">A function that will repeatedly be called in the thread created by
  37645. a #GstTask.</doc>
  37646. <return-value transfer-ownership="none">
  37647. <type name="none" c:type="void"/>
  37648. </return-value>
  37649. <parameters>
  37650. <parameter name="user_data"
  37651. transfer-ownership="none"
  37652. nullable="1"
  37653. allow-none="1"
  37654. closure="0">
  37655. <doc xml:space="preserve">user data passed to the function</doc>
  37656. <type name="gpointer" c:type="gpointer"/>
  37657. </parameter>
  37658. </parameters>
  37659. </callback>
  37660. <class name="TaskPool"
  37661. c:symbol-prefix="task_pool"
  37662. c:type="GstTaskPool"
  37663. parent="Object"
  37664. glib:type-name="GstTaskPool"
  37665. glib:get-type="gst_task_pool_get_type"
  37666. glib:type-struct="TaskPoolClass">
  37667. <doc xml:space="preserve">This object provides an abstraction for creating threads. The default
  37668. implementation uses a regular GThreadPool to start tasks.
  37669. Subclasses can be made to create custom threads.</doc>
  37670. <constructor name="new" c:identifier="gst_task_pool_new">
  37671. <doc xml:space="preserve">Create a new default task pool. The default task pool will use a regular
  37672. GThreadPool for threads.</doc>
  37673. <return-value transfer-ownership="full">
  37674. <doc xml:space="preserve">a new #GstTaskPool. gst_object_unref() after usage.</doc>
  37675. <type name="TaskPool" c:type="GstTaskPool*"/>
  37676. </return-value>
  37677. </constructor>
  37678. <virtual-method name="cleanup" invoker="cleanup">
  37679. <doc xml:space="preserve">Wait for all tasks to be stopped. This is mainly used internally
  37680. to ensure proper cleanup of internal data structures in test suites.
  37681. MT safe.</doc>
  37682. <return-value transfer-ownership="none">
  37683. <type name="none" c:type="void"/>
  37684. </return-value>
  37685. <parameters>
  37686. <instance-parameter name="pool" transfer-ownership="none">
  37687. <doc xml:space="preserve">a #GstTaskPool</doc>
  37688. <type name="TaskPool" c:type="GstTaskPool*"/>
  37689. </instance-parameter>
  37690. </parameters>
  37691. </virtual-method>
  37692. <virtual-method name="join" invoker="join">
  37693. <doc xml:space="preserve">Join a task and/or return it to the pool. @id is the id obtained from
  37694. gst_task_pool_push().</doc>
  37695. <return-value transfer-ownership="none">
  37696. <type name="none" c:type="void"/>
  37697. </return-value>
  37698. <parameters>
  37699. <instance-parameter name="pool" transfer-ownership="none">
  37700. <doc xml:space="preserve">a #GstTaskPool</doc>
  37701. <type name="TaskPool" c:type="GstTaskPool*"/>
  37702. </instance-parameter>
  37703. <parameter name="id"
  37704. transfer-ownership="none"
  37705. nullable="1"
  37706. allow-none="1">
  37707. <doc xml:space="preserve">the id</doc>
  37708. <type name="gpointer" c:type="gpointer"/>
  37709. </parameter>
  37710. </parameters>
  37711. </virtual-method>
  37712. <virtual-method name="prepare" invoker="prepare" throws="1">
  37713. <doc xml:space="preserve">Prepare the taskpool for accepting gst_task_pool_push() operations.
  37714. MT safe.</doc>
  37715. <return-value transfer-ownership="none">
  37716. <type name="none" c:type="void"/>
  37717. </return-value>
  37718. <parameters>
  37719. <instance-parameter name="pool" transfer-ownership="none">
  37720. <doc xml:space="preserve">a #GstTaskPool</doc>
  37721. <type name="TaskPool" c:type="GstTaskPool*"/>
  37722. </instance-parameter>
  37723. </parameters>
  37724. </virtual-method>
  37725. <virtual-method name="push" invoker="push" throws="1">
  37726. <doc xml:space="preserve">Start the execution of a new thread from @pool.</doc>
  37727. <return-value transfer-ownership="none" nullable="1">
  37728. <doc xml:space="preserve">a pointer that should be used
  37729. for the gst_task_pool_join function. This pointer can be %NULL, you
  37730. must check @error to detect errors.</doc>
  37731. <type name="gpointer" c:type="gpointer"/>
  37732. </return-value>
  37733. <parameters>
  37734. <instance-parameter name="pool" transfer-ownership="none">
  37735. <doc xml:space="preserve">a #GstTaskPool</doc>
  37736. <type name="TaskPool" c:type="GstTaskPool*"/>
  37737. </instance-parameter>
  37738. <parameter name="func"
  37739. transfer-ownership="none"
  37740. scope="async"
  37741. closure="1">
  37742. <doc xml:space="preserve">the function to call</doc>
  37743. <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
  37744. </parameter>
  37745. <parameter name="user_data"
  37746. transfer-ownership="none"
  37747. nullable="1"
  37748. allow-none="1"
  37749. closure="1">
  37750. <doc xml:space="preserve">data to pass to @func</doc>
  37751. <type name="gpointer" c:type="gpointer"/>
  37752. </parameter>
  37753. </parameters>
  37754. </virtual-method>
  37755. <method name="cleanup" c:identifier="gst_task_pool_cleanup">
  37756. <doc xml:space="preserve">Wait for all tasks to be stopped. This is mainly used internally
  37757. to ensure proper cleanup of internal data structures in test suites.
  37758. MT safe.</doc>
  37759. <return-value transfer-ownership="none">
  37760. <type name="none" c:type="void"/>
  37761. </return-value>
  37762. <parameters>
  37763. <instance-parameter name="pool" transfer-ownership="none">
  37764. <doc xml:space="preserve">a #GstTaskPool</doc>
  37765. <type name="TaskPool" c:type="GstTaskPool*"/>
  37766. </instance-parameter>
  37767. </parameters>
  37768. </method>
  37769. <method name="join" c:identifier="gst_task_pool_join">
  37770. <doc xml:space="preserve">Join a task and/or return it to the pool. @id is the id obtained from
  37771. gst_task_pool_push().</doc>
  37772. <return-value transfer-ownership="none">
  37773. <type name="none" c:type="void"/>
  37774. </return-value>
  37775. <parameters>
  37776. <instance-parameter name="pool" transfer-ownership="none">
  37777. <doc xml:space="preserve">a #GstTaskPool</doc>
  37778. <type name="TaskPool" c:type="GstTaskPool*"/>
  37779. </instance-parameter>
  37780. <parameter name="id"
  37781. transfer-ownership="none"
  37782. nullable="1"
  37783. allow-none="1">
  37784. <doc xml:space="preserve">the id</doc>
  37785. <type name="gpointer" c:type="gpointer"/>
  37786. </parameter>
  37787. </parameters>
  37788. </method>
  37789. <method name="prepare" c:identifier="gst_task_pool_prepare" throws="1">
  37790. <doc xml:space="preserve">Prepare the taskpool for accepting gst_task_pool_push() operations.
  37791. MT safe.</doc>
  37792. <return-value transfer-ownership="none">
  37793. <type name="none" c:type="void"/>
  37794. </return-value>
  37795. <parameters>
  37796. <instance-parameter name="pool" transfer-ownership="none">
  37797. <doc xml:space="preserve">a #GstTaskPool</doc>
  37798. <type name="TaskPool" c:type="GstTaskPool*"/>
  37799. </instance-parameter>
  37800. </parameters>
  37801. </method>
  37802. <method name="push" c:identifier="gst_task_pool_push" throws="1">
  37803. <doc xml:space="preserve">Start the execution of a new thread from @pool.</doc>
  37804. <return-value transfer-ownership="none" nullable="1">
  37805. <doc xml:space="preserve">a pointer that should be used
  37806. for the gst_task_pool_join function. This pointer can be %NULL, you
  37807. must check @error to detect errors.</doc>
  37808. <type name="gpointer" c:type="gpointer"/>
  37809. </return-value>
  37810. <parameters>
  37811. <instance-parameter name="pool" transfer-ownership="none">
  37812. <doc xml:space="preserve">a #GstTaskPool</doc>
  37813. <type name="TaskPool" c:type="GstTaskPool*"/>
  37814. </instance-parameter>
  37815. <parameter name="func"
  37816. transfer-ownership="none"
  37817. scope="async"
  37818. closure="1">
  37819. <doc xml:space="preserve">the function to call</doc>
  37820. <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
  37821. </parameter>
  37822. <parameter name="user_data"
  37823. transfer-ownership="none"
  37824. nullable="1"
  37825. allow-none="1">
  37826. <doc xml:space="preserve">data to pass to @func</doc>
  37827. <type name="gpointer" c:type="gpointer"/>
  37828. </parameter>
  37829. </parameters>
  37830. </method>
  37831. <field name="object">
  37832. <type name="Object" c:type="GstObject"/>
  37833. </field>
  37834. <field name="pool" readable="0" private="1">
  37835. <type name="GLib.ThreadPool" c:type="GThreadPool*"/>
  37836. </field>
  37837. <field name="_gst_reserved" readable="0" private="1">
  37838. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  37839. <type name="gpointer" c:type="gpointer"/>
  37840. </array>
  37841. </field>
  37842. </class>
  37843. <record name="TaskPoolClass"
  37844. c:type="GstTaskPoolClass"
  37845. glib:is-gtype-struct-for="TaskPool">
  37846. <doc xml:space="preserve">The #GstTaskPoolClass object.</doc>
  37847. <field name="parent_class">
  37848. <doc xml:space="preserve">the parent class structure</doc>
  37849. <type name="ObjectClass" c:type="GstObjectClass"/>
  37850. </field>
  37851. <field name="prepare">
  37852. <callback name="prepare" throws="1">
  37853. <return-value transfer-ownership="none">
  37854. <type name="none" c:type="void"/>
  37855. </return-value>
  37856. <parameters>
  37857. <parameter name="pool" transfer-ownership="none">
  37858. <doc xml:space="preserve">a #GstTaskPool</doc>
  37859. <type name="TaskPool" c:type="GstTaskPool*"/>
  37860. </parameter>
  37861. </parameters>
  37862. </callback>
  37863. </field>
  37864. <field name="cleanup">
  37865. <callback name="cleanup">
  37866. <return-value transfer-ownership="none">
  37867. <type name="none" c:type="void"/>
  37868. </return-value>
  37869. <parameters>
  37870. <parameter name="pool" transfer-ownership="none">
  37871. <doc xml:space="preserve">a #GstTaskPool</doc>
  37872. <type name="TaskPool" c:type="GstTaskPool*"/>
  37873. </parameter>
  37874. </parameters>
  37875. </callback>
  37876. </field>
  37877. <field name="push">
  37878. <callback name="push" throws="1">
  37879. <return-value transfer-ownership="none" nullable="1">
  37880. <doc xml:space="preserve">a pointer that should be used
  37881. for the gst_task_pool_join function. This pointer can be %NULL, you
  37882. must check @error to detect errors.</doc>
  37883. <type name="gpointer" c:type="gpointer"/>
  37884. </return-value>
  37885. <parameters>
  37886. <parameter name="pool" transfer-ownership="none">
  37887. <doc xml:space="preserve">a #GstTaskPool</doc>
  37888. <type name="TaskPool" c:type="GstTaskPool*"/>
  37889. </parameter>
  37890. <parameter name="func"
  37891. transfer-ownership="none"
  37892. scope="async"
  37893. closure="2">
  37894. <doc xml:space="preserve">the function to call</doc>
  37895. <type name="TaskPoolFunction" c:type="GstTaskPoolFunction"/>
  37896. </parameter>
  37897. <parameter name="user_data"
  37898. transfer-ownership="none"
  37899. nullable="1"
  37900. allow-none="1"
  37901. closure="2">
  37902. <doc xml:space="preserve">data to pass to @func</doc>
  37903. <type name="gpointer" c:type="gpointer"/>
  37904. </parameter>
  37905. </parameters>
  37906. </callback>
  37907. </field>
  37908. <field name="join">
  37909. <callback name="join">
  37910. <return-value transfer-ownership="none">
  37911. <type name="none" c:type="void"/>
  37912. </return-value>
  37913. <parameters>
  37914. <parameter name="pool" transfer-ownership="none">
  37915. <doc xml:space="preserve">a #GstTaskPool</doc>
  37916. <type name="TaskPool" c:type="GstTaskPool*"/>
  37917. </parameter>
  37918. <parameter name="id"
  37919. transfer-ownership="none"
  37920. nullable="1"
  37921. allow-none="1">
  37922. <doc xml:space="preserve">the id</doc>
  37923. <type name="gpointer" c:type="gpointer"/>
  37924. </parameter>
  37925. </parameters>
  37926. </callback>
  37927. </field>
  37928. <field name="_gst_reserved" readable="0" private="1">
  37929. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  37930. <type name="gpointer" c:type="gpointer"/>
  37931. </array>
  37932. </field>
  37933. </record>
  37934. <callback name="TaskPoolFunction" c:type="GstTaskPoolFunction">
  37935. <doc xml:space="preserve">Task function, see gst_task_pool_push().</doc>
  37936. <return-value transfer-ownership="none">
  37937. <type name="none" c:type="void"/>
  37938. </return-value>
  37939. <parameters>
  37940. <parameter name="user_data"
  37941. transfer-ownership="none"
  37942. nullable="1"
  37943. allow-none="1"
  37944. closure="0">
  37945. <doc xml:space="preserve">user data for the task function</doc>
  37946. <type name="gpointer" c:type="void*"/>
  37947. </parameter>
  37948. </parameters>
  37949. </callback>
  37950. <record name="TaskPrivate" c:type="GstTaskPrivate" disguised="1">
  37951. </record>
  37952. <enumeration name="TaskState"
  37953. glib:type-name="GstTaskState"
  37954. glib:get-type="gst_task_state_get_type"
  37955. c:type="GstTaskState">
  37956. <doc xml:space="preserve">The different states a task can be in</doc>
  37957. <member name="started"
  37958. value="0"
  37959. c:identifier="GST_TASK_STARTED"
  37960. glib:nick="started">
  37961. <doc xml:space="preserve">the task is started and running</doc>
  37962. </member>
  37963. <member name="stopped"
  37964. value="1"
  37965. c:identifier="GST_TASK_STOPPED"
  37966. glib:nick="stopped">
  37967. <doc xml:space="preserve">the task is stopped</doc>
  37968. </member>
  37969. <member name="paused"
  37970. value="2"
  37971. c:identifier="GST_TASK_PAUSED"
  37972. glib:nick="paused">
  37973. <doc xml:space="preserve">the task is paused</doc>
  37974. </member>
  37975. </enumeration>
  37976. <callback name="TaskThreadFunc" c:type="GstTaskThreadFunc">
  37977. <doc xml:space="preserve">Custom GstTask thread callback functions that can be installed.</doc>
  37978. <return-value transfer-ownership="none">
  37979. <type name="none" c:type="void"/>
  37980. </return-value>
  37981. <parameters>
  37982. <parameter name="task" transfer-ownership="none">
  37983. <doc xml:space="preserve">The #GstTask</doc>
  37984. <type name="Task" c:type="GstTask*"/>
  37985. </parameter>
  37986. <parameter name="thread" transfer-ownership="none">
  37987. <doc xml:space="preserve">The #GThread</doc>
  37988. <type name="GLib.Thread" c:type="GThread*"/>
  37989. </parameter>
  37990. <parameter name="user_data"
  37991. transfer-ownership="none"
  37992. nullable="1"
  37993. allow-none="1"
  37994. closure="2">
  37995. <doc xml:space="preserve">user data</doc>
  37996. <type name="gpointer" c:type="gpointer"/>
  37997. </parameter>
  37998. </parameters>
  37999. </callback>
  38000. <record name="TimedValue" c:type="GstTimedValue">
  38001. <doc xml:space="preserve">Structure for saving a timestamp and a value.</doc>
  38002. <field name="timestamp" writable="1">
  38003. <doc xml:space="preserve">timestamp of the value change</doc>
  38004. <type name="ClockTime" c:type="GstClockTime"/>
  38005. </field>
  38006. <field name="value" writable="1">
  38007. <doc xml:space="preserve">the corresponding value</doc>
  38008. <type name="gdouble" c:type="gdouble"/>
  38009. </field>
  38010. </record>
  38011. <record name="Toc"
  38012. c:type="GstToc"
  38013. glib:type-name="GstToc"
  38014. glib:get-type="gst_toc_get_type"
  38015. c:symbol-prefix="toc">
  38016. <doc xml:space="preserve">#GstToc functions are used to create/free #GstToc and #GstTocEntry structures.
  38017. Also they are used to convert #GstToc into #GstStructure and vice versa.
  38018. #GstToc lets you to inform other elements in pipeline or application that playing
  38019. source has some kind of table of contents (TOC). These may be chapters, editions,
  38020. angles or other types. For example: DVD chapters, Matroska chapters or cue sheet
  38021. TOC. Such TOC will be useful for applications to display instead of just a
  38022. playlist.
  38023. Using TOC is very easy. Firstly, create #GstToc structure which represents root
  38024. contents of the source. You can also attach TOC-specific tags to it. Then fill
  38025. it with #GstTocEntry entries by appending them to the #GstToc using
  38026. gst_toc_append_entry(), and appending subentries to a #GstTocEntry using
  38027. gst_toc_entry_append_sub_entry().
  38028. Note that root level of the TOC can contain only either editions or chapters. You
  38029. should not mix them together at the same level. Otherwise you will get serialization
  38030. /deserialization errors. Make sure that no one of the entries has negative start and
  38031. stop values.
  38032. Use gst_event_new_toc() to create a new TOC #GstEvent, and gst_event_parse_toc() to
  38033. parse received TOC event. Use gst_event_new_toc_select() to create a new TOC select #GstEvent,
  38034. and gst_event_parse_toc_select() to parse received TOC select event. The same rule for
  38035. the #GstMessage: gst_message_new_toc() to create new TOC #GstMessage, and
  38036. gst_message_parse_toc() to parse received TOC message.
  38037. TOCs can have global scope or current scope. Global scope TOCs contain
  38038. all entries that can possibly be selected using a toc select event, and
  38039. are what an application is usually interested in. TOCs with current scope
  38040. only contain the parts of the TOC relevant to the currently selected/playing
  38041. stream; the current scope TOC is used by downstream elements such as muxers
  38042. to write correct TOC entries when transcoding files, for example. When
  38043. playing a DVD, the global TOC would contain a hierarchy of all titles,
  38044. chapters and angles, for example, while the current TOC would only contain
  38045. the chapters for the currently playing title if playback of a specific
  38046. title was requested.
  38047. Applications and plugins should not rely on TOCs having a certain kind of
  38048. structure, but should allow for different alternatives. For example, a
  38049. simple CUE sheet embedded in a file may be presented as a flat list of
  38050. track entries, or could have a top-level edition node (or some other
  38051. alternative type entry) with track entries underneath that node; or even
  38052. multiple top-level edition nodes (or some other alternative type entries)
  38053. each with track entries underneath, in case the source file has extracted
  38054. a track listing from different sources).</doc>
  38055. <constructor name="new" c:identifier="gst_toc_new">
  38056. <doc xml:space="preserve">Create a new #GstToc structure.</doc>
  38057. <return-value transfer-ownership="full">
  38058. <doc xml:space="preserve">newly allocated #GstToc structure, free it
  38059. with gst_toc_unref().</doc>
  38060. <type name="Toc" c:type="GstToc*"/>
  38061. </return-value>
  38062. <parameters>
  38063. <parameter name="scope" transfer-ownership="none">
  38064. <doc xml:space="preserve">scope of this TOC</doc>
  38065. <type name="TocScope" c:type="GstTocScope"/>
  38066. </parameter>
  38067. </parameters>
  38068. </constructor>
  38069. <method name="append_entry" c:identifier="gst_toc_append_entry">
  38070. <doc xml:space="preserve">Appends the #GstTocEntry @entry to @toc.</doc>
  38071. <return-value transfer-ownership="none">
  38072. <type name="none" c:type="void"/>
  38073. </return-value>
  38074. <parameters>
  38075. <instance-parameter name="toc" transfer-ownership="none">
  38076. <doc xml:space="preserve">A #GstToc instance</doc>
  38077. <type name="Toc" c:type="GstToc*"/>
  38078. </instance-parameter>
  38079. <parameter name="entry" transfer-ownership="full">
  38080. <doc xml:space="preserve">A #GstTocEntry</doc>
  38081. <type name="TocEntry" c:type="GstTocEntry*"/>
  38082. </parameter>
  38083. </parameters>
  38084. </method>
  38085. <method name="dump" c:identifier="gst_toc_dump">
  38086. <return-value transfer-ownership="none">
  38087. <type name="none" c:type="void"/>
  38088. </return-value>
  38089. <parameters>
  38090. <instance-parameter name="toc" transfer-ownership="none">
  38091. <type name="Toc" c:type="GstToc*"/>
  38092. </instance-parameter>
  38093. </parameters>
  38094. </method>
  38095. <method name="find_entry" c:identifier="gst_toc_find_entry">
  38096. <doc xml:space="preserve">Find #GstTocEntry with given @uid in the @toc.</doc>
  38097. <return-value transfer-ownership="none" nullable="1">
  38098. <doc xml:space="preserve">#GstTocEntry with specified
  38099. @uid from the @toc, or %NULL if not found.</doc>
  38100. <type name="TocEntry" c:type="GstTocEntry*"/>
  38101. </return-value>
  38102. <parameters>
  38103. <instance-parameter name="toc" transfer-ownership="none">
  38104. <doc xml:space="preserve">#GstToc to search in.</doc>
  38105. <type name="Toc" c:type="const GstToc*"/>
  38106. </instance-parameter>
  38107. <parameter name="uid" transfer-ownership="none">
  38108. <doc xml:space="preserve">UID to find #GstTocEntry with.</doc>
  38109. <type name="utf8" c:type="const gchar*"/>
  38110. </parameter>
  38111. </parameters>
  38112. </method>
  38113. <method name="get_entries" c:identifier="gst_toc_get_entries">
  38114. <doc xml:space="preserve">Gets the list of #GstTocEntry of @toc.</doc>
  38115. <return-value transfer-ownership="none">
  38116. <doc xml:space="preserve">A #GList of #GstTocEntry for @entry</doc>
  38117. <type name="GLib.List" c:type="GList*">
  38118. <type name="TocEntry"/>
  38119. </type>
  38120. </return-value>
  38121. <parameters>
  38122. <instance-parameter name="toc" transfer-ownership="none">
  38123. <doc xml:space="preserve">A #GstToc instance</doc>
  38124. <type name="Toc" c:type="const GstToc*"/>
  38125. </instance-parameter>
  38126. </parameters>
  38127. </method>
  38128. <method name="get_scope" c:identifier="gst_toc_get_scope">
  38129. <return-value transfer-ownership="none">
  38130. <doc xml:space="preserve">scope of @toc</doc>
  38131. <type name="TocScope" c:type="GstTocScope"/>
  38132. </return-value>
  38133. <parameters>
  38134. <instance-parameter name="toc" transfer-ownership="none">
  38135. <doc xml:space="preserve">a #GstToc instance</doc>
  38136. <type name="Toc" c:type="const GstToc*"/>
  38137. </instance-parameter>
  38138. </parameters>
  38139. </method>
  38140. <method name="get_tags" c:identifier="gst_toc_get_tags">
  38141. <doc xml:space="preserve">Gets the tags for @toc.</doc>
  38142. <return-value transfer-ownership="none">
  38143. <doc xml:space="preserve">A #GstTagList for @entry</doc>
  38144. <type name="TagList" c:type="GstTagList*"/>
  38145. </return-value>
  38146. <parameters>
  38147. <instance-parameter name="toc" transfer-ownership="none">
  38148. <doc xml:space="preserve">A #GstToc instance</doc>
  38149. <type name="Toc" c:type="const GstToc*"/>
  38150. </instance-parameter>
  38151. </parameters>
  38152. </method>
  38153. <method name="merge_tags" c:identifier="gst_toc_merge_tags">
  38154. <doc xml:space="preserve">Merge @tags into the existing tags of @toc using @mode.</doc>
  38155. <return-value transfer-ownership="none">
  38156. <type name="none" c:type="void"/>
  38157. </return-value>
  38158. <parameters>
  38159. <instance-parameter name="toc" transfer-ownership="none">
  38160. <doc xml:space="preserve">A #GstToc instance</doc>
  38161. <type name="Toc" c:type="GstToc*"/>
  38162. </instance-parameter>
  38163. <parameter name="tags"
  38164. transfer-ownership="none"
  38165. nullable="1"
  38166. allow-none="1">
  38167. <doc xml:space="preserve">A #GstTagList or %NULL</doc>
  38168. <type name="TagList" c:type="GstTagList*"/>
  38169. </parameter>
  38170. <parameter name="mode" transfer-ownership="none">
  38171. <doc xml:space="preserve">A #GstTagMergeMode</doc>
  38172. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  38173. </parameter>
  38174. </parameters>
  38175. </method>
  38176. <method name="set_tags" c:identifier="gst_toc_set_tags">
  38177. <doc xml:space="preserve">Set a #GstTagList with tags for the complete @toc.</doc>
  38178. <return-value transfer-ownership="none">
  38179. <type name="none" c:type="void"/>
  38180. </return-value>
  38181. <parameters>
  38182. <instance-parameter name="toc" transfer-ownership="none">
  38183. <doc xml:space="preserve">A #GstToc instance</doc>
  38184. <type name="Toc" c:type="GstToc*"/>
  38185. </instance-parameter>
  38186. <parameter name="tags"
  38187. transfer-ownership="full"
  38188. nullable="1"
  38189. allow-none="1">
  38190. <doc xml:space="preserve">A #GstTagList or %NULL</doc>
  38191. <type name="TagList" c:type="GstTagList*"/>
  38192. </parameter>
  38193. </parameters>
  38194. </method>
  38195. </record>
  38196. <record name="TocEntry"
  38197. c:type="GstTocEntry"
  38198. glib:type-name="GstTocEntry"
  38199. glib:get-type="gst_toc_entry_get_type"
  38200. c:symbol-prefix="toc_entry">
  38201. <constructor name="new" c:identifier="gst_toc_entry_new">
  38202. <doc xml:space="preserve">Create new #GstTocEntry structure.</doc>
  38203. <return-value transfer-ownership="full">
  38204. <doc xml:space="preserve">newly allocated #GstTocEntry structure, free it with gst_toc_entry_unref().</doc>
  38205. <type name="TocEntry" c:type="GstTocEntry*"/>
  38206. </return-value>
  38207. <parameters>
  38208. <parameter name="type" transfer-ownership="none">
  38209. <doc xml:space="preserve">entry type.</doc>
  38210. <type name="TocEntryType" c:type="GstTocEntryType"/>
  38211. </parameter>
  38212. <parameter name="uid" transfer-ownership="none">
  38213. <doc xml:space="preserve">unique ID (UID) in the whole TOC.</doc>
  38214. <type name="utf8" c:type="const gchar*"/>
  38215. </parameter>
  38216. </parameters>
  38217. </constructor>
  38218. <method name="append_sub_entry"
  38219. c:identifier="gst_toc_entry_append_sub_entry">
  38220. <doc xml:space="preserve">Appends the #GstTocEntry @subentry to @entry.</doc>
  38221. <return-value transfer-ownership="none">
  38222. <type name="none" c:type="void"/>
  38223. </return-value>
  38224. <parameters>
  38225. <instance-parameter name="entry" transfer-ownership="none">
  38226. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38227. <type name="TocEntry" c:type="GstTocEntry*"/>
  38228. </instance-parameter>
  38229. <parameter name="subentry" transfer-ownership="full">
  38230. <doc xml:space="preserve">A #GstTocEntry</doc>
  38231. <type name="TocEntry" c:type="GstTocEntry*"/>
  38232. </parameter>
  38233. </parameters>
  38234. </method>
  38235. <method name="get_entry_type"
  38236. c:identifier="gst_toc_entry_get_entry_type">
  38237. <return-value transfer-ownership="none">
  38238. <doc xml:space="preserve">@entry's entry type</doc>
  38239. <type name="TocEntryType" c:type="GstTocEntryType"/>
  38240. </return-value>
  38241. <parameters>
  38242. <instance-parameter name="entry" transfer-ownership="none">
  38243. <doc xml:space="preserve">a #GstTocEntry</doc>
  38244. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38245. </instance-parameter>
  38246. </parameters>
  38247. </method>
  38248. <method name="get_loop"
  38249. c:identifier="gst_toc_entry_get_loop"
  38250. version="1.4">
  38251. <doc xml:space="preserve">Get @loop_type and @repeat_count values from the @entry and write them into
  38252. appropriate storages. Loops are e.g. used by sampled instruments. GStreamer
  38253. is not automatically applying the loop. The application can process this
  38254. meta data and use it e.g. to send a seek-event to loop a section.</doc>
  38255. <return-value transfer-ownership="none">
  38256. <doc xml:space="preserve">%TRUE if all non-%NULL storage pointers were filled with appropriate
  38257. values, %FALSE otherwise.</doc>
  38258. <type name="gboolean" c:type="gboolean"/>
  38259. </return-value>
  38260. <parameters>
  38261. <instance-parameter name="entry" transfer-ownership="none">
  38262. <doc xml:space="preserve">#GstTocEntry to get values from.</doc>
  38263. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38264. </instance-parameter>
  38265. <parameter name="loop_type"
  38266. direction="out"
  38267. caller-allocates="0"
  38268. transfer-ownership="full"
  38269. optional="1"
  38270. allow-none="1">
  38271. <doc xml:space="preserve">the storage for the loop_type
  38272. value, leave %NULL if not need.</doc>
  38273. <type name="TocLoopType" c:type="GstTocLoopType*"/>
  38274. </parameter>
  38275. <parameter name="repeat_count"
  38276. direction="out"
  38277. caller-allocates="0"
  38278. transfer-ownership="full"
  38279. optional="1"
  38280. allow-none="1">
  38281. <doc xml:space="preserve">the storage for the repeat_count
  38282. value, leave %NULL if not need.</doc>
  38283. <type name="gint" c:type="gint*"/>
  38284. </parameter>
  38285. </parameters>
  38286. </method>
  38287. <method name="get_parent" c:identifier="gst_toc_entry_get_parent">
  38288. <doc xml:space="preserve">Gets the parent #GstTocEntry of @entry.</doc>
  38289. <return-value transfer-ownership="none">
  38290. <doc xml:space="preserve">The parent #GstTocEntry of @entry</doc>
  38291. <type name="TocEntry" c:type="GstTocEntry*"/>
  38292. </return-value>
  38293. <parameters>
  38294. <instance-parameter name="entry" transfer-ownership="none">
  38295. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38296. <type name="TocEntry" c:type="GstTocEntry*"/>
  38297. </instance-parameter>
  38298. </parameters>
  38299. </method>
  38300. <method name="get_start_stop_times"
  38301. c:identifier="gst_toc_entry_get_start_stop_times">
  38302. <doc xml:space="preserve">Get @start and @stop values from the @entry and write them into appropriate
  38303. storages.</doc>
  38304. <return-value transfer-ownership="none">
  38305. <doc xml:space="preserve">%TRUE if all non-%NULL storage pointers were filled with appropriate
  38306. values, %FALSE otherwise.</doc>
  38307. <type name="gboolean" c:type="gboolean"/>
  38308. </return-value>
  38309. <parameters>
  38310. <instance-parameter name="entry" transfer-ownership="none">
  38311. <doc xml:space="preserve">#GstTocEntry to get values from.</doc>
  38312. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38313. </instance-parameter>
  38314. <parameter name="start"
  38315. direction="out"
  38316. caller-allocates="0"
  38317. transfer-ownership="full"
  38318. optional="1"
  38319. allow-none="1">
  38320. <doc xml:space="preserve">the storage for the start value, leave
  38321. %NULL if not need.</doc>
  38322. <type name="gint64" c:type="gint64*"/>
  38323. </parameter>
  38324. <parameter name="stop"
  38325. direction="out"
  38326. caller-allocates="0"
  38327. transfer-ownership="full"
  38328. optional="1"
  38329. allow-none="1">
  38330. <doc xml:space="preserve">the storage for the stop value, leave
  38331. %NULL if not need.</doc>
  38332. <type name="gint64" c:type="gint64*"/>
  38333. </parameter>
  38334. </parameters>
  38335. </method>
  38336. <method name="get_sub_entries"
  38337. c:identifier="gst_toc_entry_get_sub_entries">
  38338. <doc xml:space="preserve">Gets the sub-entries of @entry.</doc>
  38339. <return-value transfer-ownership="none">
  38340. <doc xml:space="preserve">A #GList of #GstTocEntry of @entry</doc>
  38341. <type name="GLib.List" c:type="GList*">
  38342. <type name="TocEntry"/>
  38343. </type>
  38344. </return-value>
  38345. <parameters>
  38346. <instance-parameter name="entry" transfer-ownership="none">
  38347. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38348. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38349. </instance-parameter>
  38350. </parameters>
  38351. </method>
  38352. <method name="get_tags" c:identifier="gst_toc_entry_get_tags">
  38353. <doc xml:space="preserve">Gets the tags for @entry.</doc>
  38354. <return-value transfer-ownership="none">
  38355. <doc xml:space="preserve">A #GstTagList for @entry</doc>
  38356. <type name="TagList" c:type="GstTagList*"/>
  38357. </return-value>
  38358. <parameters>
  38359. <instance-parameter name="entry" transfer-ownership="none">
  38360. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38361. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38362. </instance-parameter>
  38363. </parameters>
  38364. </method>
  38365. <method name="get_toc" c:identifier="gst_toc_entry_get_toc">
  38366. <doc xml:space="preserve">Gets the parent #GstToc of @entry.</doc>
  38367. <return-value transfer-ownership="none">
  38368. <doc xml:space="preserve">The parent #GstToc of @entry</doc>
  38369. <type name="Toc" c:type="GstToc*"/>
  38370. </return-value>
  38371. <parameters>
  38372. <instance-parameter name="entry" transfer-ownership="none">
  38373. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38374. <type name="TocEntry" c:type="GstTocEntry*"/>
  38375. </instance-parameter>
  38376. </parameters>
  38377. </method>
  38378. <method name="get_uid" c:identifier="gst_toc_entry_get_uid">
  38379. <doc xml:space="preserve">Gets the UID of @entry.</doc>
  38380. <return-value transfer-ownership="none">
  38381. <doc xml:space="preserve">The UID of @entry</doc>
  38382. <type name="utf8" c:type="const gchar*"/>
  38383. </return-value>
  38384. <parameters>
  38385. <instance-parameter name="entry" transfer-ownership="none">
  38386. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38387. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38388. </instance-parameter>
  38389. </parameters>
  38390. </method>
  38391. <method name="is_alternative"
  38392. c:identifier="gst_toc_entry_is_alternative">
  38393. <return-value transfer-ownership="none">
  38394. <doc xml:space="preserve">%TRUE if @entry's type is an alternative type, otherwise %FALSE</doc>
  38395. <type name="gboolean" c:type="gboolean"/>
  38396. </return-value>
  38397. <parameters>
  38398. <instance-parameter name="entry" transfer-ownership="none">
  38399. <doc xml:space="preserve">a #GstTocEntry</doc>
  38400. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38401. </instance-parameter>
  38402. </parameters>
  38403. </method>
  38404. <method name="is_sequence" c:identifier="gst_toc_entry_is_sequence">
  38405. <return-value transfer-ownership="none">
  38406. <doc xml:space="preserve">%TRUE if @entry's type is a sequence type, otherwise %FALSE</doc>
  38407. <type name="gboolean" c:type="gboolean"/>
  38408. </return-value>
  38409. <parameters>
  38410. <instance-parameter name="entry" transfer-ownership="none">
  38411. <doc xml:space="preserve">a #GstTocEntry</doc>
  38412. <type name="TocEntry" c:type="const GstTocEntry*"/>
  38413. </instance-parameter>
  38414. </parameters>
  38415. </method>
  38416. <method name="merge_tags" c:identifier="gst_toc_entry_merge_tags">
  38417. <doc xml:space="preserve">Merge @tags into the existing tags of @entry using @mode.</doc>
  38418. <return-value transfer-ownership="none">
  38419. <type name="none" c:type="void"/>
  38420. </return-value>
  38421. <parameters>
  38422. <instance-parameter name="entry" transfer-ownership="none">
  38423. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38424. <type name="TocEntry" c:type="GstTocEntry*"/>
  38425. </instance-parameter>
  38426. <parameter name="tags"
  38427. transfer-ownership="none"
  38428. nullable="1"
  38429. allow-none="1">
  38430. <doc xml:space="preserve">A #GstTagList or %NULL</doc>
  38431. <type name="TagList" c:type="GstTagList*"/>
  38432. </parameter>
  38433. <parameter name="mode" transfer-ownership="none">
  38434. <doc xml:space="preserve">A #GstTagMergeMode</doc>
  38435. <type name="TagMergeMode" c:type="GstTagMergeMode"/>
  38436. </parameter>
  38437. </parameters>
  38438. </method>
  38439. <method name="set_loop"
  38440. c:identifier="gst_toc_entry_set_loop"
  38441. version="1.4">
  38442. <doc xml:space="preserve">Set @loop_type and @repeat_count values for the @entry.</doc>
  38443. <return-value transfer-ownership="none">
  38444. <type name="none" c:type="void"/>
  38445. </return-value>
  38446. <parameters>
  38447. <instance-parameter name="entry" transfer-ownership="none">
  38448. <doc xml:space="preserve">#GstTocEntry to set values.</doc>
  38449. <type name="TocEntry" c:type="GstTocEntry*"/>
  38450. </instance-parameter>
  38451. <parameter name="loop_type" transfer-ownership="none">
  38452. <doc xml:space="preserve">loop_type value to set.</doc>
  38453. <type name="TocLoopType" c:type="GstTocLoopType"/>
  38454. </parameter>
  38455. <parameter name="repeat_count" transfer-ownership="none">
  38456. <doc xml:space="preserve">repeat_count value to set.</doc>
  38457. <type name="gint" c:type="gint"/>
  38458. </parameter>
  38459. </parameters>
  38460. </method>
  38461. <method name="set_start_stop_times"
  38462. c:identifier="gst_toc_entry_set_start_stop_times">
  38463. <doc xml:space="preserve">Set @start and @stop values for the @entry.</doc>
  38464. <return-value transfer-ownership="none">
  38465. <type name="none" c:type="void"/>
  38466. </return-value>
  38467. <parameters>
  38468. <instance-parameter name="entry" transfer-ownership="none">
  38469. <doc xml:space="preserve">#GstTocEntry to set values.</doc>
  38470. <type name="TocEntry" c:type="GstTocEntry*"/>
  38471. </instance-parameter>
  38472. <parameter name="start" transfer-ownership="none">
  38473. <doc xml:space="preserve">start value to set.</doc>
  38474. <type name="gint64" c:type="gint64"/>
  38475. </parameter>
  38476. <parameter name="stop" transfer-ownership="none">
  38477. <doc xml:space="preserve">stop value to set.</doc>
  38478. <type name="gint64" c:type="gint64"/>
  38479. </parameter>
  38480. </parameters>
  38481. </method>
  38482. <method name="set_tags" c:identifier="gst_toc_entry_set_tags">
  38483. <doc xml:space="preserve">Set a #GstTagList with tags for the complete @entry.</doc>
  38484. <return-value transfer-ownership="none">
  38485. <type name="none" c:type="void"/>
  38486. </return-value>
  38487. <parameters>
  38488. <instance-parameter name="entry" transfer-ownership="none">
  38489. <doc xml:space="preserve">A #GstTocEntry instance</doc>
  38490. <type name="TocEntry" c:type="GstTocEntry*"/>
  38491. </instance-parameter>
  38492. <parameter name="tags"
  38493. transfer-ownership="full"
  38494. nullable="1"
  38495. allow-none="1">
  38496. <doc xml:space="preserve">A #GstTagList or %NULL</doc>
  38497. <type name="TagList" c:type="GstTagList*"/>
  38498. </parameter>
  38499. </parameters>
  38500. </method>
  38501. </record>
  38502. <enumeration name="TocEntryType"
  38503. glib:type-name="GstTocEntryType"
  38504. glib:get-type="gst_toc_entry_type_get_type"
  38505. c:type="GstTocEntryType">
  38506. <doc xml:space="preserve">The different types of TOC entries (see #GstTocEntry).
  38507. There are two types of TOC entries: alternatives or parts in a sequence.</doc>
  38508. <member name="angle"
  38509. value="-3"
  38510. c:identifier="GST_TOC_ENTRY_TYPE_ANGLE"
  38511. glib:nick="angle">
  38512. <doc xml:space="preserve">entry is an angle (i.e. an alternative)</doc>
  38513. </member>
  38514. <member name="version"
  38515. value="-2"
  38516. c:identifier="GST_TOC_ENTRY_TYPE_VERSION"
  38517. glib:nick="version">
  38518. <doc xml:space="preserve">entry is a version (i.e. alternative)</doc>
  38519. </member>
  38520. <member name="edition"
  38521. value="-1"
  38522. c:identifier="GST_TOC_ENTRY_TYPE_EDITION"
  38523. glib:nick="edition">
  38524. <doc xml:space="preserve">entry is an edition (i.e. alternative)</doc>
  38525. </member>
  38526. <member name="invalid"
  38527. value="0"
  38528. c:identifier="GST_TOC_ENTRY_TYPE_INVALID"
  38529. glib:nick="invalid">
  38530. <doc xml:space="preserve">invalid entry type value</doc>
  38531. </member>
  38532. <member name="title"
  38533. value="1"
  38534. c:identifier="GST_TOC_ENTRY_TYPE_TITLE"
  38535. glib:nick="title">
  38536. <doc xml:space="preserve">entry is a title (i.e. a part of a sequence)</doc>
  38537. </member>
  38538. <member name="track"
  38539. value="2"
  38540. c:identifier="GST_TOC_ENTRY_TYPE_TRACK"
  38541. glib:nick="track">
  38542. <doc xml:space="preserve">entry is a track (i.e. a part of a sequence)</doc>
  38543. </member>
  38544. <member name="chapter"
  38545. value="3"
  38546. c:identifier="GST_TOC_ENTRY_TYPE_CHAPTER"
  38547. glib:nick="chapter">
  38548. <doc xml:space="preserve">entry is a chapter (i.e. a part of a sequence)</doc>
  38549. </member>
  38550. <function name="get_nick" c:identifier="gst_toc_entry_type_get_nick">
  38551. <doc xml:space="preserve">Converts @type to a string representation.</doc>
  38552. <return-value transfer-ownership="none">
  38553. <doc xml:space="preserve">Returns a human-readable string for @type. This string is
  38554. only for debugging purpose and should not be displayed in a user
  38555. interface.</doc>
  38556. <type name="utf8" c:type="const gchar*"/>
  38557. </return-value>
  38558. <parameters>
  38559. <parameter name="type" transfer-ownership="none">
  38560. <doc xml:space="preserve">a #GstTocEntryType.</doc>
  38561. <type name="TocEntryType" c:type="GstTocEntryType"/>
  38562. </parameter>
  38563. </parameters>
  38564. </function>
  38565. </enumeration>
  38566. <enumeration name="TocLoopType"
  38567. version="1.4"
  38568. glib:type-name="GstTocLoopType"
  38569. glib:get-type="gst_toc_loop_type_get_type"
  38570. c:type="GstTocLoopType">
  38571. <doc xml:space="preserve">How a #GstTocEntry should be repeated. By default, entries are played a
  38572. single time.</doc>
  38573. <member name="none"
  38574. value="0"
  38575. c:identifier="GST_TOC_LOOP_NONE"
  38576. glib:nick="none">
  38577. <doc xml:space="preserve">single forward playback</doc>
  38578. </member>
  38579. <member name="forward"
  38580. value="1"
  38581. c:identifier="GST_TOC_LOOP_FORWARD"
  38582. glib:nick="forward">
  38583. <doc xml:space="preserve">repeat forward</doc>
  38584. </member>
  38585. <member name="reverse"
  38586. value="2"
  38587. c:identifier="GST_TOC_LOOP_REVERSE"
  38588. glib:nick="reverse">
  38589. <doc xml:space="preserve">repeat backward</doc>
  38590. </member>
  38591. <member name="ping_pong"
  38592. value="3"
  38593. c:identifier="GST_TOC_LOOP_PING_PONG"
  38594. glib:nick="ping-pong">
  38595. <doc xml:space="preserve">repeat forward and backward</doc>
  38596. </member>
  38597. </enumeration>
  38598. <enumeration name="TocScope"
  38599. glib:type-name="GstTocScope"
  38600. glib:get-type="gst_toc_scope_get_type"
  38601. c:type="GstTocScope">
  38602. <doc xml:space="preserve">The scope of a TOC.</doc>
  38603. <member name="global"
  38604. value="1"
  38605. c:identifier="GST_TOC_SCOPE_GLOBAL"
  38606. glib:nick="global">
  38607. <doc xml:space="preserve">global TOC representing all selectable options
  38608. (this is what applications are usually interested in)</doc>
  38609. </member>
  38610. <member name="current"
  38611. value="2"
  38612. c:identifier="GST_TOC_SCOPE_CURRENT"
  38613. glib:nick="current">
  38614. <doc xml:space="preserve">TOC for the currently active/selected stream
  38615. (this is a TOC representing the current stream from start to EOS,
  38616. and is what a TOC writer / muxer is usually interested in; it will
  38617. usually be a subset of the global TOC, e.g. just the chapters of
  38618. the current title, or the chapters selected for playback from the
  38619. current title)</doc>
  38620. </member>
  38621. </enumeration>
  38622. <interface name="TocSetter"
  38623. c:symbol-prefix="toc_setter"
  38624. c:type="GstTocSetter"
  38625. glib:type-name="GstTocSetter"
  38626. glib:get-type="gst_toc_setter_get_type"
  38627. glib:type-struct="TocSetterInterface">
  38628. <doc xml:space="preserve">Element interface that allows setting of the TOC.
  38629. Elements that support some kind of chapters or editions (or tracks like in
  38630. the FLAC cue sheet) will implement this interface.
  38631. If you just want to retrieve the TOC in your application then all you
  38632. need to do is watch for TOC messages on your pipeline's bus (or you can
  38633. perform TOC query). This interface is only for setting TOC data, not for
  38634. extracting it. To set TOC from the application, find proper tocsetter element
  38635. and set TOC using gst_toc_setter_set_toc().
  38636. Elements implementing the #GstTocSetter interface can extend existing TOC
  38637. by getting extend UID for that (you can use gst_toc_find_entry() to retrieve it)
  38638. with any TOC entries received from downstream.</doc>
  38639. <prerequisite name="Element"/>
  38640. <method name="get_toc" c:identifier="gst_toc_setter_get_toc">
  38641. <doc xml:space="preserve">Return current TOC the setter uses. The TOC should not be
  38642. modified without making it writable first.</doc>
  38643. <return-value transfer-ownership="full" nullable="1">
  38644. <doc xml:space="preserve">TOC set, or %NULL. Unref with
  38645. gst_toc_unref() when no longer needed</doc>
  38646. <type name="Toc" c:type="GstToc*"/>
  38647. </return-value>
  38648. <parameters>
  38649. <instance-parameter name="setter" transfer-ownership="none">
  38650. <doc xml:space="preserve">a #GstTocSetter.</doc>
  38651. <type name="TocSetter" c:type="GstTocSetter*"/>
  38652. </instance-parameter>
  38653. </parameters>
  38654. </method>
  38655. <method name="reset" c:identifier="gst_toc_setter_reset">
  38656. <doc xml:space="preserve">Reset the internal TOC. Elements should call this from within the
  38657. state-change handler.</doc>
  38658. <return-value transfer-ownership="none">
  38659. <type name="none" c:type="void"/>
  38660. </return-value>
  38661. <parameters>
  38662. <instance-parameter name="setter" transfer-ownership="none">
  38663. <doc xml:space="preserve">a #GstTocSetter.</doc>
  38664. <type name="TocSetter" c:type="GstTocSetter*"/>
  38665. </instance-parameter>
  38666. </parameters>
  38667. </method>
  38668. <method name="set_toc" c:identifier="gst_toc_setter_set_toc">
  38669. <doc xml:space="preserve">Set the given TOC on the setter. Previously set TOC will be
  38670. unreffed before setting a new one.</doc>
  38671. <return-value transfer-ownership="none">
  38672. <type name="none" c:type="void"/>
  38673. </return-value>
  38674. <parameters>
  38675. <instance-parameter name="setter" transfer-ownership="none">
  38676. <doc xml:space="preserve">a #GstTocSetter.</doc>
  38677. <type name="TocSetter" c:type="GstTocSetter*"/>
  38678. </instance-parameter>
  38679. <parameter name="toc"
  38680. transfer-ownership="none"
  38681. nullable="1"
  38682. allow-none="1">
  38683. <doc xml:space="preserve">a #GstToc to set.</doc>
  38684. <type name="Toc" c:type="GstToc*"/>
  38685. </parameter>
  38686. </parameters>
  38687. </method>
  38688. </interface>
  38689. <record name="TocSetterInterface"
  38690. c:type="GstTocSetterInterface"
  38691. glib:is-gtype-struct-for="TocSetter">
  38692. <doc xml:space="preserve">#GstTocSetterInterface interface.</doc>
  38693. <field name="g_iface">
  38694. <doc xml:space="preserve">parent interface type.</doc>
  38695. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  38696. </field>
  38697. </record>
  38698. <class name="Tracer"
  38699. c:symbol-prefix="tracer"
  38700. c:type="GstTracer"
  38701. parent="Object"
  38702. abstract="1"
  38703. glib:type-name="GstTracer"
  38704. glib:get-type="gst_tracer_get_type"
  38705. glib:type-struct="TracerClass">
  38706. <doc xml:space="preserve">Tracing modules will subclass #GstTracer and register through
  38707. gst_tracing_register(). Modules can attach to various hook-types - see
  38708. gst_tracing_register_hook(). When invoked they receive hook specific
  38709. contextual data, which they must not modify.</doc>
  38710. <property name="params"
  38711. writable="1"
  38712. construct="1"
  38713. transfer-ownership="none">
  38714. <type name="utf8" c:type="gchar*"/>
  38715. </property>
  38716. <field name="parent">
  38717. <type name="Object" c:type="GstObject"/>
  38718. </field>
  38719. <field name="priv" readable="0" private="1">
  38720. <type name="TracerPrivate" c:type="GstTracerPrivate*"/>
  38721. </field>
  38722. <field name="_gst_reserved" readable="0" private="1">
  38723. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  38724. <type name="gpointer" c:type="gpointer"/>
  38725. </array>
  38726. </field>
  38727. </class>
  38728. <record name="TracerClass"
  38729. c:type="GstTracerClass"
  38730. glib:is-gtype-struct-for="Tracer">
  38731. <field name="parent_class">
  38732. <type name="ObjectClass" c:type="GstObjectClass"/>
  38733. </field>
  38734. <field name="_gst_reserved" readable="0" private="1">
  38735. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  38736. <type name="gpointer" c:type="gpointer"/>
  38737. </array>
  38738. </field>
  38739. </record>
  38740. <class name="TracerFactory"
  38741. c:symbol-prefix="tracer_factory"
  38742. c:type="GstTracerFactory"
  38743. version="1.8"
  38744. parent="PluginFeature"
  38745. glib:type-name="GstTracerFactory"
  38746. glib:get-type="gst_tracer_factory_get_type"
  38747. glib:type-struct="TracerFactoryClass">
  38748. <doc xml:space="preserve">Use gst_tracer_factory_get_list() to get a list of tracer factories known to
  38749. GStreamer.</doc>
  38750. <function name="get_list"
  38751. c:identifier="gst_tracer_factory_get_list"
  38752. version="1.8">
  38753. <doc xml:space="preserve">Gets the list of all registered tracer factories. You must free the
  38754. list using gst_plugin_feature_list_free().
  38755. The returned factories are sorted by factory name.
  38756. Free-function: gst_plugin_feature_list_free</doc>
  38757. <return-value transfer-ownership="full">
  38758. <doc xml:space="preserve">the list of all
  38759. registered #GstTracerFactory.</doc>
  38760. <type name="GLib.List" c:type="GList*">
  38761. <type name="TracerFactory"/>
  38762. </type>
  38763. </return-value>
  38764. </function>
  38765. </class>
  38766. <record name="TracerFactoryClass"
  38767. c:type="GstTracerFactoryClass"
  38768. disguised="1"
  38769. glib:is-gtype-struct-for="TracerFactory">
  38770. </record>
  38771. <record name="TracerPrivate" c:type="GstTracerPrivate" disguised="1">
  38772. </record>
  38773. <class name="TracerRecord"
  38774. c:symbol-prefix="tracer_record"
  38775. c:type="GstTracerRecord"
  38776. parent="Object"
  38777. glib:type-name="GstTracerRecord"
  38778. glib:get-type="gst_tracer_record_get_type"
  38779. glib:type-struct="TracerRecordClass">
  38780. <doc xml:space="preserve">Tracing modules will create instances of this class to announce the data they
  38781. will log and create a log formatter.</doc>
  38782. </class>
  38783. <record name="TracerRecordClass"
  38784. c:type="GstTracerRecordClass"
  38785. disguised="1"
  38786. glib:is-gtype-struct-for="TracerRecord">
  38787. </record>
  38788. <bitfield name="TracerValueFlags"
  38789. glib:type-name="GstTracerValueFlags"
  38790. glib:get-type="gst_tracer_value_flags_get_type"
  38791. c:type="GstTracerValueFlags">
  38792. <doc xml:space="preserve">Flag that describe the value. These flags help applications processing the
  38793. logs to understand the values.</doc>
  38794. <member name="none"
  38795. value="0"
  38796. c:identifier="GST_TRACER_VALUE_FLAGS_NONE"
  38797. glib:nick="none">
  38798. <doc xml:space="preserve">no flags</doc>
  38799. </member>
  38800. <member name="optional"
  38801. value="1"
  38802. c:identifier="GST_TRACER_VALUE_FLAGS_OPTIONAL"
  38803. glib:nick="optional">
  38804. <doc xml:space="preserve">the value is optional. When using this flag
  38805. one need to have an additional boolean arg before this value in the
  38806. var-args list passed to gst_tracer_record_log().</doc>
  38807. </member>
  38808. <member name="aggregated"
  38809. value="2"
  38810. c:identifier="GST_TRACER_VALUE_FLAGS_AGGREGATED"
  38811. glib:nick="aggregated">
  38812. <doc xml:space="preserve">the value is combined since the start of
  38813. tracing</doc>
  38814. </member>
  38815. </bitfield>
  38816. <enumeration name="TracerValueScope"
  38817. version="1.8"
  38818. glib:type-name="GstTracerValueScope"
  38819. glib:get-type="gst_tracer_value_scope_get_type"
  38820. c:type="GstTracerValueScope">
  38821. <doc xml:space="preserve">Tracing record will contain fields that contain a meassured value or extra
  38822. meta-data. One such meta data are values that tell where a measurement was
  38823. taken. This enumerating declares to which scope such a meta data field
  38824. relates to. If it is e.g. %GST_TRACER_VALUE_SCOPE_PAD, then each of the log
  38825. events may contain values for different #GstPads.</doc>
  38826. <member name="process"
  38827. value="0"
  38828. c:identifier="GST_TRACER_VALUE_SCOPE_PROCESS"
  38829. glib:nick="process">
  38830. <doc xml:space="preserve">the value is related to the process</doc>
  38831. </member>
  38832. <member name="thread"
  38833. value="1"
  38834. c:identifier="GST_TRACER_VALUE_SCOPE_THREAD"
  38835. glib:nick="thread">
  38836. <doc xml:space="preserve">the value is related to a thread</doc>
  38837. </member>
  38838. <member name="element"
  38839. value="2"
  38840. c:identifier="GST_TRACER_VALUE_SCOPE_ELEMENT"
  38841. glib:nick="element">
  38842. <doc xml:space="preserve">the value is related to an #GstElement</doc>
  38843. </member>
  38844. <member name="pad"
  38845. value="3"
  38846. c:identifier="GST_TRACER_VALUE_SCOPE_PAD"
  38847. glib:nick="pad">
  38848. <doc xml:space="preserve">the value is related to a #GstPad</doc>
  38849. </member>
  38850. </enumeration>
  38851. <record name="TypeFind" c:type="GstTypeFind">
  38852. <doc xml:space="preserve">The following functions allow you to detect the media type of an unknown
  38853. stream.</doc>
  38854. <field name="peek">
  38855. <callback name="peek">
  38856. <return-value transfer-ownership="none">
  38857. <type name="guint8" c:type="const guint8*"/>
  38858. </return-value>
  38859. <parameters>
  38860. <parameter name="data" transfer-ownership="none">
  38861. <type name="gpointer" c:type="gpointer"/>
  38862. </parameter>
  38863. <parameter name="offset" transfer-ownership="none">
  38864. <type name="gint64" c:type="gint64"/>
  38865. </parameter>
  38866. <parameter name="size" transfer-ownership="none">
  38867. <type name="guint" c:type="guint"/>
  38868. </parameter>
  38869. </parameters>
  38870. </callback>
  38871. </field>
  38872. <field name="suggest">
  38873. <callback name="suggest">
  38874. <return-value transfer-ownership="none">
  38875. <type name="none" c:type="void"/>
  38876. </return-value>
  38877. <parameters>
  38878. <parameter name="data" transfer-ownership="none">
  38879. <type name="gpointer" c:type="gpointer"/>
  38880. </parameter>
  38881. <parameter name="probability" transfer-ownership="none">
  38882. <type name="guint" c:type="guint"/>
  38883. </parameter>
  38884. <parameter name="caps" transfer-ownership="none">
  38885. <type name="Caps" c:type="GstCaps*"/>
  38886. </parameter>
  38887. </parameters>
  38888. </callback>
  38889. </field>
  38890. <field name="data" writable="1">
  38891. <doc xml:space="preserve">The data used by the caller of the typefinding function.</doc>
  38892. <type name="gpointer" c:type="gpointer"/>
  38893. </field>
  38894. <field name="get_length">
  38895. <callback name="get_length">
  38896. <return-value transfer-ownership="none">
  38897. <type name="guint64" c:type="guint64"/>
  38898. </return-value>
  38899. <parameters>
  38900. <parameter name="data" transfer-ownership="none">
  38901. <type name="gpointer" c:type="gpointer"/>
  38902. </parameter>
  38903. </parameters>
  38904. </callback>
  38905. </field>
  38906. <field name="_gst_reserved" readable="0" private="1">
  38907. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  38908. <type name="gpointer" c:type="gpointer"/>
  38909. </array>
  38910. </field>
  38911. <method name="get_length" c:identifier="gst_type_find_get_length">
  38912. <doc xml:space="preserve">Get the length of the data stream.</doc>
  38913. <return-value transfer-ownership="none">
  38914. <doc xml:space="preserve">The length of the data stream, or 0 if it is not available.</doc>
  38915. <type name="guint64" c:type="guint64"/>
  38916. </return-value>
  38917. <parameters>
  38918. <instance-parameter name="find" transfer-ownership="none">
  38919. <doc xml:space="preserve">The #GstTypeFind the function was called with</doc>
  38920. <type name="TypeFind" c:type="GstTypeFind*"/>
  38921. </instance-parameter>
  38922. </parameters>
  38923. </method>
  38924. <method name="peek" c:identifier="gst_type_find_peek">
  38925. <doc xml:space="preserve">Returns the @size bytes of the stream to identify beginning at offset. If
  38926. offset is a positive number, the offset is relative to the beginning of the
  38927. stream, if offset is a negative number the offset is relative to the end of
  38928. the stream. The returned memory is valid until the typefinding function
  38929. returns and must not be freed.</doc>
  38930. <return-value transfer-ownership="none" nullable="1">
  38931. <doc xml:space="preserve">the
  38932. requested data, or %NULL if that data is not available.</doc>
  38933. <array length="1" zero-terminated="0" c:type="guint8*">
  38934. <type name="guint8" c:type="guint8"/>
  38935. </array>
  38936. </return-value>
  38937. <parameters>
  38938. <instance-parameter name="find" transfer-ownership="none">
  38939. <doc xml:space="preserve">The #GstTypeFind object the function was called with</doc>
  38940. <type name="TypeFind" c:type="GstTypeFind*"/>
  38941. </instance-parameter>
  38942. <parameter name="offset" transfer-ownership="none">
  38943. <doc xml:space="preserve">The offset</doc>
  38944. <type name="gint64" c:type="gint64"/>
  38945. </parameter>
  38946. <parameter name="size"
  38947. direction="out"
  38948. caller-allocates="0"
  38949. transfer-ownership="full">
  38950. <doc xml:space="preserve">The number of bytes to return</doc>
  38951. <type name="guint" c:type="guint"/>
  38952. </parameter>
  38953. </parameters>
  38954. </method>
  38955. <method name="suggest" c:identifier="gst_type_find_suggest">
  38956. <doc xml:space="preserve">If a #GstTypeFindFunction calls this function it suggests the caps with the
  38957. given probability. A #GstTypeFindFunction may supply different suggestions
  38958. in one call.
  38959. It is up to the caller of the #GstTypeFindFunction to interpret these values.</doc>
  38960. <return-value transfer-ownership="none">
  38961. <type name="none" c:type="void"/>
  38962. </return-value>
  38963. <parameters>
  38964. <instance-parameter name="find" transfer-ownership="none">
  38965. <doc xml:space="preserve">The #GstTypeFind object the function was called with</doc>
  38966. <type name="TypeFind" c:type="GstTypeFind*"/>
  38967. </instance-parameter>
  38968. <parameter name="probability" transfer-ownership="none">
  38969. <doc xml:space="preserve">The probability in percent that the suggestion is right</doc>
  38970. <type name="guint" c:type="guint"/>
  38971. </parameter>
  38972. <parameter name="caps" transfer-ownership="none">
  38973. <doc xml:space="preserve">The fixed #GstCaps to suggest</doc>
  38974. <type name="Caps" c:type="GstCaps*"/>
  38975. </parameter>
  38976. </parameters>
  38977. </method>
  38978. <method name="suggest_simple"
  38979. c:identifier="gst_type_find_suggest_simple"
  38980. introspectable="0">
  38981. <doc xml:space="preserve">If a #GstTypeFindFunction calls this function it suggests the caps with the
  38982. given probability. A #GstTypeFindFunction may supply different suggestions
  38983. in one call. It is up to the caller of the #GstTypeFindFunction to interpret
  38984. these values.
  38985. This function is similar to gst_type_find_suggest(), only that instead of
  38986. passing a #GstCaps argument you can create the caps on the fly in the same
  38987. way as you can with gst_caps_new_simple().
  38988. Make sure you terminate the list of arguments with a %NULL argument and that
  38989. the values passed have the correct type (in terms of width in bytes when
  38990. passed to the vararg function - this applies particularly to gdouble and
  38991. guint64 arguments).</doc>
  38992. <return-value transfer-ownership="none">
  38993. <type name="none" c:type="void"/>
  38994. </return-value>
  38995. <parameters>
  38996. <instance-parameter name="find" transfer-ownership="none">
  38997. <doc xml:space="preserve">The #GstTypeFind object the function was called with</doc>
  38998. <type name="TypeFind" c:type="GstTypeFind*"/>
  38999. </instance-parameter>
  39000. <parameter name="probability" transfer-ownership="none">
  39001. <doc xml:space="preserve">The probability in percent that the suggestion is right</doc>
  39002. <type name="guint" c:type="guint"/>
  39003. </parameter>
  39004. <parameter name="media_type" transfer-ownership="none">
  39005. <doc xml:space="preserve">the media type of the suggested caps</doc>
  39006. <type name="utf8" c:type="const char*"/>
  39007. </parameter>
  39008. <parameter name="fieldname"
  39009. transfer-ownership="none"
  39010. nullable="1"
  39011. allow-none="1">
  39012. <doc xml:space="preserve">first field of the suggested caps, or %NULL</doc>
  39013. <type name="utf8" c:type="const char*"/>
  39014. </parameter>
  39015. <parameter name="..." transfer-ownership="none">
  39016. <doc xml:space="preserve">additional arguments to the suggested caps in the same format as the
  39017. arguments passed to gst_structure_new() (ie. triplets of field name,
  39018. field GType and field value)</doc>
  39019. <varargs/>
  39020. </parameter>
  39021. </parameters>
  39022. </method>
  39023. <function name="register" c:identifier="gst_type_find_register">
  39024. <doc xml:space="preserve">Registers a new typefind function to be used for typefinding. After
  39025. registering this function will be available for typefinding.
  39026. This function is typically called during an element's plugin initialization.</doc>
  39027. <return-value transfer-ownership="none">
  39028. <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
  39029. <type name="gboolean" c:type="gboolean"/>
  39030. </return-value>
  39031. <parameters>
  39032. <parameter name="plugin"
  39033. transfer-ownership="none"
  39034. nullable="1"
  39035. allow-none="1">
  39036. <doc xml:space="preserve">A #GstPlugin, or %NULL for a static typefind function</doc>
  39037. <type name="Plugin" c:type="GstPlugin*"/>
  39038. </parameter>
  39039. <parameter name="name" transfer-ownership="none">
  39040. <doc xml:space="preserve">The name for registering</doc>
  39041. <type name="utf8" c:type="const gchar*"/>
  39042. </parameter>
  39043. <parameter name="rank" transfer-ownership="none">
  39044. <doc xml:space="preserve">The rank (or importance) of this typefind function</doc>
  39045. <type name="guint" c:type="guint"/>
  39046. </parameter>
  39047. <parameter name="func"
  39048. transfer-ownership="none"
  39049. scope="notified"
  39050. closure="6"
  39051. destroy="7">
  39052. <doc xml:space="preserve">The #GstTypeFindFunction to use</doc>
  39053. <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
  39054. </parameter>
  39055. <parameter name="extensions"
  39056. transfer-ownership="none"
  39057. nullable="1"
  39058. allow-none="1">
  39059. <doc xml:space="preserve">Optional comma-separated list of extensions
  39060. that could belong to this type</doc>
  39061. <type name="utf8" c:type="const gchar*"/>
  39062. </parameter>
  39063. <parameter name="possible_caps" transfer-ownership="none">
  39064. <doc xml:space="preserve">Optionally the caps that could be returned when typefinding
  39065. succeeds</doc>
  39066. <type name="Caps" c:type="GstCaps*"/>
  39067. </parameter>
  39068. <parameter name="data"
  39069. transfer-ownership="none"
  39070. nullable="1"
  39071. allow-none="1">
  39072. <doc xml:space="preserve">Optional user data. This user data must be available until the plugin
  39073. is unloaded.</doc>
  39074. <type name="gpointer" c:type="gpointer"/>
  39075. </parameter>
  39076. <parameter name="data_notify"
  39077. transfer-ownership="none"
  39078. scope="async">
  39079. <doc xml:space="preserve">a #GDestroyNotify that will be called on @data when the plugin
  39080. is unloaded.</doc>
  39081. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  39082. </parameter>
  39083. </parameters>
  39084. </function>
  39085. </record>
  39086. <class name="TypeFindFactory"
  39087. c:symbol-prefix="type_find_factory"
  39088. c:type="GstTypeFindFactory"
  39089. parent="PluginFeature"
  39090. glib:type-name="GstTypeFindFactory"
  39091. glib:get-type="gst_type_find_factory_get_type"
  39092. glib:type-struct="TypeFindFactoryClass">
  39093. <doc xml:space="preserve">These functions allow querying informations about registered typefind
  39094. functions. How to create and register these functions is described in
  39095. the section &lt;link linkend="gstreamer-Writing-typefind-functions"&gt;
  39096. "Writing typefind functions"&lt;/link&gt;.
  39097. The following example shows how to write a very simple typefinder that
  39098. identifies the given data. You can get quite a bit more complicated than
  39099. that though.
  39100. |[&lt;!-- language="C" --&gt;
  39101. typedef struct {
  39102. guint8 *data;
  39103. guint size;
  39104. guint probability;
  39105. GstCaps *data;
  39106. } MyTypeFind;
  39107. static void
  39108. my_peek (gpointer data, gint64 offset, guint size)
  39109. {
  39110. MyTypeFind *find = (MyTypeFind *) data;
  39111. if (offset &amp;gt;= 0 &amp;amp;&amp;amp; offset + size &amp;lt;= find-&gt;size) {
  39112. return find-&gt;data + offset;
  39113. }
  39114. return NULL;
  39115. }
  39116. static void
  39117. my_suggest (gpointer data, guint probability, GstCaps *caps)
  39118. {
  39119. MyTypeFind *find = (MyTypeFind *) data;
  39120. if (probability &amp;gt; find-&gt;probability) {
  39121. find-&gt;probability = probability;
  39122. gst_caps_replace (&amp;amp;find-&gt;caps, caps);
  39123. }
  39124. }
  39125. static GstCaps *
  39126. find_type (guint8 *data, guint size)
  39127. {
  39128. GList *walk, *type_list;
  39129. MyTypeFind find = {data, size, 0, NULL};
  39130. GstTypeFind gst_find = {my_peek, my_suggest, &amp;amp;find, };
  39131. walk = type_list = gst_type_find_factory_get_list ();
  39132. while (walk) {
  39133. GstTypeFindFactory *factory = GST_TYPE_FIND_FACTORY (walk-&gt;data);
  39134. walk = g_list_next (walk)
  39135. gst_type_find_factory_call_function (factory, &amp;amp;gst_find);
  39136. }
  39137. g_list_free (type_list);
  39138. return find.caps;
  39139. };
  39140. ]|</doc>
  39141. <function name="get_list" c:identifier="gst_type_find_factory_get_list">
  39142. <doc xml:space="preserve">Gets the list of all registered typefind factories. You must free the
  39143. list using gst_plugin_feature_list_free().
  39144. The returned factories are sorted by highest rank first, and then by
  39145. factory name.
  39146. Free-function: gst_plugin_feature_list_free</doc>
  39147. <return-value transfer-ownership="full">
  39148. <doc xml:space="preserve">the list of all
  39149. registered #GstTypeFindFactory.</doc>
  39150. <type name="GLib.List" c:type="GList*">
  39151. <type name="TypeFindFactory"/>
  39152. </type>
  39153. </return-value>
  39154. </function>
  39155. <method name="call_function"
  39156. c:identifier="gst_type_find_factory_call_function">
  39157. <doc xml:space="preserve">Calls the #GstTypeFindFunction associated with this factory.</doc>
  39158. <return-value transfer-ownership="none">
  39159. <type name="none" c:type="void"/>
  39160. </return-value>
  39161. <parameters>
  39162. <instance-parameter name="factory" transfer-ownership="none">
  39163. <doc xml:space="preserve">A #GstTypeFindFactory</doc>
  39164. <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
  39165. </instance-parameter>
  39166. <parameter name="find" transfer-ownership="none">
  39167. <doc xml:space="preserve">a properly setup #GstTypeFind entry. The get_data
  39168. and suggest_type members must be set.</doc>
  39169. <type name="TypeFind" c:type="GstTypeFind*"/>
  39170. </parameter>
  39171. </parameters>
  39172. </method>
  39173. <method name="get_caps" c:identifier="gst_type_find_factory_get_caps">
  39174. <doc xml:space="preserve">Gets the #GstCaps associated with a typefind factory.</doc>
  39175. <return-value transfer-ownership="none">
  39176. <doc xml:space="preserve">the #GstCaps associated with this factory</doc>
  39177. <type name="Caps" c:type="GstCaps*"/>
  39178. </return-value>
  39179. <parameters>
  39180. <instance-parameter name="factory" transfer-ownership="none">
  39181. <doc xml:space="preserve">A #GstTypeFindFactory</doc>
  39182. <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
  39183. </instance-parameter>
  39184. </parameters>
  39185. </method>
  39186. <method name="get_extensions"
  39187. c:identifier="gst_type_find_factory_get_extensions">
  39188. <doc xml:space="preserve">Gets the extensions associated with a #GstTypeFindFactory. The returned
  39189. array should not be changed. If you need to change stuff in it, you should
  39190. copy it using g_strdupv(). This function may return %NULL to indicate
  39191. a 0-length list.</doc>
  39192. <return-value transfer-ownership="none" nullable="1">
  39193. <doc xml:space="preserve">
  39194. a %NULL-terminated array of extensions associated with this factory</doc>
  39195. <array c:type="gchar**">
  39196. <type name="utf8"/>
  39197. </array>
  39198. </return-value>
  39199. <parameters>
  39200. <instance-parameter name="factory" transfer-ownership="none">
  39201. <doc xml:space="preserve">A #GstTypeFindFactory</doc>
  39202. <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
  39203. </instance-parameter>
  39204. </parameters>
  39205. </method>
  39206. <method name="has_function"
  39207. c:identifier="gst_type_find_factory_has_function">
  39208. <doc xml:space="preserve">Check whether the factory has a typefind function. Typefind factories
  39209. without typefind functions are a last-effort fallback mechanism to
  39210. e.g. assume a certain media type based on the file extension.</doc>
  39211. <return-value transfer-ownership="none">
  39212. <doc xml:space="preserve">%TRUE if the factory has a typefind functions set, otherwise %FALSE</doc>
  39213. <type name="gboolean" c:type="gboolean"/>
  39214. </return-value>
  39215. <parameters>
  39216. <instance-parameter name="factory" transfer-ownership="none">
  39217. <doc xml:space="preserve">A #GstTypeFindFactory</doc>
  39218. <type name="TypeFindFactory" c:type="GstTypeFindFactory*"/>
  39219. </instance-parameter>
  39220. </parameters>
  39221. </method>
  39222. </class>
  39223. <record name="TypeFindFactoryClass"
  39224. c:type="GstTypeFindFactoryClass"
  39225. disguised="1"
  39226. glib:is-gtype-struct-for="TypeFindFactory">
  39227. </record>
  39228. <callback name="TypeFindFunction" c:type="GstTypeFindFunction">
  39229. <doc xml:space="preserve">A function that will be called by typefinding.</doc>
  39230. <return-value transfer-ownership="none">
  39231. <type name="none" c:type="void"/>
  39232. </return-value>
  39233. <parameters>
  39234. <parameter name="find" transfer-ownership="none">
  39235. <doc xml:space="preserve">A #GstTypeFind structure</doc>
  39236. <type name="TypeFind" c:type="GstTypeFind*"/>
  39237. </parameter>
  39238. <parameter name="user_data"
  39239. transfer-ownership="none"
  39240. nullable="1"
  39241. allow-none="1"
  39242. closure="1">
  39243. <doc xml:space="preserve">optional data to pass to the function</doc>
  39244. <type name="gpointer" c:type="gpointer"/>
  39245. </parameter>
  39246. </parameters>
  39247. </callback>
  39248. <enumeration name="TypeFindProbability"
  39249. glib:type-name="GstTypeFindProbability"
  39250. glib:get-type="gst_type_find_probability_get_type"
  39251. c:type="GstTypeFindProbability">
  39252. <doc xml:space="preserve">The probability of the typefind function. Higher values have more certainty
  39253. in doing a reliable typefind.</doc>
  39254. <member name="none"
  39255. value="0"
  39256. c:identifier="GST_TYPE_FIND_NONE"
  39257. glib:nick="none">
  39258. <doc xml:space="preserve">type undetected.</doc>
  39259. </member>
  39260. <member name="minimum"
  39261. value="1"
  39262. c:identifier="GST_TYPE_FIND_MINIMUM"
  39263. glib:nick="minimum">
  39264. <doc xml:space="preserve">unlikely typefind.</doc>
  39265. </member>
  39266. <member name="possible"
  39267. value="50"
  39268. c:identifier="GST_TYPE_FIND_POSSIBLE"
  39269. glib:nick="possible">
  39270. <doc xml:space="preserve">possible type detected.</doc>
  39271. </member>
  39272. <member name="likely"
  39273. value="80"
  39274. c:identifier="GST_TYPE_FIND_LIKELY"
  39275. glib:nick="likely">
  39276. <doc xml:space="preserve">likely a type was detected.</doc>
  39277. </member>
  39278. <member name="nearly_certain"
  39279. value="99"
  39280. c:identifier="GST_TYPE_FIND_NEARLY_CERTAIN"
  39281. glib:nick="nearly-certain">
  39282. <doc xml:space="preserve">nearly certain that a type was detected.</doc>
  39283. </member>
  39284. <member name="maximum"
  39285. value="100"
  39286. c:identifier="GST_TYPE_FIND_MAXIMUM"
  39287. glib:nick="maximum">
  39288. <doc xml:space="preserve">very certain a type was detected.</doc>
  39289. </member>
  39290. </enumeration>
  39291. <enumeration name="URIError"
  39292. glib:type-name="GstURIError"
  39293. glib:get-type="gst_uri_error_get_type"
  39294. c:type="GstURIError"
  39295. glib:error-domain="gst-uri-error-quark">
  39296. <doc xml:space="preserve">Different URI-related errors that can occur.</doc>
  39297. <member name="unsupported_protocol"
  39298. value="0"
  39299. c:identifier="GST_URI_ERROR_UNSUPPORTED_PROTOCOL"
  39300. glib:nick="unsupported-protocol">
  39301. <doc xml:space="preserve">The protocol is not supported</doc>
  39302. </member>
  39303. <member name="bad_uri"
  39304. value="1"
  39305. c:identifier="GST_URI_ERROR_BAD_URI"
  39306. glib:nick="bad-uri">
  39307. <doc xml:space="preserve">There was a problem with the URI</doc>
  39308. </member>
  39309. <member name="bad_state"
  39310. value="2"
  39311. c:identifier="GST_URI_ERROR_BAD_STATE"
  39312. glib:nick="bad-state">
  39313. <doc xml:space="preserve">Could not set or change the URI because the
  39314. URI handler was in a state where that is not possible or not permitted</doc>
  39315. </member>
  39316. <member name="bad_reference"
  39317. value="3"
  39318. c:identifier="GST_URI_ERROR_BAD_REFERENCE"
  39319. glib:nick="bad-reference">
  39320. <doc xml:space="preserve">There was a problem with the entity that
  39321. the URI references</doc>
  39322. </member>
  39323. <function name="quark" c:identifier="gst_uri_error_quark">
  39324. <return-value transfer-ownership="none">
  39325. <type name="GLib.Quark" c:type="GQuark"/>
  39326. </return-value>
  39327. </function>
  39328. </enumeration>
  39329. <interface name="URIHandler"
  39330. c:symbol-prefix="uri_handler"
  39331. c:type="GstURIHandler"
  39332. glib:type-name="GstURIHandler"
  39333. glib:get-type="gst_uri_handler_get_type"
  39334. glib:type-struct="URIHandlerInterface">
  39335. <doc xml:space="preserve">The #GstURIHandler is an interface that is implemented by Source and Sink
  39336. #GstElement to unify handling of URI.
  39337. An application can use the following functions to quickly get an element
  39338. that handles the given URI for reading or writing
  39339. (gst_element_make_from_uri()).
  39340. Source and Sink plugins should implement this interface when possible.</doc>
  39341. <virtual-method name="get_uri" invoker="get_uri">
  39342. <doc xml:space="preserve">Gets the currently handled URI.</doc>
  39343. <return-value transfer-ownership="full" nullable="1">
  39344. <doc xml:space="preserve">the URI currently handled by
  39345. the @handler. Returns %NULL if there are no URI currently
  39346. handled. The returned string must be freed with g_free() when no
  39347. longer needed.</doc>
  39348. <type name="utf8" c:type="gchar*"/>
  39349. </return-value>
  39350. <parameters>
  39351. <instance-parameter name="handler" transfer-ownership="none">
  39352. <doc xml:space="preserve">A #GstURIHandler</doc>
  39353. <type name="URIHandler" c:type="GstURIHandler*"/>
  39354. </instance-parameter>
  39355. </parameters>
  39356. </virtual-method>
  39357. <virtual-method name="set_uri" invoker="set_uri" throws="1">
  39358. <doc xml:space="preserve">Tries to set the URI of the given handler.</doc>
  39359. <return-value transfer-ownership="none">
  39360. <doc xml:space="preserve">%TRUE if the URI was set successfully, else %FALSE.</doc>
  39361. <type name="gboolean" c:type="gboolean"/>
  39362. </return-value>
  39363. <parameters>
  39364. <instance-parameter name="handler" transfer-ownership="none">
  39365. <doc xml:space="preserve">A #GstURIHandler</doc>
  39366. <type name="URIHandler" c:type="GstURIHandler*"/>
  39367. </instance-parameter>
  39368. <parameter name="uri" transfer-ownership="none">
  39369. <doc xml:space="preserve">URI to set</doc>
  39370. <type name="utf8" c:type="const gchar*"/>
  39371. </parameter>
  39372. </parameters>
  39373. </virtual-method>
  39374. <method name="get_protocols"
  39375. c:identifier="gst_uri_handler_get_protocols">
  39376. <doc xml:space="preserve">Gets the list of protocols supported by @handler. This list may not be
  39377. modified.</doc>
  39378. <return-value transfer-ownership="none" nullable="1">
  39379. <doc xml:space="preserve">the
  39380. supported protocols. Returns %NULL if the @handler isn't
  39381. implemented properly, or the @handler doesn't support any
  39382. protocols.</doc>
  39383. <array c:type="const gchar* const*">
  39384. <type name="utf8"/>
  39385. </array>
  39386. </return-value>
  39387. <parameters>
  39388. <instance-parameter name="handler" transfer-ownership="none">
  39389. <doc xml:space="preserve">A #GstURIHandler.</doc>
  39390. <type name="URIHandler" c:type="GstURIHandler*"/>
  39391. </instance-parameter>
  39392. </parameters>
  39393. </method>
  39394. <method name="get_uri" c:identifier="gst_uri_handler_get_uri">
  39395. <doc xml:space="preserve">Gets the currently handled URI.</doc>
  39396. <return-value transfer-ownership="full" nullable="1">
  39397. <doc xml:space="preserve">the URI currently handled by
  39398. the @handler. Returns %NULL if there are no URI currently
  39399. handled. The returned string must be freed with g_free() when no
  39400. longer needed.</doc>
  39401. <type name="utf8" c:type="gchar*"/>
  39402. </return-value>
  39403. <parameters>
  39404. <instance-parameter name="handler" transfer-ownership="none">
  39405. <doc xml:space="preserve">A #GstURIHandler</doc>
  39406. <type name="URIHandler" c:type="GstURIHandler*"/>
  39407. </instance-parameter>
  39408. </parameters>
  39409. </method>
  39410. <method name="get_uri_type" c:identifier="gst_uri_handler_get_uri_type">
  39411. <doc xml:space="preserve">Gets the type of the given URI handler</doc>
  39412. <return-value transfer-ownership="none">
  39413. <doc xml:space="preserve">the #GstURIType of the URI handler.
  39414. Returns #GST_URI_UNKNOWN if the @handler isn't implemented correctly.</doc>
  39415. <type name="URIType" c:type="GstURIType"/>
  39416. </return-value>
  39417. <parameters>
  39418. <instance-parameter name="handler" transfer-ownership="none">
  39419. <doc xml:space="preserve">A #GstURIHandler.</doc>
  39420. <type name="URIHandler" c:type="GstURIHandler*"/>
  39421. </instance-parameter>
  39422. </parameters>
  39423. </method>
  39424. <method name="set_uri" c:identifier="gst_uri_handler_set_uri" throws="1">
  39425. <doc xml:space="preserve">Tries to set the URI of the given handler.</doc>
  39426. <return-value transfer-ownership="none">
  39427. <doc xml:space="preserve">%TRUE if the URI was set successfully, else %FALSE.</doc>
  39428. <type name="gboolean" c:type="gboolean"/>
  39429. </return-value>
  39430. <parameters>
  39431. <instance-parameter name="handler" transfer-ownership="none">
  39432. <doc xml:space="preserve">A #GstURIHandler</doc>
  39433. <type name="URIHandler" c:type="GstURIHandler*"/>
  39434. </instance-parameter>
  39435. <parameter name="uri" transfer-ownership="none">
  39436. <doc xml:space="preserve">URI to set</doc>
  39437. <type name="utf8" c:type="const gchar*"/>
  39438. </parameter>
  39439. </parameters>
  39440. </method>
  39441. </interface>
  39442. <record name="URIHandlerInterface"
  39443. c:type="GstURIHandlerInterface"
  39444. glib:is-gtype-struct-for="URIHandler">
  39445. <doc xml:space="preserve">Any #GstElement using this interface should implement these methods.</doc>
  39446. <field name="parent">
  39447. <doc xml:space="preserve">The parent interface type</doc>
  39448. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  39449. </field>
  39450. <field name="get_type">
  39451. <callback name="get_type">
  39452. <return-value transfer-ownership="none">
  39453. <type name="URIType" c:type="GstURIType"/>
  39454. </return-value>
  39455. <parameters>
  39456. <parameter name="type" transfer-ownership="none">
  39457. <type name="GType" c:type="GType"/>
  39458. </parameter>
  39459. </parameters>
  39460. </callback>
  39461. </field>
  39462. <field name="get_protocols">
  39463. <callback name="get_protocols">
  39464. <return-value transfer-ownership="none">
  39465. <array c:type="const gchar* const*">
  39466. <type name="utf8"/>
  39467. </array>
  39468. </return-value>
  39469. <parameters>
  39470. <parameter name="type" transfer-ownership="none">
  39471. <type name="GType" c:type="GType"/>
  39472. </parameter>
  39473. </parameters>
  39474. </callback>
  39475. </field>
  39476. <field name="get_uri">
  39477. <callback name="get_uri">
  39478. <return-value transfer-ownership="full" nullable="1">
  39479. <doc xml:space="preserve">the URI currently handled by
  39480. the @handler. Returns %NULL if there are no URI currently
  39481. handled. The returned string must be freed with g_free() when no
  39482. longer needed.</doc>
  39483. <type name="utf8" c:type="gchar*"/>
  39484. </return-value>
  39485. <parameters>
  39486. <parameter name="handler" transfer-ownership="none">
  39487. <doc xml:space="preserve">A #GstURIHandler</doc>
  39488. <type name="URIHandler" c:type="GstURIHandler*"/>
  39489. </parameter>
  39490. </parameters>
  39491. </callback>
  39492. </field>
  39493. <field name="set_uri">
  39494. <callback name="set_uri" throws="1">
  39495. <return-value transfer-ownership="none">
  39496. <doc xml:space="preserve">%TRUE if the URI was set successfully, else %FALSE.</doc>
  39497. <type name="gboolean" c:type="gboolean"/>
  39498. </return-value>
  39499. <parameters>
  39500. <parameter name="handler" transfer-ownership="none">
  39501. <doc xml:space="preserve">A #GstURIHandler</doc>
  39502. <type name="URIHandler" c:type="GstURIHandler*"/>
  39503. </parameter>
  39504. <parameter name="uri" transfer-ownership="none">
  39505. <doc xml:space="preserve">URI to set</doc>
  39506. <type name="utf8" c:type="const gchar*"/>
  39507. </parameter>
  39508. </parameters>
  39509. </callback>
  39510. </field>
  39511. </record>
  39512. <enumeration name="URIType"
  39513. glib:type-name="GstURIType"
  39514. glib:get-type="gst_uri_type_get_type"
  39515. c:type="GstURIType">
  39516. <doc xml:space="preserve">The different types of URI direction.</doc>
  39517. <member name="unknown"
  39518. value="0"
  39519. c:identifier="GST_URI_UNKNOWN"
  39520. glib:nick="unknown">
  39521. <doc xml:space="preserve">The URI direction is unknown</doc>
  39522. </member>
  39523. <member name="sink"
  39524. value="1"
  39525. c:identifier="GST_URI_SINK"
  39526. glib:nick="sink">
  39527. <doc xml:space="preserve">The URI is a consumer.</doc>
  39528. </member>
  39529. <member name="src" value="2" c:identifier="GST_URI_SRC" glib:nick="src">
  39530. <doc xml:space="preserve">The URI is a producer.</doc>
  39531. </member>
  39532. </enumeration>
  39533. <constant name="URI_NO_PORT" value="0" c:type="GST_URI_NO_PORT">
  39534. <doc xml:space="preserve">Value for #GstUri&lt;!-- --&gt;.port to indicate no port number.</doc>
  39535. <type name="gint" c:type="gint"/>
  39536. </constant>
  39537. <constant name="USECOND" value="1000" c:type="GST_USECOND">
  39538. <doc xml:space="preserve">Constant that defines one GStreamer microsecond.</doc>
  39539. <type name="gint" c:type="gint"/>
  39540. </constant>
  39541. <record name="Uri"
  39542. c:type="GstUri"
  39543. glib:type-name="GstUri"
  39544. glib:get-type="gst_uri_get_type"
  39545. c:symbol-prefix="uri">
  39546. <doc xml:space="preserve">A #GstUri object can be used to parse and split a URI string into its
  39547. constituant parts. Two #GstUri objects can be joined to make a new #GstUri
  39548. using the algorithm described in RFC3986.</doc>
  39549. <constructor name="new" c:identifier="gst_uri_new" version="1.6">
  39550. <doc xml:space="preserve">Creates a new #GstUri object with the given URI parts. The path and query
  39551. strings will be broken down into their elements. All strings should not be
  39552. escaped except where indicated.</doc>
  39553. <return-value transfer-ownership="full">
  39554. <doc xml:space="preserve">A new #GstUri object.</doc>
  39555. <type name="Uri" c:type="GstUri*"/>
  39556. </return-value>
  39557. <parameters>
  39558. <parameter name="scheme"
  39559. transfer-ownership="none"
  39560. nullable="1"
  39561. allow-none="1">
  39562. <doc xml:space="preserve">The scheme for the new URI.</doc>
  39563. <type name="utf8" c:type="const gchar*"/>
  39564. </parameter>
  39565. <parameter name="userinfo"
  39566. transfer-ownership="none"
  39567. nullable="1"
  39568. allow-none="1">
  39569. <doc xml:space="preserve">The user-info for the new URI.</doc>
  39570. <type name="utf8" c:type="const gchar*"/>
  39571. </parameter>
  39572. <parameter name="host"
  39573. transfer-ownership="none"
  39574. nullable="1"
  39575. allow-none="1">
  39576. <doc xml:space="preserve">The host name for the new URI.</doc>
  39577. <type name="utf8" c:type="const gchar*"/>
  39578. </parameter>
  39579. <parameter name="port" transfer-ownership="none">
  39580. <doc xml:space="preserve">The port number for the new URI or %GST_URI_NO_PORT.</doc>
  39581. <type name="guint" c:type="guint"/>
  39582. </parameter>
  39583. <parameter name="path"
  39584. transfer-ownership="none"
  39585. nullable="1"
  39586. allow-none="1">
  39587. <doc xml:space="preserve">The path for the new URI with '/' separating path
  39588. elements.</doc>
  39589. <type name="utf8" c:type="const gchar*"/>
  39590. </parameter>
  39591. <parameter name="query"
  39592. transfer-ownership="none"
  39593. nullable="1"
  39594. allow-none="1">
  39595. <doc xml:space="preserve">The query string for the new URI with '&amp;' separating
  39596. query elements. Elements containing '&amp;' characters
  39597. should encode them as "&amp;percnt;26".</doc>
  39598. <type name="utf8" c:type="const gchar*"/>
  39599. </parameter>
  39600. <parameter name="fragment"
  39601. transfer-ownership="none"
  39602. nullable="1"
  39603. allow-none="1">
  39604. <doc xml:space="preserve">The fragment name for the new URI.</doc>
  39605. <type name="utf8" c:type="const gchar*"/>
  39606. </parameter>
  39607. </parameters>
  39608. </constructor>
  39609. <method name="append_path"
  39610. c:identifier="gst_uri_append_path"
  39611. version="1.6">
  39612. <doc xml:space="preserve">Append a path onto the end of the path in the URI. The path is not
  39613. normalized, call #gst_uri_normalize() to normalize the path.</doc>
  39614. <return-value transfer-ownership="none">
  39615. <doc xml:space="preserve">%TRUE if the path was appended successfully.</doc>
  39616. <type name="gboolean" c:type="gboolean"/>
  39617. </return-value>
  39618. <parameters>
  39619. <instance-parameter name="uri"
  39620. transfer-ownership="none"
  39621. nullable="1"
  39622. allow-none="1">
  39623. <doc xml:space="preserve">The #GstUri to modify.</doc>
  39624. <type name="Uri" c:type="GstUri*"/>
  39625. </instance-parameter>
  39626. <parameter name="relative_path" transfer-ownership="none">
  39627. <doc xml:space="preserve">Relative path to append to the end of the current path.</doc>
  39628. <type name="utf8" c:type="const gchar*"/>
  39629. </parameter>
  39630. </parameters>
  39631. </method>
  39632. <method name="append_path_segment"
  39633. c:identifier="gst_uri_append_path_segment"
  39634. version="1.6">
  39635. <doc xml:space="preserve">Append a single path segment onto the end of the URI path.</doc>
  39636. <return-value transfer-ownership="none">
  39637. <doc xml:space="preserve">%TRUE if the path was appended successfully.</doc>
  39638. <type name="gboolean" c:type="gboolean"/>
  39639. </return-value>
  39640. <parameters>
  39641. <instance-parameter name="uri"
  39642. transfer-ownership="none"
  39643. nullable="1"
  39644. allow-none="1">
  39645. <doc xml:space="preserve">The #GstUri to modify.</doc>
  39646. <type name="Uri" c:type="GstUri*"/>
  39647. </instance-parameter>
  39648. <parameter name="path_segment" transfer-ownership="none">
  39649. <doc xml:space="preserve">The path segment string to append to the URI path.</doc>
  39650. <type name="utf8" c:type="const gchar*"/>
  39651. </parameter>
  39652. </parameters>
  39653. </method>
  39654. <method name="equal" c:identifier="gst_uri_equal" version="1.6">
  39655. <doc xml:space="preserve">Compares two #GstUri objects to see if they represent the same normalized
  39656. URI.</doc>
  39657. <return-value transfer-ownership="none">
  39658. <doc xml:space="preserve">%TRUE if the normalized versions of the two URI's would be equal.</doc>
  39659. <type name="gboolean" c:type="gboolean"/>
  39660. </return-value>
  39661. <parameters>
  39662. <instance-parameter name="first" transfer-ownership="none">
  39663. <doc xml:space="preserve">First #GstUri to compare.</doc>
  39664. <type name="Uri" c:type="const GstUri*"/>
  39665. </instance-parameter>
  39666. <parameter name="second" transfer-ownership="none">
  39667. <doc xml:space="preserve">Second #GstUri to compare.</doc>
  39668. <type name="Uri" c:type="const GstUri*"/>
  39669. </parameter>
  39670. </parameters>
  39671. </method>
  39672. <method name="from_string_with_base"
  39673. c:identifier="gst_uri_from_string_with_base"
  39674. version="1.6">
  39675. <doc xml:space="preserve">Like gst_uri_from_string() but also joins with a base URI.</doc>
  39676. <return-value transfer-ownership="full">
  39677. <doc xml:space="preserve">A new #GstUri object.</doc>
  39678. <type name="Uri" c:type="GstUri*"/>
  39679. </return-value>
  39680. <parameters>
  39681. <instance-parameter name="base"
  39682. transfer-ownership="none"
  39683. nullable="1"
  39684. allow-none="1">
  39685. <doc xml:space="preserve">The base URI to join the new URI with.</doc>
  39686. <type name="Uri" c:type="GstUri*"/>
  39687. </instance-parameter>
  39688. <parameter name="uri" transfer-ownership="none">
  39689. <doc xml:space="preserve">The URI string to parse.</doc>
  39690. <type name="utf8" c:type="const gchar*"/>
  39691. </parameter>
  39692. </parameters>
  39693. </method>
  39694. <method name="get_fragment"
  39695. c:identifier="gst_uri_get_fragment"
  39696. version="1.6">
  39697. <doc xml:space="preserve">Get the fragment name from the URI or %NULL if it doesn't exist.
  39698. If @uri is %NULL then returns %NULL.</doc>
  39699. <return-value transfer-ownership="none">
  39700. <doc xml:space="preserve">The host name from the #GstUri object or %NULL.</doc>
  39701. <type name="utf8" c:type="const gchar*"/>
  39702. </return-value>
  39703. <parameters>
  39704. <instance-parameter name="uri"
  39705. transfer-ownership="none"
  39706. nullable="1"
  39707. allow-none="1">
  39708. <doc xml:space="preserve">This #GstUri object.</doc>
  39709. <type name="Uri" c:type="const GstUri*"/>
  39710. </instance-parameter>
  39711. </parameters>
  39712. </method>
  39713. <method name="get_host" c:identifier="gst_uri_get_host" version="1.6">
  39714. <doc xml:space="preserve">Get the host name from the URI or %NULL if it doesn't exist.
  39715. If @uri is %NULL then returns %NULL.</doc>
  39716. <return-value transfer-ownership="none">
  39717. <doc xml:space="preserve">The host name from the #GstUri object or %NULL.</doc>
  39718. <type name="utf8" c:type="const gchar*"/>
  39719. </return-value>
  39720. <parameters>
  39721. <instance-parameter name="uri"
  39722. transfer-ownership="none"
  39723. nullable="1"
  39724. allow-none="1">
  39725. <doc xml:space="preserve">This #GstUri object.</doc>
  39726. <type name="Uri" c:type="const GstUri*"/>
  39727. </instance-parameter>
  39728. </parameters>
  39729. </method>
  39730. <method name="get_path" c:identifier="gst_uri_get_path" version="1.6">
  39731. <doc xml:space="preserve">Extract the path string from the URI object.</doc>
  39732. <return-value transfer-ownership="full">
  39733. <doc xml:space="preserve">The path from the URI. Once finished with the
  39734. string should be g_free()'d.</doc>
  39735. <type name="utf8" c:type="gchar*"/>
  39736. </return-value>
  39737. <parameters>
  39738. <instance-parameter name="uri" transfer-ownership="none">
  39739. <doc xml:space="preserve">The #GstUri to get the path from.</doc>
  39740. <type name="Uri" c:type="const GstUri*"/>
  39741. </instance-parameter>
  39742. </parameters>
  39743. </method>
  39744. <method name="get_path_segments"
  39745. c:identifier="gst_uri_get_path_segments"
  39746. version="1.6">
  39747. <doc xml:space="preserve">Get a list of path segments from the URI.</doc>
  39748. <return-value transfer-ownership="full">
  39749. <doc xml:space="preserve">A #GList of path segment
  39750. strings or %NULL if no path segments are available. Free the list
  39751. when no longer needed with g_list_free_full(list, g_free).</doc>
  39752. <type name="GLib.List" c:type="GList*">
  39753. <type name="utf8"/>
  39754. </type>
  39755. </return-value>
  39756. <parameters>
  39757. <instance-parameter name="uri"
  39758. transfer-ownership="none"
  39759. nullable="1"
  39760. allow-none="1">
  39761. <doc xml:space="preserve">The #GstUri to get the path from.</doc>
  39762. <type name="Uri" c:type="const GstUri*"/>
  39763. </instance-parameter>
  39764. </parameters>
  39765. </method>
  39766. <method name="get_path_string"
  39767. c:identifier="gst_uri_get_path_string"
  39768. version="1.6">
  39769. <doc xml:space="preserve">Extract the path string from the URI object as a percent encoded URI path.</doc>
  39770. <return-value transfer-ownership="full">
  39771. <doc xml:space="preserve">The path from the URI. Once finished with the
  39772. string should be g_free()'d.</doc>
  39773. <type name="utf8" c:type="gchar*"/>
  39774. </return-value>
  39775. <parameters>
  39776. <instance-parameter name="uri" transfer-ownership="none">
  39777. <doc xml:space="preserve">The #GstUri to get the path from.</doc>
  39778. <type name="Uri" c:type="const GstUri*"/>
  39779. </instance-parameter>
  39780. </parameters>
  39781. </method>
  39782. <method name="get_port" c:identifier="gst_uri_get_port" version="1.6">
  39783. <doc xml:space="preserve">Get the port number from the URI or %GST_URI_NO_PORT if it doesn't exist.
  39784. If @uri is %NULL then returns %GST_URI_NO_PORT.</doc>
  39785. <return-value transfer-ownership="none">
  39786. <doc xml:space="preserve">The port number from the #GstUri object or %GST_URI_NO_PORT.</doc>
  39787. <type name="guint" c:type="guint"/>
  39788. </return-value>
  39789. <parameters>
  39790. <instance-parameter name="uri"
  39791. transfer-ownership="none"
  39792. nullable="1"
  39793. allow-none="1">
  39794. <doc xml:space="preserve">This #GstUri object.</doc>
  39795. <type name="Uri" c:type="const GstUri*"/>
  39796. </instance-parameter>
  39797. </parameters>
  39798. </method>
  39799. <method name="get_query_keys"
  39800. c:identifier="gst_uri_get_query_keys"
  39801. version="1.6">
  39802. <doc xml:space="preserve">Get a list of the query keys from the URI.</doc>
  39803. <return-value transfer-ownership="container">
  39804. <doc xml:space="preserve">A list of keys from
  39805. the URI query. Free the list with g_list_free().</doc>
  39806. <type name="GLib.List" c:type="GList*">
  39807. <type name="utf8"/>
  39808. </type>
  39809. </return-value>
  39810. <parameters>
  39811. <instance-parameter name="uri"
  39812. transfer-ownership="none"
  39813. nullable="1"
  39814. allow-none="1">
  39815. <doc xml:space="preserve">The #GstUri to examine.</doc>
  39816. <type name="Uri" c:type="const GstUri*"/>
  39817. </instance-parameter>
  39818. </parameters>
  39819. </method>
  39820. <method name="get_query_string"
  39821. c:identifier="gst_uri_get_query_string"
  39822. version="1.6">
  39823. <doc xml:space="preserve">Get a percent encoded URI query string from the @uri.</doc>
  39824. <return-value transfer-ownership="full">
  39825. <doc xml:space="preserve">A percent encoded query string. Use g_free() when
  39826. no longer needed.</doc>
  39827. <type name="utf8" c:type="gchar*"/>
  39828. </return-value>
  39829. <parameters>
  39830. <instance-parameter name="uri"
  39831. transfer-ownership="none"
  39832. nullable="1"
  39833. allow-none="1">
  39834. <doc xml:space="preserve">The #GstUri to get the query string from.</doc>
  39835. <type name="Uri" c:type="const GstUri*"/>
  39836. </instance-parameter>
  39837. </parameters>
  39838. </method>
  39839. <method name="get_query_table"
  39840. c:identifier="gst_uri_get_query_table"
  39841. version="1.6">
  39842. <doc xml:space="preserve">Get the query table from the URI. Keys and values in the table are freed
  39843. with g_free when they are deleted. A value may be %NULL to indicate that
  39844. the key should appear in the query string in the URI, but does not have a
  39845. value. Free the returned #GHashTable with #g_hash_table_unref() when it is
  39846. no longer required. Modifying this hash table will modify the query in the
  39847. URI.</doc>
  39848. <return-value transfer-ownership="full">
  39849. <doc xml:space="preserve">The query hash table
  39850. from the URI.</doc>
  39851. <type name="GLib.HashTable" c:type="GHashTable*">
  39852. <type name="utf8"/>
  39853. <type name="utf8"/>
  39854. </type>
  39855. </return-value>
  39856. <parameters>
  39857. <instance-parameter name="uri"
  39858. transfer-ownership="none"
  39859. nullable="1"
  39860. allow-none="1">
  39861. <doc xml:space="preserve">The #GstUri to get the query table from.</doc>
  39862. <type name="Uri" c:type="const GstUri*"/>
  39863. </instance-parameter>
  39864. </parameters>
  39865. </method>
  39866. <method name="get_query_value"
  39867. c:identifier="gst_uri_get_query_value"
  39868. version="1.6">
  39869. <doc xml:space="preserve">Get the value associated with the @query_key key. Will return %NULL if the
  39870. key has no value or if the key does not exist in the URI query table. Because
  39871. %NULL is returned for both missing keys and keys with no value, you should
  39872. use gst_uri_query_has_key() to determine if a key is present in the URI
  39873. query.</doc>
  39874. <return-value transfer-ownership="none">
  39875. <doc xml:space="preserve">The value for the given key, or %NULL if not found.</doc>
  39876. <type name="utf8" c:type="const gchar*"/>
  39877. </return-value>
  39878. <parameters>
  39879. <instance-parameter name="uri"
  39880. transfer-ownership="none"
  39881. nullable="1"
  39882. allow-none="1">
  39883. <doc xml:space="preserve">The #GstUri to examine.</doc>
  39884. <type name="Uri" c:type="const GstUri*"/>
  39885. </instance-parameter>
  39886. <parameter name="query_key" transfer-ownership="none">
  39887. <doc xml:space="preserve">The key to lookup.</doc>
  39888. <type name="utf8" c:type="const gchar*"/>
  39889. </parameter>
  39890. </parameters>
  39891. </method>
  39892. <method name="get_scheme" c:identifier="gst_uri_get_scheme">
  39893. <doc xml:space="preserve">Get the scheme name from the URI or %NULL if it doesn't exist.
  39894. If @uri is %NULL then returns %NULL.</doc>
  39895. <return-value transfer-ownership="none">
  39896. <doc xml:space="preserve">The scheme from the #GstUri object or %NULL.</doc>
  39897. <type name="utf8" c:type="const gchar*"/>
  39898. </return-value>
  39899. <parameters>
  39900. <instance-parameter name="uri"
  39901. transfer-ownership="none"
  39902. nullable="1"
  39903. allow-none="1">
  39904. <doc xml:space="preserve">This #GstUri object.</doc>
  39905. <type name="Uri" c:type="const GstUri*"/>
  39906. </instance-parameter>
  39907. </parameters>
  39908. </method>
  39909. <method name="get_userinfo"
  39910. c:identifier="gst_uri_get_userinfo"
  39911. version="1.6">
  39912. <doc xml:space="preserve">Get the userinfo (usually in the form "username:password") from the URI
  39913. or %NULL if it doesn't exist. If @uri is %NULL then returns %NULL.</doc>
  39914. <return-value transfer-ownership="none">
  39915. <doc xml:space="preserve">The userinfo from the #GstUri object or %NULL.</doc>
  39916. <type name="utf8" c:type="const gchar*"/>
  39917. </return-value>
  39918. <parameters>
  39919. <instance-parameter name="uri"
  39920. transfer-ownership="none"
  39921. nullable="1"
  39922. allow-none="1">
  39923. <doc xml:space="preserve">This #GstUri object.</doc>
  39924. <type name="Uri" c:type="const GstUri*"/>
  39925. </instance-parameter>
  39926. </parameters>
  39927. </method>
  39928. <method name="is_normalized"
  39929. c:identifier="gst_uri_is_normalized"
  39930. version="1.6">
  39931. <doc xml:space="preserve">Tests the @uri to see if it is normalized. A %NULL @uri is considered to be
  39932. normalized.</doc>
  39933. <return-value transfer-ownership="none">
  39934. <doc xml:space="preserve">TRUE if the URI is normalized or is %NULL.</doc>
  39935. <type name="gboolean" c:type="gboolean"/>
  39936. </return-value>
  39937. <parameters>
  39938. <instance-parameter name="uri" transfer-ownership="none">
  39939. <doc xml:space="preserve">The #GstUri to test to see if it is normalized.</doc>
  39940. <type name="Uri" c:type="const GstUri*"/>
  39941. </instance-parameter>
  39942. </parameters>
  39943. </method>
  39944. <method name="is_writable"
  39945. c:identifier="gst_uri_is_writable"
  39946. version="1.6">
  39947. <doc xml:space="preserve">Check if it is safe to write to this #GstUri.
  39948. Check if the refcount of @uri is exactly 1, meaning that no other
  39949. reference exists to the #GstUri and that the #GstUri is therefore writable.
  39950. Modification of a #GstUri should only be done after verifying that it is
  39951. writable.</doc>
  39952. <return-value transfer-ownership="none">
  39953. <doc xml:space="preserve">%TRUE if it is safe to write to the object.</doc>
  39954. <type name="gboolean" c:type="gboolean"/>
  39955. </return-value>
  39956. <parameters>
  39957. <instance-parameter name="uri" transfer-ownership="none">
  39958. <doc xml:space="preserve">The #GstUri object to test.</doc>
  39959. <type name="Uri" c:type="const GstUri*"/>
  39960. </instance-parameter>
  39961. </parameters>
  39962. </method>
  39963. <method name="join" c:identifier="gst_uri_join" version="1.6">
  39964. <doc xml:space="preserve">Join a reference URI onto a base URI using the method from RFC 3986.
  39965. If either URI is %NULL then the other URI will be returned with the ref count
  39966. increased.</doc>
  39967. <return-value transfer-ownership="full">
  39968. <doc xml:space="preserve">A #GstUri which represents the base with the
  39969. reference URI joined on.</doc>
  39970. <type name="Uri" c:type="GstUri*"/>
  39971. </return-value>
  39972. <parameters>
  39973. <instance-parameter name="base_uri"
  39974. transfer-ownership="none"
  39975. nullable="1"
  39976. allow-none="1">
  39977. <doc xml:space="preserve">The base URI to join another to.</doc>
  39978. <type name="Uri" c:type="GstUri*"/>
  39979. </instance-parameter>
  39980. <parameter name="ref_uri"
  39981. transfer-ownership="none"
  39982. nullable="1"
  39983. allow-none="1">
  39984. <doc xml:space="preserve">The reference URI to join onto the
  39985. base URI.</doc>
  39986. <type name="Uri" c:type="GstUri*"/>
  39987. </parameter>
  39988. </parameters>
  39989. </method>
  39990. <method name="make_writable"
  39991. c:identifier="gst_uri_make_writable"
  39992. version="1.6">
  39993. <doc xml:space="preserve">Make the #GstUri writable.
  39994. Checks if @uri is writable, and if so the original object is returned. If
  39995. not, then a writable copy is made and returned. This gives away the
  39996. reference to @uri and returns a reference to the new #GstUri.
  39997. If @uri is %NULL then %NULL is returned.</doc>
  39998. <return-value transfer-ownership="full">
  39999. <doc xml:space="preserve">A writable version of @uri.</doc>
  40000. <type name="Uri" c:type="GstUri*"/>
  40001. </return-value>
  40002. <parameters>
  40003. <instance-parameter name="uri" transfer-ownership="full">
  40004. <doc xml:space="preserve">The #GstUri object to make writable.</doc>
  40005. <type name="Uri" c:type="GstUri*"/>
  40006. </instance-parameter>
  40007. </parameters>
  40008. </method>
  40009. <method name="new_with_base"
  40010. c:identifier="gst_uri_new_with_base"
  40011. version="1.6">
  40012. <doc xml:space="preserve">Like gst_uri_new(), but joins the new URI onto a base URI.</doc>
  40013. <return-value transfer-ownership="full">
  40014. <doc xml:space="preserve">The new URI joined onto @base.</doc>
  40015. <type name="Uri" c:type="GstUri*"/>
  40016. </return-value>
  40017. <parameters>
  40018. <instance-parameter name="base"
  40019. transfer-ownership="none"
  40020. nullable="1"
  40021. allow-none="1">
  40022. <doc xml:space="preserve">The base URI to join the new URI to.</doc>
  40023. <type name="Uri" c:type="GstUri*"/>
  40024. </instance-parameter>
  40025. <parameter name="scheme"
  40026. transfer-ownership="none"
  40027. nullable="1"
  40028. allow-none="1">
  40029. <doc xml:space="preserve">The scheme for the new URI.</doc>
  40030. <type name="utf8" c:type="const gchar*"/>
  40031. </parameter>
  40032. <parameter name="userinfo"
  40033. transfer-ownership="none"
  40034. nullable="1"
  40035. allow-none="1">
  40036. <doc xml:space="preserve">The user-info for the new URI.</doc>
  40037. <type name="utf8" c:type="const gchar*"/>
  40038. </parameter>
  40039. <parameter name="host"
  40040. transfer-ownership="none"
  40041. nullable="1"
  40042. allow-none="1">
  40043. <doc xml:space="preserve">The host name for the new URI.</doc>
  40044. <type name="utf8" c:type="const gchar*"/>
  40045. </parameter>
  40046. <parameter name="port" transfer-ownership="none">
  40047. <doc xml:space="preserve">The port number for the new URI or %GST_URI_NO_PORT.</doc>
  40048. <type name="guint" c:type="guint"/>
  40049. </parameter>
  40050. <parameter name="path"
  40051. transfer-ownership="none"
  40052. nullable="1"
  40053. allow-none="1">
  40054. <doc xml:space="preserve">The path for the new URI with '/' separating path
  40055. elements.</doc>
  40056. <type name="utf8" c:type="const gchar*"/>
  40057. </parameter>
  40058. <parameter name="query"
  40059. transfer-ownership="none"
  40060. nullable="1"
  40061. allow-none="1">
  40062. <doc xml:space="preserve">The query string for the new URI with '&amp;' separating
  40063. query elements. Elements containing '&amp;' characters
  40064. should encode them as "&amp;percnt;26".</doc>
  40065. <type name="utf8" c:type="const gchar*"/>
  40066. </parameter>
  40067. <parameter name="fragment"
  40068. transfer-ownership="none"
  40069. nullable="1"
  40070. allow-none="1">
  40071. <doc xml:space="preserve">The fragment name for the new URI.</doc>
  40072. <type name="utf8" c:type="const gchar*"/>
  40073. </parameter>
  40074. </parameters>
  40075. </method>
  40076. <method name="normalize" c:identifier="gst_uri_normalize" version="1.6">
  40077. <doc xml:space="preserve">Normalization will remove extra path segments ("." and "..") from the URI. It
  40078. will also convert the scheme and host name to lower case and any
  40079. percent-encoded values to uppercase.
  40080. The #GstUri object must be writable. Check with gst_uri_is_writable() or use
  40081. gst_uri_make_writable() first.</doc>
  40082. <return-value transfer-ownership="none">
  40083. <doc xml:space="preserve">TRUE if the URI was modified.</doc>
  40084. <type name="gboolean" c:type="gboolean"/>
  40085. </return-value>
  40086. <parameters>
  40087. <instance-parameter name="uri" transfer-ownership="none">
  40088. <doc xml:space="preserve">The #GstUri to normalize.</doc>
  40089. <type name="Uri" c:type="GstUri*"/>
  40090. </instance-parameter>
  40091. </parameters>
  40092. </method>
  40093. <method name="query_has_key"
  40094. c:identifier="gst_uri_query_has_key"
  40095. version="1.6">
  40096. <doc xml:space="preserve">Check if there is a query table entry for the @query_key key.</doc>
  40097. <return-value transfer-ownership="none">
  40098. <doc xml:space="preserve">%TRUE if @query_key exists in the URI query table.</doc>
  40099. <type name="gboolean" c:type="gboolean"/>
  40100. </return-value>
  40101. <parameters>
  40102. <instance-parameter name="uri"
  40103. transfer-ownership="none"
  40104. nullable="1"
  40105. allow-none="1">
  40106. <doc xml:space="preserve">The #GstUri to examine.</doc>
  40107. <type name="Uri" c:type="const GstUri*"/>
  40108. </instance-parameter>
  40109. <parameter name="query_key" transfer-ownership="none">
  40110. <doc xml:space="preserve">The key to lookup.</doc>
  40111. <type name="utf8" c:type="const gchar*"/>
  40112. </parameter>
  40113. </parameters>
  40114. </method>
  40115. <method name="remove_query_key"
  40116. c:identifier="gst_uri_remove_query_key"
  40117. version="1.6">
  40118. <doc xml:space="preserve">Remove an entry from the query table by key.</doc>
  40119. <return-value transfer-ownership="none">
  40120. <doc xml:space="preserve">%TRUE if the key existed in the table and was removed.</doc>
  40121. <type name="gboolean" c:type="gboolean"/>
  40122. </return-value>
  40123. <parameters>
  40124. <instance-parameter name="uri"
  40125. transfer-ownership="none"
  40126. nullable="1"
  40127. allow-none="1">
  40128. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40129. <type name="Uri" c:type="GstUri*"/>
  40130. </instance-parameter>
  40131. <parameter name="query_key" transfer-ownership="none">
  40132. <doc xml:space="preserve">The key to remove.</doc>
  40133. <type name="utf8" c:type="const gchar*"/>
  40134. </parameter>
  40135. </parameters>
  40136. </method>
  40137. <method name="set_fragment"
  40138. c:identifier="gst_uri_set_fragment"
  40139. version="1.6">
  40140. <doc xml:space="preserve">Sets the fragment string in the URI. Use a value of %NULL in @fragment to
  40141. unset the fragment string.</doc>
  40142. <return-value transfer-ownership="none">
  40143. <doc xml:space="preserve">%TRUE if the fragment was set/unset successfully.</doc>
  40144. <type name="gboolean" c:type="gboolean"/>
  40145. </return-value>
  40146. <parameters>
  40147. <instance-parameter name="uri"
  40148. transfer-ownership="none"
  40149. nullable="1"
  40150. allow-none="1">
  40151. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40152. <type name="Uri" c:type="GstUri*"/>
  40153. </instance-parameter>
  40154. <parameter name="fragment"
  40155. transfer-ownership="none"
  40156. nullable="1"
  40157. allow-none="1">
  40158. <doc xml:space="preserve">The fragment string to set.</doc>
  40159. <type name="utf8" c:type="const gchar*"/>
  40160. </parameter>
  40161. </parameters>
  40162. </method>
  40163. <method name="set_host" c:identifier="gst_uri_set_host" version="1.6">
  40164. <doc xml:space="preserve">Set or unset the host for the URI.</doc>
  40165. <return-value transfer-ownership="none">
  40166. <doc xml:space="preserve">%TRUE if the host was set/unset successfully.</doc>
  40167. <type name="gboolean" c:type="gboolean"/>
  40168. </return-value>
  40169. <parameters>
  40170. <instance-parameter name="uri"
  40171. transfer-ownership="none"
  40172. nullable="1"
  40173. allow-none="1">
  40174. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40175. <type name="Uri" c:type="GstUri*"/>
  40176. </instance-parameter>
  40177. <parameter name="host" transfer-ownership="none">
  40178. <doc xml:space="preserve">The new host string to set or %NULL to unset.</doc>
  40179. <type name="utf8" c:type="const gchar*"/>
  40180. </parameter>
  40181. </parameters>
  40182. </method>
  40183. <method name="set_path" c:identifier="gst_uri_set_path" version="1.6">
  40184. <doc xml:space="preserve">Sets or unsets the path in the URI.</doc>
  40185. <return-value transfer-ownership="none">
  40186. <doc xml:space="preserve">%TRUE if the path was set successfully.</doc>
  40187. <type name="gboolean" c:type="gboolean"/>
  40188. </return-value>
  40189. <parameters>
  40190. <instance-parameter name="uri"
  40191. transfer-ownership="none"
  40192. nullable="1"
  40193. allow-none="1">
  40194. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40195. <type name="Uri" c:type="GstUri*"/>
  40196. </instance-parameter>
  40197. <parameter name="path" transfer-ownership="none">
  40198. <doc xml:space="preserve">The new path to set with path segments separated by '/', or use %NULL
  40199. to unset the path.</doc>
  40200. <type name="utf8" c:type="const gchar*"/>
  40201. </parameter>
  40202. </parameters>
  40203. </method>
  40204. <method name="set_path_segments"
  40205. c:identifier="gst_uri_set_path_segments"
  40206. version="1.6">
  40207. <doc xml:space="preserve">Replace the path segments list in the URI.</doc>
  40208. <return-value transfer-ownership="none">
  40209. <doc xml:space="preserve">%TRUE if the path segments were set successfully.</doc>
  40210. <type name="gboolean" c:type="gboolean"/>
  40211. </return-value>
  40212. <parameters>
  40213. <instance-parameter name="uri"
  40214. transfer-ownership="none"
  40215. nullable="1"
  40216. allow-none="1">
  40217. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40218. <type name="Uri" c:type="GstUri*"/>
  40219. </instance-parameter>
  40220. <parameter name="path_segments"
  40221. transfer-ownership="full"
  40222. nullable="1"
  40223. allow-none="1">
  40224. <doc xml:space="preserve">The new
  40225. path list to set.</doc>
  40226. <type name="GLib.List" c:type="GList*">
  40227. <type name="utf8"/>
  40228. </type>
  40229. </parameter>
  40230. </parameters>
  40231. </method>
  40232. <method name="set_path_string"
  40233. c:identifier="gst_uri_set_path_string"
  40234. version="1.6">
  40235. <doc xml:space="preserve">Sets or unsets the path in the URI.</doc>
  40236. <return-value transfer-ownership="none">
  40237. <doc xml:space="preserve">%TRUE if the path was set successfully.</doc>
  40238. <type name="gboolean" c:type="gboolean"/>
  40239. </return-value>
  40240. <parameters>
  40241. <instance-parameter name="uri"
  40242. transfer-ownership="none"
  40243. nullable="1"
  40244. allow-none="1">
  40245. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40246. <type name="Uri" c:type="GstUri*"/>
  40247. </instance-parameter>
  40248. <parameter name="path" transfer-ownership="none">
  40249. <doc xml:space="preserve">The new percent encoded path to set with path segments separated by
  40250. '/', or use %NULL to unset the path.</doc>
  40251. <type name="utf8" c:type="const gchar*"/>
  40252. </parameter>
  40253. </parameters>
  40254. </method>
  40255. <method name="set_port" c:identifier="gst_uri_set_port" version="1.6">
  40256. <doc xml:space="preserve">Set or unset the port number for the URI.</doc>
  40257. <return-value transfer-ownership="none">
  40258. <doc xml:space="preserve">%TRUE if the port number was set/unset successfully.</doc>
  40259. <type name="gboolean" c:type="gboolean"/>
  40260. </return-value>
  40261. <parameters>
  40262. <instance-parameter name="uri"
  40263. transfer-ownership="none"
  40264. nullable="1"
  40265. allow-none="1">
  40266. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40267. <type name="Uri" c:type="GstUri*"/>
  40268. </instance-parameter>
  40269. <parameter name="port" transfer-ownership="none">
  40270. <doc xml:space="preserve">The new port number to set or %GST_URI_NO_PORT to unset.</doc>
  40271. <type name="guint" c:type="guint"/>
  40272. </parameter>
  40273. </parameters>
  40274. </method>
  40275. <method name="set_query_string"
  40276. c:identifier="gst_uri_set_query_string"
  40277. version="1.6">
  40278. <doc xml:space="preserve">Sets or unsets the query table in the URI.</doc>
  40279. <return-value transfer-ownership="none">
  40280. <doc xml:space="preserve">%TRUE if the query table was set successfully.</doc>
  40281. <type name="gboolean" c:type="gboolean"/>
  40282. </return-value>
  40283. <parameters>
  40284. <instance-parameter name="uri"
  40285. transfer-ownership="none"
  40286. nullable="1"
  40287. allow-none="1">
  40288. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40289. <type name="Uri" c:type="GstUri*"/>
  40290. </instance-parameter>
  40291. <parameter name="query" transfer-ownership="none">
  40292. <doc xml:space="preserve">The new percent encoded query string to use to populate the query
  40293. table, or use %NULL to unset the query table.</doc>
  40294. <type name="utf8" c:type="const gchar*"/>
  40295. </parameter>
  40296. </parameters>
  40297. </method>
  40298. <method name="set_query_table"
  40299. c:identifier="gst_uri_set_query_table"
  40300. version="1.6">
  40301. <doc xml:space="preserve">Set the query table to use in the URI. The old table is unreferenced and a
  40302. reference to the new one is used instead. A value if %NULL for @query_table
  40303. will remove the query string from the URI.</doc>
  40304. <return-value transfer-ownership="none">
  40305. <doc xml:space="preserve">%TRUE if the new table was sucessfully used for the query table.</doc>
  40306. <type name="gboolean" c:type="gboolean"/>
  40307. </return-value>
  40308. <parameters>
  40309. <instance-parameter name="uri"
  40310. transfer-ownership="none"
  40311. nullable="1"
  40312. allow-none="1">
  40313. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40314. <type name="Uri" c:type="GstUri*"/>
  40315. </instance-parameter>
  40316. <parameter name="query_table"
  40317. transfer-ownership="none"
  40318. nullable="1"
  40319. allow-none="1">
  40320. <doc xml:space="preserve">The new
  40321. query table to use.</doc>
  40322. <type name="GLib.HashTable" c:type="GHashTable*">
  40323. <type name="utf8"/>
  40324. <type name="utf8"/>
  40325. </type>
  40326. </parameter>
  40327. </parameters>
  40328. </method>
  40329. <method name="set_query_value"
  40330. c:identifier="gst_uri_set_query_value"
  40331. version="1.6">
  40332. <doc xml:space="preserve">This inserts or replaces a key in the query table. A @query_value of %NULL
  40333. indicates that the key has no associated value, but will still be present in
  40334. the query string.</doc>
  40335. <return-value transfer-ownership="none">
  40336. <doc xml:space="preserve">%TRUE if the query table was sucessfully updated.</doc>
  40337. <type name="gboolean" c:type="gboolean"/>
  40338. </return-value>
  40339. <parameters>
  40340. <instance-parameter name="uri"
  40341. transfer-ownership="none"
  40342. nullable="1"
  40343. allow-none="1">
  40344. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40345. <type name="Uri" c:type="GstUri*"/>
  40346. </instance-parameter>
  40347. <parameter name="query_key" transfer-ownership="none">
  40348. <doc xml:space="preserve">The key for the query entry.</doc>
  40349. <type name="utf8" c:type="const gchar*"/>
  40350. </parameter>
  40351. <parameter name="query_value"
  40352. transfer-ownership="none"
  40353. nullable="1"
  40354. allow-none="1">
  40355. <doc xml:space="preserve">The value for the key.</doc>
  40356. <type name="utf8" c:type="const gchar*"/>
  40357. </parameter>
  40358. </parameters>
  40359. </method>
  40360. <method name="set_scheme"
  40361. c:identifier="gst_uri_set_scheme"
  40362. version="1.6">
  40363. <doc xml:space="preserve">Set or unset the scheme for the URI.</doc>
  40364. <return-value transfer-ownership="none">
  40365. <doc xml:space="preserve">%TRUE if the scheme was set/unset successfully.</doc>
  40366. <type name="gboolean" c:type="gboolean"/>
  40367. </return-value>
  40368. <parameters>
  40369. <instance-parameter name="uri"
  40370. transfer-ownership="none"
  40371. nullable="1"
  40372. allow-none="1">
  40373. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40374. <type name="Uri" c:type="GstUri*"/>
  40375. </instance-parameter>
  40376. <parameter name="scheme" transfer-ownership="none">
  40377. <doc xml:space="preserve">The new scheme to set or %NULL to unset the scheme.</doc>
  40378. <type name="utf8" c:type="const gchar*"/>
  40379. </parameter>
  40380. </parameters>
  40381. </method>
  40382. <method name="set_userinfo"
  40383. c:identifier="gst_uri_set_userinfo"
  40384. version="1.6">
  40385. <doc xml:space="preserve">Set or unset the user information for the URI.</doc>
  40386. <return-value transfer-ownership="none">
  40387. <doc xml:space="preserve">%TRUE if the user information was set/unset successfully.</doc>
  40388. <type name="gboolean" c:type="gboolean"/>
  40389. </return-value>
  40390. <parameters>
  40391. <instance-parameter name="uri"
  40392. transfer-ownership="none"
  40393. nullable="1"
  40394. allow-none="1">
  40395. <doc xml:space="preserve">The #GstUri to modify.</doc>
  40396. <type name="Uri" c:type="GstUri*"/>
  40397. </instance-parameter>
  40398. <parameter name="userinfo" transfer-ownership="none">
  40399. <doc xml:space="preserve">The new user-information string to set or %NULL to unset.</doc>
  40400. <type name="utf8" c:type="const gchar*"/>
  40401. </parameter>
  40402. </parameters>
  40403. </method>
  40404. <method name="to_string" c:identifier="gst_uri_to_string" version="1.6">
  40405. <doc xml:space="preserve">Convert the URI to a string.
  40406. Returns the URI as held in this object as a #gchar* nul-terminated string.
  40407. The caller should g_free() the string once they are finished with it.
  40408. The string is put together as described in RFC 3986.</doc>
  40409. <return-value transfer-ownership="full">
  40410. <doc xml:space="preserve">The string version of the URI.</doc>
  40411. <type name="utf8" c:type="gchar*"/>
  40412. </return-value>
  40413. <parameters>
  40414. <instance-parameter name="uri" transfer-ownership="none">
  40415. <doc xml:space="preserve">This #GstUri to convert to a string.</doc>
  40416. <type name="Uri" c:type="const GstUri*"/>
  40417. </instance-parameter>
  40418. </parameters>
  40419. </method>
  40420. <function name="construct" c:identifier="gst_uri_construct">
  40421. <doc xml:space="preserve">Constructs a URI for a given valid protocol and location.
  40422. Free-function: g_free</doc>
  40423. <return-value transfer-ownership="full">
  40424. <doc xml:space="preserve">a new string for this URI. Returns %NULL if the
  40425. given URI protocol is not valid, or the given location is %NULL.</doc>
  40426. <type name="utf8" c:type="gchar*"/>
  40427. </return-value>
  40428. <parameters>
  40429. <parameter name="protocol" transfer-ownership="none">
  40430. <doc xml:space="preserve">Protocol for URI</doc>
  40431. <type name="utf8" c:type="const gchar*"/>
  40432. </parameter>
  40433. <parameter name="location" transfer-ownership="none">
  40434. <doc xml:space="preserve">Location for URI</doc>
  40435. <type name="utf8" c:type="const gchar*"/>
  40436. </parameter>
  40437. </parameters>
  40438. </function>
  40439. <function name="from_string"
  40440. c:identifier="gst_uri_from_string"
  40441. version="1.6">
  40442. <doc xml:space="preserve">Parses a URI string into a new #GstUri object. Will return NULL if the URI
  40443. cannot be parsed.</doc>
  40444. <return-value transfer-ownership="full" nullable="1">
  40445. <doc xml:space="preserve">A new #GstUri object, or NULL.</doc>
  40446. <type name="Uri" c:type="GstUri*"/>
  40447. </return-value>
  40448. <parameters>
  40449. <parameter name="uri" transfer-ownership="none">
  40450. <doc xml:space="preserve">The URI string to parse.</doc>
  40451. <type name="utf8" c:type="const gchar*"/>
  40452. </parameter>
  40453. </parameters>
  40454. </function>
  40455. <function name="get_location" c:identifier="gst_uri_get_location">
  40456. <doc xml:space="preserve">Extracts the location out of a given valid URI, ie. the protocol and "://"
  40457. are stripped from the URI, which means that the location returned includes
  40458. the hostname if one is specified. The returned string must be freed using
  40459. g_free().
  40460. Free-function: g_free</doc>
  40461. <return-value transfer-ownership="full">
  40462. <doc xml:space="preserve">the location for this URI. Returns %NULL if the
  40463. URI isn't valid. If the URI does not contain a location, an empty
  40464. string is returned.</doc>
  40465. <type name="utf8" c:type="gchar*"/>
  40466. </return-value>
  40467. <parameters>
  40468. <parameter name="uri" transfer-ownership="none">
  40469. <doc xml:space="preserve">A URI string</doc>
  40470. <type name="utf8" c:type="const gchar*"/>
  40471. </parameter>
  40472. </parameters>
  40473. </function>
  40474. <function name="get_protocol" c:identifier="gst_uri_get_protocol">
  40475. <doc xml:space="preserve">Extracts the protocol out of a given valid URI. The returned string must be
  40476. freed using g_free().</doc>
  40477. <return-value transfer-ownership="full">
  40478. <doc xml:space="preserve">The protocol for this URI.</doc>
  40479. <type name="utf8" c:type="gchar*"/>
  40480. </return-value>
  40481. <parameters>
  40482. <parameter name="uri" transfer-ownership="none">
  40483. <doc xml:space="preserve">A URI string</doc>
  40484. <type name="utf8" c:type="const gchar*"/>
  40485. </parameter>
  40486. </parameters>
  40487. </function>
  40488. <function name="has_protocol" c:identifier="gst_uri_has_protocol">
  40489. <doc xml:space="preserve">Checks if the protocol of a given valid URI matches @protocol.</doc>
  40490. <return-value transfer-ownership="none">
  40491. <doc xml:space="preserve">%TRUE if the protocol matches.</doc>
  40492. <type name="gboolean" c:type="gboolean"/>
  40493. </return-value>
  40494. <parameters>
  40495. <parameter name="uri" transfer-ownership="none">
  40496. <doc xml:space="preserve">a URI string</doc>
  40497. <type name="utf8" c:type="const gchar*"/>
  40498. </parameter>
  40499. <parameter name="protocol" transfer-ownership="none">
  40500. <doc xml:space="preserve">a protocol string (e.g. "http")</doc>
  40501. <type name="utf8" c:type="const gchar*"/>
  40502. </parameter>
  40503. </parameters>
  40504. </function>
  40505. <function name="is_valid" c:identifier="gst_uri_is_valid">
  40506. <doc xml:space="preserve">Tests if the given string is a valid URI identifier. URIs start with a valid
  40507. scheme followed by ":" and maybe a string identifying the location.</doc>
  40508. <return-value transfer-ownership="none">
  40509. <doc xml:space="preserve">%TRUE if the string is a valid URI</doc>
  40510. <type name="gboolean" c:type="gboolean"/>
  40511. </return-value>
  40512. <parameters>
  40513. <parameter name="uri" transfer-ownership="none">
  40514. <doc xml:space="preserve">A URI string</doc>
  40515. <type name="utf8" c:type="const gchar*"/>
  40516. </parameter>
  40517. </parameters>
  40518. </function>
  40519. <function name="join_strings"
  40520. c:identifier="gst_uri_join_strings"
  40521. version="1.6">
  40522. <doc xml:space="preserve">This is a convenience function to join two URI strings and return the result.
  40523. The returned string should be g_free()'d after use.</doc>
  40524. <return-value transfer-ownership="full">
  40525. <doc xml:space="preserve">A string representing the percent-encoded join of
  40526. the two URIs.</doc>
  40527. <type name="utf8" c:type="gchar*"/>
  40528. </return-value>
  40529. <parameters>
  40530. <parameter name="base_uri" transfer-ownership="none">
  40531. <doc xml:space="preserve">The percent-encoded base URI.</doc>
  40532. <type name="utf8" c:type="const gchar*"/>
  40533. </parameter>
  40534. <parameter name="ref_uri" transfer-ownership="none">
  40535. <doc xml:space="preserve">The percent-encoded reference URI to join to the @base_uri.</doc>
  40536. <type name="utf8" c:type="const gchar*"/>
  40537. </parameter>
  40538. </parameters>
  40539. </function>
  40540. <function name="protocol_is_supported"
  40541. c:identifier="gst_uri_protocol_is_supported">
  40542. <doc xml:space="preserve">Checks if an element exists that supports the given URI protocol. Note
  40543. that a positive return value does not imply that a subsequent call to
  40544. gst_element_make_from_uri() is guaranteed to work.</doc>
  40545. <return-value transfer-ownership="none">
  40546. <doc xml:space="preserve">%TRUE</doc>
  40547. <type name="gboolean" c:type="gboolean"/>
  40548. </return-value>
  40549. <parameters>
  40550. <parameter name="type" transfer-ownership="none">
  40551. <doc xml:space="preserve">Whether to check for a source or a sink</doc>
  40552. <type name="URIType" c:type="const GstURIType"/>
  40553. </parameter>
  40554. <parameter name="protocol" transfer-ownership="none">
  40555. <doc xml:space="preserve">Protocol that should be checked for (e.g. "http" or "smb")</doc>
  40556. <type name="utf8" c:type="const gchar*"/>
  40557. </parameter>
  40558. </parameters>
  40559. </function>
  40560. <function name="protocol_is_valid"
  40561. c:identifier="gst_uri_protocol_is_valid">
  40562. <doc xml:space="preserve">Tests if the given string is a valid protocol identifier. Protocols
  40563. must consist of alphanumeric characters, '+', '-' and '.' and must
  40564. start with a alphabetic character. See RFC 3986 Section 3.1.</doc>
  40565. <return-value transfer-ownership="none">
  40566. <doc xml:space="preserve">%TRUE if the string is a valid protocol identifier, %FALSE otherwise.</doc>
  40567. <type name="gboolean" c:type="gboolean"/>
  40568. </return-value>
  40569. <parameters>
  40570. <parameter name="protocol" transfer-ownership="none">
  40571. <doc xml:space="preserve">A string</doc>
  40572. <type name="utf8" c:type="const gchar*"/>
  40573. </parameter>
  40574. </parameters>
  40575. </function>
  40576. </record>
  40577. <constant name="VALUE_EQUAL" value="0" c:type="GST_VALUE_EQUAL">
  40578. <doc xml:space="preserve">Indicates that the first value provided to a comparison function
  40579. (gst_value_compare()) is equal to the second one.</doc>
  40580. <type name="gint" c:type="gint"/>
  40581. </constant>
  40582. <constant name="VALUE_GREATER_THAN"
  40583. value="1"
  40584. c:type="GST_VALUE_GREATER_THAN">
  40585. <doc xml:space="preserve">Indicates that the first value provided to a comparison function
  40586. (gst_value_compare()) is greater than the second one.</doc>
  40587. <type name="gint" c:type="gint"/>
  40588. </constant>
  40589. <constant name="VALUE_LESS_THAN" value="-1" c:type="GST_VALUE_LESS_THAN">
  40590. <doc xml:space="preserve">Indicates that the first value provided to a comparison function
  40591. (gst_value_compare()) is lesser than the second one.</doc>
  40592. <type name="gint" c:type="gint"/>
  40593. </constant>
  40594. <constant name="VALUE_UNORDERED" value="2" c:type="GST_VALUE_UNORDERED">
  40595. <doc xml:space="preserve">Indicates that the comparison function (gst_value_compare()) can not
  40596. determine a order for the two provided values.</doc>
  40597. <type name="gint" c:type="gint"/>
  40598. </constant>
  40599. <constant name="VERSION_MAJOR" value="1" c:type="GST_VERSION_MAJOR">
  40600. <doc xml:space="preserve">The major version of GStreamer at compile time:</doc>
  40601. <type name="gint" c:type="gint"/>
  40602. </constant>
  40603. <constant name="VERSION_MICRO" value="3" c:type="GST_VERSION_MICRO">
  40604. <doc xml:space="preserve">The micro version of GStreamer at compile time:</doc>
  40605. <type name="gint" c:type="gint"/>
  40606. </constant>
  40607. <constant name="VERSION_MINOR" value="8" c:type="GST_VERSION_MINOR">
  40608. <doc xml:space="preserve">The minor version of GStreamer at compile time:</doc>
  40609. <type name="gint" c:type="gint"/>
  40610. </constant>
  40611. <constant name="VERSION_NANO" value="0" c:type="GST_VERSION_NANO">
  40612. <doc xml:space="preserve">The nano version of GStreamer at compile time:
  40613. Actual releases have 0, GIT versions have 1, prerelease versions have 2-...</doc>
  40614. <type name="gint" c:type="gint"/>
  40615. </constant>
  40616. <class name="ValueArray"
  40617. c:symbol-prefix="value_array"
  40618. c:type="GstValueArray"
  40619. glib:type-name="GstValueArray"
  40620. glib:get-type="gst_value_array_get_type"
  40621. glib:fundamental="1">
  40622. <function name="append_and_take_value"
  40623. c:identifier="gst_value_array_append_and_take_value"
  40624. version="1.2">
  40625. <doc xml:space="preserve">Appends @append_value to the GstValueArray in @value.</doc>
  40626. <return-value transfer-ownership="none">
  40627. <type name="none" c:type="void"/>
  40628. </return-value>
  40629. <parameters>
  40630. <parameter name="value" transfer-ownership="none">
  40631. <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
  40632. <type name="GObject.Value" c:type="GValue*"/>
  40633. </parameter>
  40634. <parameter name="append_value" transfer-ownership="full">
  40635. <doc xml:space="preserve">the value to append</doc>
  40636. <type name="GObject.Value" c:type="GValue*"/>
  40637. </parameter>
  40638. </parameters>
  40639. </function>
  40640. <function name="append_value"
  40641. c:identifier="gst_value_array_append_value">
  40642. <doc xml:space="preserve">Appends @append_value to the GstValueArray in @value.</doc>
  40643. <return-value transfer-ownership="none">
  40644. <type name="none" c:type="void"/>
  40645. </return-value>
  40646. <parameters>
  40647. <parameter name="value" transfer-ownership="none">
  40648. <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
  40649. <type name="GObject.Value" c:type="GValue*"/>
  40650. </parameter>
  40651. <parameter name="append_value" transfer-ownership="none">
  40652. <doc xml:space="preserve">the value to append</doc>
  40653. <type name="GObject.Value" c:type="const GValue*"/>
  40654. </parameter>
  40655. </parameters>
  40656. </function>
  40657. <function name="get_size" c:identifier="gst_value_array_get_size">
  40658. <doc xml:space="preserve">Gets the number of values contained in @value.</doc>
  40659. <return-value transfer-ownership="none">
  40660. <doc xml:space="preserve">the number of values</doc>
  40661. <type name="guint" c:type="guint"/>
  40662. </return-value>
  40663. <parameters>
  40664. <parameter name="value" transfer-ownership="none">
  40665. <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
  40666. <type name="GObject.Value" c:type="const GValue*"/>
  40667. </parameter>
  40668. </parameters>
  40669. </function>
  40670. <function name="get_value" c:identifier="gst_value_array_get_value">
  40671. <doc xml:space="preserve">Gets the value that is a member of the array contained in @value and
  40672. has the index @index.</doc>
  40673. <return-value transfer-ownership="none">
  40674. <doc xml:space="preserve">the value at the given index</doc>
  40675. <type name="GObject.Value" c:type="const GValue*"/>
  40676. </return-value>
  40677. <parameters>
  40678. <parameter name="value" transfer-ownership="none">
  40679. <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
  40680. <type name="GObject.Value" c:type="const GValue*"/>
  40681. </parameter>
  40682. <parameter name="index" transfer-ownership="none">
  40683. <doc xml:space="preserve">index of value to get from the array</doc>
  40684. <type name="guint" c:type="guint"/>
  40685. </parameter>
  40686. </parameters>
  40687. </function>
  40688. <function name="prepend_value"
  40689. c:identifier="gst_value_array_prepend_value">
  40690. <doc xml:space="preserve">Prepends @prepend_value to the GstValueArray in @value.</doc>
  40691. <return-value transfer-ownership="none">
  40692. <type name="none" c:type="void"/>
  40693. </return-value>
  40694. <parameters>
  40695. <parameter name="value" transfer-ownership="none">
  40696. <doc xml:space="preserve">a #GValue of type #GST_TYPE_ARRAY</doc>
  40697. <type name="GObject.Value" c:type="GValue*"/>
  40698. </parameter>
  40699. <parameter name="prepend_value" transfer-ownership="none">
  40700. <doc xml:space="preserve">the value to prepend</doc>
  40701. <type name="GObject.Value" c:type="const GValue*"/>
  40702. </parameter>
  40703. </parameters>
  40704. </function>
  40705. </class>
  40706. <callback name="ValueCompareFunc" c:type="GstValueCompareFunc">
  40707. <doc xml:space="preserve">Used together with gst_value_compare() to compare #GValue items.</doc>
  40708. <return-value transfer-ownership="none">
  40709. <doc xml:space="preserve">one of GST_VALUE_LESS_THAN, GST_VALUE_EQUAL, GST_VALUE_GREATER_THAN
  40710. or GST_VALUE_UNORDERED</doc>
  40711. <type name="gint" c:type="gint"/>
  40712. </return-value>
  40713. <parameters>
  40714. <parameter name="value1" transfer-ownership="none">
  40715. <doc xml:space="preserve">first value for comparison</doc>
  40716. <type name="GObject.Value" c:type="const GValue*"/>
  40717. </parameter>
  40718. <parameter name="value2" transfer-ownership="none">
  40719. <doc xml:space="preserve">second value for comparison</doc>
  40720. <type name="GObject.Value" c:type="const GValue*"/>
  40721. </parameter>
  40722. </parameters>
  40723. </callback>
  40724. <callback name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc">
  40725. <doc xml:space="preserve">Used by gst_value_deserialize() to parse a non-binary form into the #GValue.</doc>
  40726. <return-value transfer-ownership="none">
  40727. <doc xml:space="preserve">%TRUE for success</doc>
  40728. <type name="gboolean" c:type="gboolean"/>
  40729. </return-value>
  40730. <parameters>
  40731. <parameter name="dest" transfer-ownership="none">
  40732. <doc xml:space="preserve">a #GValue</doc>
  40733. <type name="GObject.Value" c:type="GValue*"/>
  40734. </parameter>
  40735. <parameter name="s" transfer-ownership="none">
  40736. <doc xml:space="preserve">a string</doc>
  40737. <type name="utf8" c:type="const gchar*"/>
  40738. </parameter>
  40739. </parameters>
  40740. </callback>
  40741. <class name="ValueList"
  40742. c:symbol-prefix="value_list"
  40743. glib:type-name="GstValueList"
  40744. glib:get-type="gst_value_list_get_type"
  40745. glib:fundamental="1">
  40746. <function name="append_and_take_value"
  40747. c:identifier="gst_value_list_append_and_take_value"
  40748. version="1.2">
  40749. <doc xml:space="preserve">Appends @append_value to the GstValueList in @value.</doc>
  40750. <return-value transfer-ownership="none">
  40751. <type name="none" c:type="void"/>
  40752. </return-value>
  40753. <parameters>
  40754. <parameter name="value" transfer-ownership="none">
  40755. <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
  40756. <type name="GObject.Value" c:type="GValue*"/>
  40757. </parameter>
  40758. <parameter name="append_value" transfer-ownership="full">
  40759. <doc xml:space="preserve">the value to append</doc>
  40760. <type name="GObject.Value" c:type="GValue*"/>
  40761. </parameter>
  40762. </parameters>
  40763. </function>
  40764. <function name="append_value" c:identifier="gst_value_list_append_value">
  40765. <doc xml:space="preserve">Appends @append_value to the GstValueList in @value.</doc>
  40766. <return-value transfer-ownership="none">
  40767. <type name="none" c:type="void"/>
  40768. </return-value>
  40769. <parameters>
  40770. <parameter name="value" transfer-ownership="none">
  40771. <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
  40772. <type name="GObject.Value" c:type="GValue*"/>
  40773. </parameter>
  40774. <parameter name="append_value" transfer-ownership="none">
  40775. <doc xml:space="preserve">the value to append</doc>
  40776. <type name="GObject.Value" c:type="const GValue*"/>
  40777. </parameter>
  40778. </parameters>
  40779. </function>
  40780. <function name="concat" c:identifier="gst_value_list_concat">
  40781. <doc xml:space="preserve">Concatenates copies of @value1 and @value2 into a list. Values that are not
  40782. of type #GST_TYPE_LIST are treated as if they were lists of length 1.
  40783. @dest will be initialized to the type #GST_TYPE_LIST.</doc>
  40784. <return-value transfer-ownership="none">
  40785. <type name="none" c:type="void"/>
  40786. </return-value>
  40787. <parameters>
  40788. <parameter name="dest"
  40789. direction="out"
  40790. caller-allocates="1"
  40791. transfer-ownership="none">
  40792. <doc xml:space="preserve">an uninitialized #GValue to take the result</doc>
  40793. <type name="GObject.Value" c:type="GValue*"/>
  40794. </parameter>
  40795. <parameter name="value1" transfer-ownership="none">
  40796. <doc xml:space="preserve">a #GValue</doc>
  40797. <type name="GObject.Value" c:type="const GValue*"/>
  40798. </parameter>
  40799. <parameter name="value2" transfer-ownership="none">
  40800. <doc xml:space="preserve">a #GValue</doc>
  40801. <type name="GObject.Value" c:type="const GValue*"/>
  40802. </parameter>
  40803. </parameters>
  40804. </function>
  40805. <function name="get_size" c:identifier="gst_value_list_get_size">
  40806. <doc xml:space="preserve">Gets the number of values contained in @value.</doc>
  40807. <return-value transfer-ownership="none">
  40808. <doc xml:space="preserve">the number of values</doc>
  40809. <type name="guint" c:type="guint"/>
  40810. </return-value>
  40811. <parameters>
  40812. <parameter name="value" transfer-ownership="none">
  40813. <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
  40814. <type name="GObject.Value" c:type="const GValue*"/>
  40815. </parameter>
  40816. </parameters>
  40817. </function>
  40818. <function name="get_value" c:identifier="gst_value_list_get_value">
  40819. <doc xml:space="preserve">Gets the value that is a member of the list contained in @value and
  40820. has the index @index.</doc>
  40821. <return-value transfer-ownership="none">
  40822. <doc xml:space="preserve">the value at the given index</doc>
  40823. <type name="GObject.Value" c:type="const GValue*"/>
  40824. </return-value>
  40825. <parameters>
  40826. <parameter name="value" transfer-ownership="none">
  40827. <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
  40828. <type name="GObject.Value" c:type="const GValue*"/>
  40829. </parameter>
  40830. <parameter name="index" transfer-ownership="none">
  40831. <doc xml:space="preserve">index of value to get from the list</doc>
  40832. <type name="guint" c:type="guint"/>
  40833. </parameter>
  40834. </parameters>
  40835. </function>
  40836. <function name="merge" c:identifier="gst_value_list_merge">
  40837. <doc xml:space="preserve">Merges copies of @value1 and @value2. Values that are not
  40838. of type #GST_TYPE_LIST are treated as if they were lists of length 1.
  40839. The result will be put into @dest and will either be a list that will not
  40840. contain any duplicates, or a non-list type (if @value1 and @value2
  40841. were equal).</doc>
  40842. <return-value transfer-ownership="none">
  40843. <type name="none" c:type="void"/>
  40844. </return-value>
  40845. <parameters>
  40846. <parameter name="dest"
  40847. direction="out"
  40848. caller-allocates="1"
  40849. transfer-ownership="none">
  40850. <doc xml:space="preserve">an uninitialized #GValue to take the result</doc>
  40851. <type name="GObject.Value" c:type="GValue*"/>
  40852. </parameter>
  40853. <parameter name="value1" transfer-ownership="none">
  40854. <doc xml:space="preserve">a #GValue</doc>
  40855. <type name="GObject.Value" c:type="const GValue*"/>
  40856. </parameter>
  40857. <parameter name="value2" transfer-ownership="none">
  40858. <doc xml:space="preserve">a #GValue</doc>
  40859. <type name="GObject.Value" c:type="const GValue*"/>
  40860. </parameter>
  40861. </parameters>
  40862. </function>
  40863. <function name="prepend_value"
  40864. c:identifier="gst_value_list_prepend_value">
  40865. <doc xml:space="preserve">Prepends @prepend_value to the GstValueList in @value.</doc>
  40866. <return-value transfer-ownership="none">
  40867. <type name="none" c:type="void"/>
  40868. </return-value>
  40869. <parameters>
  40870. <parameter name="value" transfer-ownership="none">
  40871. <doc xml:space="preserve">a #GValue of type #GST_TYPE_LIST</doc>
  40872. <type name="GObject.Value" c:type="GValue*"/>
  40873. </parameter>
  40874. <parameter name="prepend_value" transfer-ownership="none">
  40875. <doc xml:space="preserve">the value to prepend</doc>
  40876. <type name="GObject.Value" c:type="const GValue*"/>
  40877. </parameter>
  40878. </parameters>
  40879. </function>
  40880. </class>
  40881. <callback name="ValueSerializeFunc" c:type="GstValueSerializeFunc">
  40882. <doc xml:space="preserve">Used by gst_value_serialize() to obtain a non-binary form of the #GValue.
  40883. Free-function: g_free</doc>
  40884. <return-value transfer-ownership="full">
  40885. <doc xml:space="preserve">the string representation of the value</doc>
  40886. <type name="utf8" c:type="gchar*"/>
  40887. </return-value>
  40888. <parameters>
  40889. <parameter name="value1" transfer-ownership="none">
  40890. <doc xml:space="preserve">a #GValue</doc>
  40891. <type name="GObject.Value" c:type="const GValue*"/>
  40892. </parameter>
  40893. </parameters>
  40894. </callback>
  40895. <record name="ValueTable" c:type="GstValueTable">
  40896. <doc xml:space="preserve">VTable for the #GValue @type.</doc>
  40897. <field name="type" writable="1">
  40898. <doc xml:space="preserve">a #GType</doc>
  40899. <type name="GType" c:type="GType"/>
  40900. </field>
  40901. <field name="compare" writable="1">
  40902. <doc xml:space="preserve">a #GstValueCompareFunc</doc>
  40903. <type name="ValueCompareFunc" c:type="GstValueCompareFunc"/>
  40904. </field>
  40905. <field name="serialize" writable="1">
  40906. <doc xml:space="preserve">a #GstValueSerializeFunc</doc>
  40907. <type name="ValueSerializeFunc" c:type="GstValueSerializeFunc"/>
  40908. </field>
  40909. <field name="deserialize" writable="1">
  40910. <doc xml:space="preserve">a #GstValueDeserializeFunc</doc>
  40911. <type name="ValueDeserializeFunc" c:type="GstValueDeserializeFunc"/>
  40912. </field>
  40913. <field name="_gst_reserved" readable="0" private="1">
  40914. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  40915. <type name="gpointer" c:type="gpointer"/>
  40916. </array>
  40917. </field>
  40918. </record>
  40919. <function name="buffer_get_max_memory"
  40920. c:identifier="gst_buffer_get_max_memory"
  40921. moved-to="Buffer.get_max_memory"
  40922. version="1.2">
  40923. <doc xml:space="preserve">Get the maximum amount of memory blocks that a buffer can hold. This is a
  40924. compile time constant that can be queried with the function.
  40925. When more memory blocks are added, existing memory blocks will be merged
  40926. together to make room for the new block.</doc>
  40927. <return-value transfer-ownership="none">
  40928. <doc xml:space="preserve">the maximum amount of memory blocks that a buffer can hold.</doc>
  40929. <type name="guint" c:type="guint"/>
  40930. </return-value>
  40931. </function>
  40932. <function name="caps_features_from_string"
  40933. c:identifier="gst_caps_features_from_string"
  40934. moved-to="CapsFeatures.from_string"
  40935. version="1.2">
  40936. <doc xml:space="preserve">Creates a #GstCapsFeatures from a string representation.
  40937. Free-function: gst_caps_features_free</doc>
  40938. <return-value transfer-ownership="full" nullable="1">
  40939. <doc xml:space="preserve">a new #GstCapsFeatures or
  40940. %NULL when the string could not be parsed. Free with
  40941. gst_caps_features_free() after use.</doc>
  40942. <type name="CapsFeatures" c:type="GstCapsFeatures*"/>
  40943. </return-value>
  40944. <parameters>
  40945. <parameter name="features" transfer-ownership="none">
  40946. <doc xml:space="preserve">a string representation of a #GstCapsFeatures.</doc>
  40947. <type name="utf8" c:type="const gchar*"/>
  40948. </parameter>
  40949. </parameters>
  40950. </function>
  40951. <function name="caps_from_string"
  40952. c:identifier="gst_caps_from_string"
  40953. moved-to="Caps.from_string">
  40954. <doc xml:space="preserve">Converts @caps from a string representation.
  40955. The current implementation of serialization will lead to unexpected results
  40956. when there are nested #GstCaps / #GstStructure deeper than one level.</doc>
  40957. <return-value transfer-ownership="full">
  40958. <doc xml:space="preserve">a newly allocated #GstCaps</doc>
  40959. <type name="Caps" c:type="GstCaps*"/>
  40960. </return-value>
  40961. <parameters>
  40962. <parameter name="string" transfer-ownership="none">
  40963. <doc xml:space="preserve">a string to convert to #GstCaps</doc>
  40964. <type name="utf8" c:type="const gchar*"/>
  40965. </parameter>
  40966. </parameters>
  40967. </function>
  40968. <function name="core_error_quark"
  40969. c:identifier="gst_core_error_quark"
  40970. moved-to="CoreError.quark">
  40971. <return-value transfer-ownership="none">
  40972. <type name="GLib.Quark" c:type="GQuark"/>
  40973. </return-value>
  40974. </function>
  40975. <function name="debug_add_log_function"
  40976. c:identifier="gst_debug_add_log_function">
  40977. <doc xml:space="preserve">Adds the logging function to the list of logging functions.
  40978. Be sure to use #G_GNUC_NO_INSTRUMENT on that function, it is needed.</doc>
  40979. <return-value transfer-ownership="none">
  40980. <type name="none" c:type="void"/>
  40981. </return-value>
  40982. <parameters>
  40983. <parameter name="func"
  40984. transfer-ownership="none"
  40985. scope="notified"
  40986. closure="1"
  40987. destroy="2">
  40988. <doc xml:space="preserve">the function to use</doc>
  40989. <type name="LogFunction" c:type="GstLogFunction"/>
  40990. </parameter>
  40991. <parameter name="user_data"
  40992. transfer-ownership="none"
  40993. nullable="1"
  40994. allow-none="1">
  40995. <doc xml:space="preserve">user data</doc>
  40996. <type name="gpointer" c:type="gpointer"/>
  40997. </parameter>
  40998. <parameter name="notify" transfer-ownership="none" scope="async">
  40999. <doc xml:space="preserve">called when @user_data is not used anymore</doc>
  41000. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  41001. </parameter>
  41002. </parameters>
  41003. </function>
  41004. <function name="debug_bin_to_dot_data"
  41005. c:identifier="gst_debug_bin_to_dot_data">
  41006. <return-value transfer-ownership="full">
  41007. <type name="utf8" c:type="gchar*"/>
  41008. </return-value>
  41009. <parameters>
  41010. <parameter name="bin" transfer-ownership="none">
  41011. <type name="Bin" c:type="GstBin*"/>
  41012. </parameter>
  41013. <parameter name="details" transfer-ownership="none">
  41014. <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
  41015. </parameter>
  41016. </parameters>
  41017. </function>
  41018. <function name="debug_bin_to_dot_file"
  41019. c:identifier="gst_debug_bin_to_dot_file">
  41020. <return-value transfer-ownership="none">
  41021. <type name="none" c:type="void"/>
  41022. </return-value>
  41023. <parameters>
  41024. <parameter name="bin" transfer-ownership="none">
  41025. <type name="Bin" c:type="GstBin*"/>
  41026. </parameter>
  41027. <parameter name="details" transfer-ownership="none">
  41028. <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
  41029. </parameter>
  41030. <parameter name="file_name" transfer-ownership="none">
  41031. <type name="utf8" c:type="const gchar*"/>
  41032. </parameter>
  41033. </parameters>
  41034. </function>
  41035. <function name="debug_bin_to_dot_file_with_ts"
  41036. c:identifier="gst_debug_bin_to_dot_file_with_ts">
  41037. <return-value transfer-ownership="none">
  41038. <type name="none" c:type="void"/>
  41039. </return-value>
  41040. <parameters>
  41041. <parameter name="bin" transfer-ownership="none">
  41042. <type name="Bin" c:type="GstBin*"/>
  41043. </parameter>
  41044. <parameter name="details" transfer-ownership="none">
  41045. <type name="DebugGraphDetails" c:type="GstDebugGraphDetails"/>
  41046. </parameter>
  41047. <parameter name="file_name" transfer-ownership="none">
  41048. <type name="utf8" c:type="const gchar*"/>
  41049. </parameter>
  41050. </parameters>
  41051. </function>
  41052. <function name="debug_construct_term_color"
  41053. c:identifier="gst_debug_construct_term_color">
  41054. <doc xml:space="preserve">Constructs a string that can be used for getting the desired color in color
  41055. terminals.
  41056. You need to free the string after use.</doc>
  41057. <return-value transfer-ownership="full">
  41058. <doc xml:space="preserve">a string containing the color
  41059. definition</doc>
  41060. <type name="utf8" c:type="gchar*"/>
  41061. </return-value>
  41062. <parameters>
  41063. <parameter name="colorinfo" transfer-ownership="none">
  41064. <doc xml:space="preserve">the color info</doc>
  41065. <type name="guint" c:type="guint"/>
  41066. </parameter>
  41067. </parameters>
  41068. </function>
  41069. <function name="debug_construct_win_color"
  41070. c:identifier="gst_debug_construct_win_color">
  41071. <doc xml:space="preserve">Constructs an integer that can be used for getting the desired color in
  41072. windows' terminals (cmd.exe). As there is no mean to underline, we simply
  41073. ignore this attribute.
  41074. This function returns 0 on non-windows machines.</doc>
  41075. <return-value transfer-ownership="none">
  41076. <doc xml:space="preserve">an integer containing the color definition</doc>
  41077. <type name="gint" c:type="gint"/>
  41078. </return-value>
  41079. <parameters>
  41080. <parameter name="colorinfo" transfer-ownership="none">
  41081. <doc xml:space="preserve">the color info</doc>
  41082. <type name="guint" c:type="guint"/>
  41083. </parameter>
  41084. </parameters>
  41085. </function>
  41086. <function name="debug_get_all_categories"
  41087. c:identifier="gst_debug_get_all_categories">
  41088. <doc xml:space="preserve">Returns a snapshot of a all categories that are currently in use . This list
  41089. may change anytime.
  41090. The caller has to free the list after use.</doc>
  41091. <return-value transfer-ownership="container">
  41092. <doc xml:space="preserve">the list of
  41093. debug categories</doc>
  41094. <type name="GLib.SList" c:type="GSList*">
  41095. <type name="DebugCategory"/>
  41096. </type>
  41097. </return-value>
  41098. </function>
  41099. <function name="debug_get_color_mode"
  41100. c:identifier="gst_debug_get_color_mode"
  41101. version="1.2">
  41102. <doc xml:space="preserve">Changes the coloring mode for debug output.</doc>
  41103. <return-value transfer-ownership="none">
  41104. <doc xml:space="preserve">see @GstDebugColorMode for possible values.</doc>
  41105. <type name="DebugColorMode" c:type="GstDebugColorMode"/>
  41106. </return-value>
  41107. </function>
  41108. <function name="debug_get_default_threshold"
  41109. c:identifier="gst_debug_get_default_threshold">
  41110. <doc xml:space="preserve">Returns the default threshold that is used for new categories.</doc>
  41111. <return-value transfer-ownership="none">
  41112. <doc xml:space="preserve">the default threshold level</doc>
  41113. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41114. </return-value>
  41115. </function>
  41116. <function name="debug_is_active" c:identifier="gst_debug_is_active">
  41117. <doc xml:space="preserve">Checks if debugging output is activated.</doc>
  41118. <return-value transfer-ownership="none">
  41119. <doc xml:space="preserve">%TRUE, if debugging is activated</doc>
  41120. <type name="gboolean" c:type="gboolean"/>
  41121. </return-value>
  41122. </function>
  41123. <function name="debug_is_colored" c:identifier="gst_debug_is_colored">
  41124. <doc xml:space="preserve">Checks if the debugging output should be colored.</doc>
  41125. <return-value transfer-ownership="none">
  41126. <doc xml:space="preserve">%TRUE, if the debug output should be colored.</doc>
  41127. <type name="gboolean" c:type="gboolean"/>
  41128. </return-value>
  41129. </function>
  41130. <function name="debug_level_get_name"
  41131. c:identifier="gst_debug_level_get_name"
  41132. moved-to="DebugLevel.get_name">
  41133. <doc xml:space="preserve">Get the string representation of a debugging level</doc>
  41134. <return-value transfer-ownership="none">
  41135. <doc xml:space="preserve">the name</doc>
  41136. <type name="utf8" c:type="const gchar*"/>
  41137. </return-value>
  41138. <parameters>
  41139. <parameter name="level" transfer-ownership="none">
  41140. <doc xml:space="preserve">the level to get the name for</doc>
  41141. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41142. </parameter>
  41143. </parameters>
  41144. </function>
  41145. <function name="debug_log" c:identifier="gst_debug_log" introspectable="0">
  41146. <doc xml:space="preserve">Logs the given message using the currently registered debugging handlers.</doc>
  41147. <return-value transfer-ownership="none">
  41148. <type name="none" c:type="void"/>
  41149. </return-value>
  41150. <parameters>
  41151. <parameter name="category" transfer-ownership="none">
  41152. <doc xml:space="preserve">category to log</doc>
  41153. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  41154. </parameter>
  41155. <parameter name="level" transfer-ownership="none">
  41156. <doc xml:space="preserve">level of the message is in</doc>
  41157. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41158. </parameter>
  41159. <parameter name="file" transfer-ownership="none">
  41160. <doc xml:space="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
  41161. <type name="utf8" c:type="const gchar*"/>
  41162. </parameter>
  41163. <parameter name="function" transfer-ownership="none">
  41164. <doc xml:space="preserve">the function that emitted the message</doc>
  41165. <type name="utf8" c:type="const gchar*"/>
  41166. </parameter>
  41167. <parameter name="line" transfer-ownership="none">
  41168. <doc xml:space="preserve">the line from that the message was emitted, usually __LINE__</doc>
  41169. <type name="gint" c:type="gint"/>
  41170. </parameter>
  41171. <parameter name="object"
  41172. transfer-ownership="none"
  41173. nullable="1"
  41174. allow-none="1">
  41175. <doc xml:space="preserve">the object this message relates to,
  41176. or %NULL if none</doc>
  41177. <type name="GObject.Object" c:type="GObject*"/>
  41178. </parameter>
  41179. <parameter name="format" transfer-ownership="none">
  41180. <doc xml:space="preserve">a printf style format string</doc>
  41181. <type name="utf8" c:type="const gchar*"/>
  41182. </parameter>
  41183. <parameter name="..." transfer-ownership="none">
  41184. <doc xml:space="preserve">optional arguments for the format</doc>
  41185. <varargs/>
  41186. </parameter>
  41187. </parameters>
  41188. </function>
  41189. <function name="debug_log_default" c:identifier="gst_debug_log_default">
  41190. <doc xml:space="preserve">The default logging handler used by GStreamer. Logging functions get called
  41191. whenever a macro like GST_DEBUG or similar is used. By default this function
  41192. is setup to output the message and additional info to stderr (or the log file
  41193. specified via the GST_DEBUG_FILE environment variable) as received via
  41194. @user_data.
  41195. You can add other handlers by using gst_debug_add_log_function().
  41196. And you can remove this handler by calling
  41197. gst_debug_remove_log_function(gst_debug_log_default);</doc>
  41198. <return-value transfer-ownership="none">
  41199. <type name="none" c:type="void"/>
  41200. </return-value>
  41201. <parameters>
  41202. <parameter name="category" transfer-ownership="none">
  41203. <doc xml:space="preserve">category to log</doc>
  41204. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  41205. </parameter>
  41206. <parameter name="level" transfer-ownership="none">
  41207. <doc xml:space="preserve">level of the message</doc>
  41208. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41209. </parameter>
  41210. <parameter name="file" transfer-ownership="none">
  41211. <doc xml:space="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
  41212. <type name="utf8" c:type="const gchar*"/>
  41213. </parameter>
  41214. <parameter name="function" transfer-ownership="none">
  41215. <doc xml:space="preserve">the function that emitted the message</doc>
  41216. <type name="utf8" c:type="const gchar*"/>
  41217. </parameter>
  41218. <parameter name="line" transfer-ownership="none">
  41219. <doc xml:space="preserve">the line from that the message was emitted, usually __LINE__</doc>
  41220. <type name="gint" c:type="gint"/>
  41221. </parameter>
  41222. <parameter name="object"
  41223. transfer-ownership="none"
  41224. nullable="1"
  41225. allow-none="1">
  41226. <doc xml:space="preserve">the object this message relates to,
  41227. or %NULL if none</doc>
  41228. <type name="GObject.Object" c:type="GObject*"/>
  41229. </parameter>
  41230. <parameter name="message" transfer-ownership="none">
  41231. <doc xml:space="preserve">the actual message</doc>
  41232. <type name="DebugMessage" c:type="GstDebugMessage*"/>
  41233. </parameter>
  41234. <parameter name="user_data"
  41235. transfer-ownership="none"
  41236. nullable="1"
  41237. allow-none="1">
  41238. <doc xml:space="preserve">the FILE* to log to</doc>
  41239. <type name="gpointer" c:type="gpointer"/>
  41240. </parameter>
  41241. </parameters>
  41242. </function>
  41243. <function name="debug_log_valist"
  41244. c:identifier="gst_debug_log_valist"
  41245. introspectable="0">
  41246. <doc xml:space="preserve">Logs the given message using the currently registered debugging handlers.</doc>
  41247. <return-value transfer-ownership="none">
  41248. <type name="none" c:type="void"/>
  41249. </return-value>
  41250. <parameters>
  41251. <parameter name="category" transfer-ownership="none">
  41252. <doc xml:space="preserve">category to log</doc>
  41253. <type name="DebugCategory" c:type="GstDebugCategory*"/>
  41254. </parameter>
  41255. <parameter name="level" transfer-ownership="none">
  41256. <doc xml:space="preserve">level of the message is in</doc>
  41257. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41258. </parameter>
  41259. <parameter name="file" transfer-ownership="none">
  41260. <doc xml:space="preserve">the file that emitted the message, usually the __FILE__ identifier</doc>
  41261. <type name="utf8" c:type="const gchar*"/>
  41262. </parameter>
  41263. <parameter name="function" transfer-ownership="none">
  41264. <doc xml:space="preserve">the function that emitted the message</doc>
  41265. <type name="utf8" c:type="const gchar*"/>
  41266. </parameter>
  41267. <parameter name="line" transfer-ownership="none">
  41268. <doc xml:space="preserve">the line from that the message was emitted, usually __LINE__</doc>
  41269. <type name="gint" c:type="gint"/>
  41270. </parameter>
  41271. <parameter name="object"
  41272. transfer-ownership="none"
  41273. nullable="1"
  41274. allow-none="1">
  41275. <doc xml:space="preserve">the object this message relates to,
  41276. or %NULL if none</doc>
  41277. <type name="GObject.Object" c:type="GObject*"/>
  41278. </parameter>
  41279. <parameter name="format" transfer-ownership="none">
  41280. <doc xml:space="preserve">a printf style format string</doc>
  41281. <type name="utf8" c:type="const gchar*"/>
  41282. </parameter>
  41283. <parameter name="args" transfer-ownership="none">
  41284. <doc xml:space="preserve">optional arguments for the format</doc>
  41285. <type name="va_list" c:type="va_list"/>
  41286. </parameter>
  41287. </parameters>
  41288. </function>
  41289. <function name="debug_print_stack_trace"
  41290. c:identifier="gst_debug_print_stack_trace">
  41291. <doc xml:space="preserve">If GST_ENABLE_FUNC_INSTRUMENTATION is defined a stacktrace is available for
  41292. gstreamer code, which can be printed with this function.</doc>
  41293. <return-value transfer-ownership="none">
  41294. <type name="none" c:type="void"/>
  41295. </return-value>
  41296. </function>
  41297. <function name="debug_remove_log_function"
  41298. c:identifier="gst_debug_remove_log_function">
  41299. <doc xml:space="preserve">Removes all registered instances of the given logging functions.</doc>
  41300. <return-value transfer-ownership="none">
  41301. <doc xml:space="preserve">How many instances of the function were removed</doc>
  41302. <type name="guint" c:type="guint"/>
  41303. </return-value>
  41304. <parameters>
  41305. <parameter name="func" transfer-ownership="none" scope="call">
  41306. <doc xml:space="preserve">the log function to remove</doc>
  41307. <type name="LogFunction" c:type="GstLogFunction"/>
  41308. </parameter>
  41309. </parameters>
  41310. </function>
  41311. <function name="debug_remove_log_function_by_data"
  41312. c:identifier="gst_debug_remove_log_function_by_data">
  41313. <doc xml:space="preserve">Removes all registered instances of log functions with the given user data.</doc>
  41314. <return-value transfer-ownership="none">
  41315. <doc xml:space="preserve">How many instances of the function were removed</doc>
  41316. <type name="guint" c:type="guint"/>
  41317. </return-value>
  41318. <parameters>
  41319. <parameter name="data"
  41320. transfer-ownership="none"
  41321. nullable="1"
  41322. allow-none="1">
  41323. <doc xml:space="preserve">user data of the log function to remove</doc>
  41324. <type name="gpointer" c:type="gpointer"/>
  41325. </parameter>
  41326. </parameters>
  41327. </function>
  41328. <function name="debug_set_active" c:identifier="gst_debug_set_active">
  41329. <doc xml:space="preserve">If activated, debugging messages are sent to the debugging
  41330. handlers.
  41331. It makes sense to deactivate it for speed issues.
  41332. &lt;note&gt;&lt;para&gt;This function is not threadsafe. It makes sense to only call it
  41333. during initialization.&lt;/para&gt;&lt;/note&gt;</doc>
  41334. <return-value transfer-ownership="none">
  41335. <type name="none" c:type="void"/>
  41336. </return-value>
  41337. <parameters>
  41338. <parameter name="active" transfer-ownership="none">
  41339. <doc xml:space="preserve">Whether to use debugging output or not</doc>
  41340. <type name="gboolean" c:type="gboolean"/>
  41341. </parameter>
  41342. </parameters>
  41343. </function>
  41344. <function name="debug_set_color_mode"
  41345. c:identifier="gst_debug_set_color_mode"
  41346. version="1.2">
  41347. <doc xml:space="preserve">Changes the coloring mode for debug output.
  41348. This function may be called before gst_init().</doc>
  41349. <return-value transfer-ownership="none">
  41350. <type name="none" c:type="void"/>
  41351. </return-value>
  41352. <parameters>
  41353. <parameter name="mode" transfer-ownership="none">
  41354. <doc xml:space="preserve">The coloring mode for debug output. See @GstDebugColorMode.</doc>
  41355. <type name="DebugColorMode" c:type="GstDebugColorMode"/>
  41356. </parameter>
  41357. </parameters>
  41358. </function>
  41359. <function name="debug_set_color_mode_from_string"
  41360. c:identifier="gst_debug_set_color_mode_from_string"
  41361. version="1.2">
  41362. <doc xml:space="preserve">Changes the coloring mode for debug output.
  41363. This function may be called before gst_init().</doc>
  41364. <return-value transfer-ownership="none">
  41365. <type name="none" c:type="void"/>
  41366. </return-value>
  41367. <parameters>
  41368. <parameter name="mode" transfer-ownership="none">
  41369. <doc xml:space="preserve">The coloring mode for debug output. One of the following:
  41370. "on", "auto", "off", "disable", "unix".</doc>
  41371. <type name="utf8" c:type="const gchar*"/>
  41372. </parameter>
  41373. </parameters>
  41374. </function>
  41375. <function name="debug_set_colored" c:identifier="gst_debug_set_colored">
  41376. <doc xml:space="preserve">Sets or unsets the use of coloured debugging output.
  41377. Same as gst_debug_set_color_mode () with the argument being
  41378. being GST_DEBUG_COLOR_MODE_ON or GST_DEBUG_COLOR_MODE_OFF.
  41379. This function may be called before gst_init().</doc>
  41380. <return-value transfer-ownership="none">
  41381. <type name="none" c:type="void"/>
  41382. </return-value>
  41383. <parameters>
  41384. <parameter name="colored" transfer-ownership="none">
  41385. <doc xml:space="preserve">Whether to use colored output or not</doc>
  41386. <type name="gboolean" c:type="gboolean"/>
  41387. </parameter>
  41388. </parameters>
  41389. </function>
  41390. <function name="debug_set_default_threshold"
  41391. c:identifier="gst_debug_set_default_threshold">
  41392. <doc xml:space="preserve">Sets the default threshold to the given level and updates all categories to
  41393. use this threshold.
  41394. This function may be called before gst_init().</doc>
  41395. <return-value transfer-ownership="none">
  41396. <type name="none" c:type="void"/>
  41397. </return-value>
  41398. <parameters>
  41399. <parameter name="level" transfer-ownership="none">
  41400. <doc xml:space="preserve">level to set</doc>
  41401. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41402. </parameter>
  41403. </parameters>
  41404. </function>
  41405. <function name="debug_set_threshold_for_name"
  41406. c:identifier="gst_debug_set_threshold_for_name">
  41407. <doc xml:space="preserve">Sets all categories which match the given glob style pattern to the given
  41408. level.</doc>
  41409. <return-value transfer-ownership="none">
  41410. <type name="none" c:type="void"/>
  41411. </return-value>
  41412. <parameters>
  41413. <parameter name="name" transfer-ownership="none">
  41414. <doc xml:space="preserve">name of the categories to set</doc>
  41415. <type name="utf8" c:type="const gchar*"/>
  41416. </parameter>
  41417. <parameter name="level" transfer-ownership="none">
  41418. <doc xml:space="preserve">level to set them to</doc>
  41419. <type name="DebugLevel" c:type="GstDebugLevel"/>
  41420. </parameter>
  41421. </parameters>
  41422. </function>
  41423. <function name="debug_set_threshold_from_string"
  41424. c:identifier="gst_debug_set_threshold_from_string"
  41425. version="1.2">
  41426. <doc xml:space="preserve">Sets the debug logging wanted in the same form as with the GST_DEBUG
  41427. environment variable. You can use wildcards such as '*', but note that
  41428. the order matters when you use wild cards, e.g. "foosrc:6,*src:3,*:2" sets
  41429. everything to log level 2.</doc>
  41430. <return-value transfer-ownership="none">
  41431. <type name="none" c:type="void"/>
  41432. </return-value>
  41433. <parameters>
  41434. <parameter name="list" transfer-ownership="none">
  41435. <doc xml:space="preserve">comma-separated list of "category:level" pairs to be used
  41436. as debug logging levels</doc>
  41437. <type name="utf8" c:type="const gchar*"/>
  41438. </parameter>
  41439. <parameter name="reset" transfer-ownership="none">
  41440. <doc xml:space="preserve">%TRUE to clear all previously-set debug levels before setting
  41441. new thresholds
  41442. %FALSE if adding the threshold described by @list to the one already set.</doc>
  41443. <type name="gboolean" c:type="gboolean"/>
  41444. </parameter>
  41445. </parameters>
  41446. </function>
  41447. <function name="debug_unset_threshold_for_name"
  41448. c:identifier="gst_debug_unset_threshold_for_name">
  41449. <doc xml:space="preserve">Resets all categories with the given name back to the default level.</doc>
  41450. <return-value transfer-ownership="none">
  41451. <type name="none" c:type="void"/>
  41452. </return-value>
  41453. <parameters>
  41454. <parameter name="name" transfer-ownership="none">
  41455. <doc xml:space="preserve">name of the categories to set</doc>
  41456. <type name="utf8" c:type="const gchar*"/>
  41457. </parameter>
  41458. </parameters>
  41459. </function>
  41460. <function name="deinit" c:identifier="gst_deinit">
  41461. <doc xml:space="preserve">Clean up any resources created by GStreamer in gst_init().
  41462. It is normally not needed to call this function in a normal application
  41463. as the resources will automatically be freed when the program terminates.
  41464. This function is therefore mostly used by testsuites and other memory
  41465. profiling tools.
  41466. After this call GStreamer (including this method) should not be used anymore.</doc>
  41467. <return-value transfer-ownership="none">
  41468. <type name="none" c:type="void"/>
  41469. </return-value>
  41470. </function>
  41471. <function name="error_get_message" c:identifier="gst_error_get_message">
  41472. <doc xml:space="preserve">Get a string describing the error message in the current locale.</doc>
  41473. <return-value transfer-ownership="full">
  41474. <doc xml:space="preserve">a newly allocated string describing
  41475. the error message (in UTF-8 encoding)</doc>
  41476. <type name="utf8" c:type="gchar*"/>
  41477. </return-value>
  41478. <parameters>
  41479. <parameter name="domain" transfer-ownership="none">
  41480. <doc xml:space="preserve">the GStreamer error domain this error belongs to.</doc>
  41481. <type name="GLib.Quark" c:type="GQuark"/>
  41482. </parameter>
  41483. <parameter name="code" transfer-ownership="none">
  41484. <doc xml:space="preserve">the error code belonging to the domain.</doc>
  41485. <type name="gint" c:type="gint"/>
  41486. </parameter>
  41487. </parameters>
  41488. </function>
  41489. <function name="event_type_get_flags"
  41490. c:identifier="gst_event_type_get_flags"
  41491. moved-to="EventType.get_flags">
  41492. <doc xml:space="preserve">Gets the #GstEventTypeFlags associated with @type.</doc>
  41493. <return-value transfer-ownership="none">
  41494. <doc xml:space="preserve">a #GstEventTypeFlags.</doc>
  41495. <type name="EventTypeFlags" c:type="GstEventTypeFlags"/>
  41496. </return-value>
  41497. <parameters>
  41498. <parameter name="type" transfer-ownership="none">
  41499. <doc xml:space="preserve">a #GstEventType</doc>
  41500. <type name="EventType" c:type="GstEventType"/>
  41501. </parameter>
  41502. </parameters>
  41503. </function>
  41504. <function name="event_type_get_name"
  41505. c:identifier="gst_event_type_get_name"
  41506. moved-to="EventType.get_name">
  41507. <doc xml:space="preserve">Get a printable name for the given event type. Do not modify or free.</doc>
  41508. <return-value transfer-ownership="none">
  41509. <doc xml:space="preserve">a reference to the static name of the event.</doc>
  41510. <type name="utf8" c:type="const gchar*"/>
  41511. </return-value>
  41512. <parameters>
  41513. <parameter name="type" transfer-ownership="none">
  41514. <doc xml:space="preserve">the event type</doc>
  41515. <type name="EventType" c:type="GstEventType"/>
  41516. </parameter>
  41517. </parameters>
  41518. </function>
  41519. <function name="event_type_to_quark"
  41520. c:identifier="gst_event_type_to_quark"
  41521. moved-to="EventType.to_quark">
  41522. <doc xml:space="preserve">Get the unique quark for the given event type.</doc>
  41523. <return-value transfer-ownership="none">
  41524. <doc xml:space="preserve">the quark associated with the event type</doc>
  41525. <type name="GLib.Quark" c:type="GQuark"/>
  41526. </return-value>
  41527. <parameters>
  41528. <parameter name="type" transfer-ownership="none">
  41529. <doc xml:space="preserve">the event type</doc>
  41530. <type name="EventType" c:type="GstEventType"/>
  41531. </parameter>
  41532. </parameters>
  41533. </function>
  41534. <function name="filename_to_uri"
  41535. c:identifier="gst_filename_to_uri"
  41536. throws="1">
  41537. <doc xml:space="preserve">Similar to g_filename_to_uri(), but attempts to handle relative file paths
  41538. as well. Before converting @filename into an URI, it will be prefixed by
  41539. the current working directory if it is a relative path, and then the path
  41540. will be canonicalised so that it doesn't contain any './' or '../' segments.
  41541. On Windows #filename should be in UTF-8 encoding.</doc>
  41542. <return-value transfer-ownership="full">
  41543. <doc xml:space="preserve">newly-allocated URI string, or NULL on error. The caller must
  41544. free the URI string with g_free() when no longer needed.</doc>
  41545. <type name="utf8" c:type="gchar*"/>
  41546. </return-value>
  41547. <parameters>
  41548. <parameter name="filename" transfer-ownership="none">
  41549. <doc xml:space="preserve">absolute or relative file name path</doc>
  41550. <type name="utf8" c:type="const gchar*"/>
  41551. </parameter>
  41552. </parameters>
  41553. </function>
  41554. <function name="flow_get_name" c:identifier="gst_flow_get_name">
  41555. <doc xml:space="preserve">Gets a string representing the given flow return.</doc>
  41556. <return-value transfer-ownership="none">
  41557. <doc xml:space="preserve">a static string with the name of the flow return.</doc>
  41558. <type name="utf8" c:type="const gchar*"/>
  41559. </return-value>
  41560. <parameters>
  41561. <parameter name="ret" transfer-ownership="none">
  41562. <doc xml:space="preserve">a #GstFlowReturn to get the name of.</doc>
  41563. <type name="FlowReturn" c:type="GstFlowReturn"/>
  41564. </parameter>
  41565. </parameters>
  41566. </function>
  41567. <function name="flow_to_quark" c:identifier="gst_flow_to_quark">
  41568. <doc xml:space="preserve">Get the unique quark for the given GstFlowReturn.</doc>
  41569. <return-value transfer-ownership="none">
  41570. <doc xml:space="preserve">the quark associated with the flow return or 0 if an
  41571. invalid return was specified.</doc>
  41572. <type name="GLib.Quark" c:type="GQuark"/>
  41573. </return-value>
  41574. <parameters>
  41575. <parameter name="ret" transfer-ownership="none">
  41576. <doc xml:space="preserve">a #GstFlowReturn to get the quark of.</doc>
  41577. <type name="FlowReturn" c:type="GstFlowReturn"/>
  41578. </parameter>
  41579. </parameters>
  41580. </function>
  41581. <function name="format_get_by_nick"
  41582. c:identifier="gst_format_get_by_nick"
  41583. moved-to="Format.get_by_nick">
  41584. <doc xml:space="preserve">Return the format registered with the given nick.</doc>
  41585. <return-value transfer-ownership="none">
  41586. <doc xml:space="preserve">The format with @nick or GST_FORMAT_UNDEFINED
  41587. if the format was not registered.</doc>
  41588. <type name="Format" c:type="GstFormat"/>
  41589. </return-value>
  41590. <parameters>
  41591. <parameter name="nick" transfer-ownership="none">
  41592. <doc xml:space="preserve">The nick of the format</doc>
  41593. <type name="utf8" c:type="const gchar*"/>
  41594. </parameter>
  41595. </parameters>
  41596. </function>
  41597. <function name="format_get_details"
  41598. c:identifier="gst_format_get_details"
  41599. moved-to="Format.get_details">
  41600. <doc xml:space="preserve">Get details about the given format.</doc>
  41601. <return-value transfer-ownership="none" nullable="1">
  41602. <doc xml:space="preserve">The #GstFormatDefinition for @format or %NULL
  41603. on failure.
  41604. MT safe.</doc>
  41605. <type name="FormatDefinition" c:type="const GstFormatDefinition*"/>
  41606. </return-value>
  41607. <parameters>
  41608. <parameter name="format" transfer-ownership="none">
  41609. <doc xml:space="preserve">The format to get details of</doc>
  41610. <type name="Format" c:type="GstFormat"/>
  41611. </parameter>
  41612. </parameters>
  41613. </function>
  41614. <function name="format_get_name"
  41615. c:identifier="gst_format_get_name"
  41616. moved-to="Format.get_name">
  41617. <doc xml:space="preserve">Get a printable name for the given format. Do not modify or free.</doc>
  41618. <return-value transfer-ownership="none" nullable="1">
  41619. <doc xml:space="preserve">a reference to the static name of the format
  41620. or %NULL if the format is unknown.</doc>
  41621. <type name="utf8" c:type="const gchar*"/>
  41622. </return-value>
  41623. <parameters>
  41624. <parameter name="format" transfer-ownership="none">
  41625. <doc xml:space="preserve">a #GstFormat</doc>
  41626. <type name="Format" c:type="GstFormat"/>
  41627. </parameter>
  41628. </parameters>
  41629. </function>
  41630. <function name="format_iterate_definitions"
  41631. c:identifier="gst_format_iterate_definitions"
  41632. moved-to="Format.iterate_definitions">
  41633. <doc xml:space="preserve">Iterate all the registered formats. The format definition is read
  41634. only.</doc>
  41635. <return-value transfer-ownership="full">
  41636. <doc xml:space="preserve">a GstIterator of #GstFormatDefinition.</doc>
  41637. <type name="Iterator" c:type="GstIterator*"/>
  41638. </return-value>
  41639. </function>
  41640. <function name="format_register"
  41641. c:identifier="gst_format_register"
  41642. moved-to="Format.register">
  41643. <doc xml:space="preserve">Create a new GstFormat based on the nick or return an
  41644. already registered format with that nick.</doc>
  41645. <return-value transfer-ownership="none">
  41646. <doc xml:space="preserve">A new GstFormat or an already registered format
  41647. with the same nick.
  41648. MT safe.</doc>
  41649. <type name="Format" c:type="GstFormat"/>
  41650. </return-value>
  41651. <parameters>
  41652. <parameter name="nick" transfer-ownership="none">
  41653. <doc xml:space="preserve">The nick of the new format</doc>
  41654. <type name="utf8" c:type="const gchar*"/>
  41655. </parameter>
  41656. <parameter name="description" transfer-ownership="none">
  41657. <doc xml:space="preserve">The description of the new format</doc>
  41658. <type name="utf8" c:type="const gchar*"/>
  41659. </parameter>
  41660. </parameters>
  41661. </function>
  41662. <function name="format_to_quark"
  41663. c:identifier="gst_format_to_quark"
  41664. moved-to="Format.to_quark">
  41665. <doc xml:space="preserve">Get the unique quark for the given format.</doc>
  41666. <return-value transfer-ownership="none">
  41667. <doc xml:space="preserve">the quark associated with the format or 0 if the format
  41668. is unknown.</doc>
  41669. <type name="GLib.Quark" c:type="GQuark"/>
  41670. </return-value>
  41671. <parameters>
  41672. <parameter name="format" transfer-ownership="none">
  41673. <doc xml:space="preserve">a #GstFormat</doc>
  41674. <type name="Format" c:type="GstFormat"/>
  41675. </parameter>
  41676. </parameters>
  41677. </function>
  41678. <function name="formats_contains" c:identifier="gst_formats_contains">
  41679. <doc xml:space="preserve">See if the given format is inside the format array.</doc>
  41680. <return-value transfer-ownership="none">
  41681. <doc xml:space="preserve">%TRUE if the format is found inside the array</doc>
  41682. <type name="gboolean" c:type="gboolean"/>
  41683. </return-value>
  41684. <parameters>
  41685. <parameter name="formats" transfer-ownership="none">
  41686. <doc xml:space="preserve">The format array to search</doc>
  41687. <array c:type="GstFormat*">
  41688. <type name="Format" c:type="GstFormat"/>
  41689. </array>
  41690. </parameter>
  41691. <parameter name="format" transfer-ownership="none">
  41692. <doc xml:space="preserve">the format to find</doc>
  41693. <type name="Format" c:type="GstFormat"/>
  41694. </parameter>
  41695. </parameters>
  41696. </function>
  41697. <function name="info_strdup_printf"
  41698. c:identifier="gst_info_strdup_printf"
  41699. version="1.8"
  41700. introspectable="0">
  41701. <doc xml:space="preserve">Allocates, fills and returns a null terminated string from the printf style
  41702. @format string and corresponding arguments.
  41703. See gst_info_vasprintf() for when this function is required.
  41704. Free with g_free().</doc>
  41705. <return-value transfer-ownership="full">
  41706. <doc xml:space="preserve">a newly allocated null terminated string or %NULL on any error</doc>
  41707. <type name="utf8" c:type="gchar*"/>
  41708. </return-value>
  41709. <parameters>
  41710. <parameter name="format" transfer-ownership="none">
  41711. <doc xml:space="preserve">a printf style format string</doc>
  41712. <type name="utf8" c:type="const gchar*"/>
  41713. </parameter>
  41714. <parameter name="..." transfer-ownership="none">
  41715. <doc xml:space="preserve">the printf arguments for @format</doc>
  41716. <varargs/>
  41717. </parameter>
  41718. </parameters>
  41719. </function>
  41720. <function name="info_strdup_vprintf"
  41721. c:identifier="gst_info_strdup_vprintf"
  41722. version="1.8"
  41723. introspectable="0">
  41724. <doc xml:space="preserve">Allocates, fills and returns a null terminated string from the printf style
  41725. @format string and @args.
  41726. See gst_info_vasprintf() for when this function is required.
  41727. Free with g_free().</doc>
  41728. <return-value transfer-ownership="full">
  41729. <doc xml:space="preserve">a newly allocated null terminated string or %NULL on any error</doc>
  41730. <type name="utf8" c:type="gchar*"/>
  41731. </return-value>
  41732. <parameters>
  41733. <parameter name="format" transfer-ownership="none">
  41734. <doc xml:space="preserve">a printf style format string</doc>
  41735. <type name="utf8" c:type="const gchar*"/>
  41736. </parameter>
  41737. <parameter name="args" transfer-ownership="none">
  41738. <doc xml:space="preserve">the va_list of printf arguments for @format</doc>
  41739. <type name="va_list" c:type="va_list"/>
  41740. </parameter>
  41741. </parameters>
  41742. </function>
  41743. <function name="info_vasprintf"
  41744. c:identifier="gst_info_vasprintf"
  41745. version="1.8"
  41746. introspectable="0">
  41747. <doc xml:space="preserve">Allocates and fills a string large enough (including the terminating null
  41748. byte) to hold the specified printf style @format and @args.
  41749. This function deals with the GStreamer specific printf specifiers
  41750. #GST_PTR_FORMAT and #GST_SEGMENT_FORMAT. If you do not have these specifiers
  41751. in your @format string, you do not need to use this function and can use
  41752. alternatives such as g_vasprintf().
  41753. Free @result with g_free().</doc>
  41754. <return-value transfer-ownership="none">
  41755. <doc xml:space="preserve">the length of the string allocated into @result or -1 on any error</doc>
  41756. <type name="gint" c:type="gint"/>
  41757. </return-value>
  41758. <parameters>
  41759. <parameter name="result"
  41760. direction="out"
  41761. caller-allocates="0"
  41762. transfer-ownership="full">
  41763. <doc xml:space="preserve">the resulting string</doc>
  41764. <type name="utf8" c:type="gchar**"/>
  41765. </parameter>
  41766. <parameter name="format" transfer-ownership="none">
  41767. <doc xml:space="preserve">a printf style format string</doc>
  41768. <type name="utf8" c:type="const gchar*"/>
  41769. </parameter>
  41770. <parameter name="args" transfer-ownership="none">
  41771. <doc xml:space="preserve">the va_list of printf arguments for @format</doc>
  41772. <type name="va_list" c:type="va_list"/>
  41773. </parameter>
  41774. </parameters>
  41775. </function>
  41776. <function name="init" c:identifier="gst_init">
  41777. <doc xml:space="preserve">Initializes the GStreamer library, setting up internal path lists,
  41778. registering built-in elements, and loading standard plugins.
  41779. Unless the plugin registry is disabled at compile time, the registry will be
  41780. loaded. By default this will also check if the registry cache needs to be
  41781. updated and rescan all plugins if needed. See gst_update_registry() for
  41782. details and section
  41783. &lt;link linkend="gst-running"&gt;Running GStreamer Applications&lt;/link&gt;
  41784. for how to disable automatic registry updates.
  41785. &lt;note&gt;&lt;para&gt;
  41786. This function will terminate your program if it was unable to initialize
  41787. GStreamer for some reason. If you want your program to fall back,
  41788. use gst_init_check() instead.
  41789. &lt;/para&gt;&lt;/note&gt;
  41790. WARNING: This function does not work in the same way as corresponding
  41791. functions in other glib-style libraries, such as gtk_init\(\). In
  41792. particular, unknown command line options cause this function to
  41793. abort program execution.</doc>
  41794. <return-value transfer-ownership="none">
  41795. <type name="none" c:type="void"/>
  41796. </return-value>
  41797. <parameters>
  41798. <parameter name="argc"
  41799. direction="inout"
  41800. caller-allocates="0"
  41801. transfer-ownership="full"
  41802. nullable="1"
  41803. allow-none="1">
  41804. <doc xml:space="preserve">pointer to application's argc</doc>
  41805. <type name="gint" c:type="int*"/>
  41806. </parameter>
  41807. <parameter name="argv"
  41808. direction="inout"
  41809. caller-allocates="0"
  41810. transfer-ownership="full"
  41811. nullable="1"
  41812. allow-none="1">
  41813. <doc xml:space="preserve">pointer to application's argv</doc>
  41814. <array length="0" zero-terminated="0" c:type="char**">
  41815. <type name="utf8" c:type="char*"/>
  41816. </array>
  41817. </parameter>
  41818. </parameters>
  41819. </function>
  41820. <function name="init_check" c:identifier="gst_init_check" throws="1">
  41821. <doc xml:space="preserve">Initializes the GStreamer library, setting up internal path lists,
  41822. registering built-in elements, and loading standard plugins.
  41823. This function will return %FALSE if GStreamer could not be initialized
  41824. for some reason. If you want your program to fail fatally,
  41825. use gst_init() instead.</doc>
  41826. <return-value transfer-ownership="none">
  41827. <doc xml:space="preserve">%TRUE if GStreamer could be initialized.</doc>
  41828. <type name="gboolean" c:type="gboolean"/>
  41829. </return-value>
  41830. <parameters>
  41831. <parameter name="argc"
  41832. direction="inout"
  41833. caller-allocates="0"
  41834. transfer-ownership="full"
  41835. nullable="1"
  41836. allow-none="1">
  41837. <doc xml:space="preserve">pointer to application's argc</doc>
  41838. <type name="gint" c:type="int*"/>
  41839. </parameter>
  41840. <parameter name="argv"
  41841. direction="inout"
  41842. caller-allocates="0"
  41843. transfer-ownership="full"
  41844. nullable="1"
  41845. allow-none="1">
  41846. <doc xml:space="preserve">pointer to application's argv</doc>
  41847. <array length="0" zero-terminated="0" c:type="char**">
  41848. <type name="utf8" c:type="char*"/>
  41849. </array>
  41850. </parameter>
  41851. </parameters>
  41852. </function>
  41853. <function name="init_get_option_group"
  41854. c:identifier="gst_init_get_option_group"
  41855. introspectable="0">
  41856. <doc xml:space="preserve">Returns a #GOptionGroup with GStreamer's argument specifications. The
  41857. group is set up to use standard GOption callbacks, so when using this
  41858. group in combination with GOption parsing methods, all argument parsing
  41859. and initialization is automated.
  41860. This function is useful if you want to integrate GStreamer with other
  41861. libraries that use GOption (see g_option_context_add_group() ).
  41862. If you use this function, you should make sure you initialise the GLib
  41863. threading system as one of the very first things in your program
  41864. (see the example at the beginning of this section).</doc>
  41865. <return-value transfer-ownership="full">
  41866. <doc xml:space="preserve">a pointer to GStreamer's option group.</doc>
  41867. <type name="GLib.OptionGroup" c:type="GOptionGroup*"/>
  41868. </return-value>
  41869. </function>
  41870. <function name="is_caps_features" c:identifier="gst_is_caps_features">
  41871. <return-value transfer-ownership="none">
  41872. <type name="gboolean" c:type="gboolean"/>
  41873. </return-value>
  41874. <parameters>
  41875. <parameter name="obj"
  41876. transfer-ownership="none"
  41877. nullable="1"
  41878. allow-none="1">
  41879. <type name="gpointer" c:type="gconstpointer"/>
  41880. </parameter>
  41881. </parameters>
  41882. </function>
  41883. <function name="is_initialized" c:identifier="gst_is_initialized">
  41884. <doc xml:space="preserve">Use this function to check if GStreamer has been initialized with gst_init()
  41885. or gst_init_check().</doc>
  41886. <return-value transfer-ownership="none">
  41887. <doc xml:space="preserve">%TRUE if initialization has been done, %FALSE otherwise.</doc>
  41888. <type name="gboolean" c:type="gboolean"/>
  41889. </return-value>
  41890. </function>
  41891. <function name="library_error_quark"
  41892. c:identifier="gst_library_error_quark"
  41893. moved-to="LibraryError.quark">
  41894. <return-value transfer-ownership="none">
  41895. <type name="GLib.Quark" c:type="GQuark"/>
  41896. </return-value>
  41897. </function>
  41898. <function name="message_type_get_name"
  41899. c:identifier="gst_message_type_get_name"
  41900. moved-to="MessageType.get_name">
  41901. <doc xml:space="preserve">Get a printable name for the given message type. Do not modify or free.</doc>
  41902. <return-value transfer-ownership="none">
  41903. <doc xml:space="preserve">a reference to the static name of the message.</doc>
  41904. <type name="utf8" c:type="const gchar*"/>
  41905. </return-value>
  41906. <parameters>
  41907. <parameter name="type" transfer-ownership="none">
  41908. <doc xml:space="preserve">the message type</doc>
  41909. <type name="MessageType" c:type="GstMessageType"/>
  41910. </parameter>
  41911. </parameters>
  41912. </function>
  41913. <function name="message_type_to_quark"
  41914. c:identifier="gst_message_type_to_quark"
  41915. moved-to="MessageType.to_quark">
  41916. <doc xml:space="preserve">Get the unique quark for the given message type.</doc>
  41917. <return-value transfer-ownership="none">
  41918. <doc xml:space="preserve">the quark associated with the message type</doc>
  41919. <type name="GLib.Quark" c:type="GQuark"/>
  41920. </return-value>
  41921. <parameters>
  41922. <parameter name="type" transfer-ownership="none">
  41923. <doc xml:space="preserve">the message type</doc>
  41924. <type name="MessageType" c:type="GstMessageType"/>
  41925. </parameter>
  41926. </parameters>
  41927. </function>
  41928. <function name="meta_api_type_get_tags"
  41929. c:identifier="gst_meta_api_type_get_tags"
  41930. moved-to="Meta.api_type_get_tags"
  41931. version="1.2">
  41932. <return-value transfer-ownership="none">
  41933. <doc xml:space="preserve">an array of tags as strings.</doc>
  41934. <array c:type="gchar**">
  41935. <type name="utf8"/>
  41936. </array>
  41937. </return-value>
  41938. <parameters>
  41939. <parameter name="api" transfer-ownership="none">
  41940. <doc xml:space="preserve">an API</doc>
  41941. <type name="GType" c:type="GType"/>
  41942. </parameter>
  41943. </parameters>
  41944. </function>
  41945. <function name="meta_api_type_has_tag"
  41946. c:identifier="gst_meta_api_type_has_tag"
  41947. moved-to="Meta.api_type_has_tag">
  41948. <doc xml:space="preserve">Check if @api was registered with @tag.</doc>
  41949. <return-value transfer-ownership="none">
  41950. <doc xml:space="preserve">%TRUE if @api was registered with @tag.</doc>
  41951. <type name="gboolean" c:type="gboolean"/>
  41952. </return-value>
  41953. <parameters>
  41954. <parameter name="api" transfer-ownership="none">
  41955. <doc xml:space="preserve">an API</doc>
  41956. <type name="GType" c:type="GType"/>
  41957. </parameter>
  41958. <parameter name="tag" transfer-ownership="none">
  41959. <doc xml:space="preserve">the tag to check</doc>
  41960. <type name="GLib.Quark" c:type="GQuark"/>
  41961. </parameter>
  41962. </parameters>
  41963. </function>
  41964. <function name="meta_api_type_register"
  41965. c:identifier="gst_meta_api_type_register"
  41966. moved-to="Meta.api_type_register">
  41967. <doc xml:space="preserve">Register and return a GType for the @api and associate it with
  41968. @tags.</doc>
  41969. <return-value transfer-ownership="none">
  41970. <doc xml:space="preserve">a unique GType for @api.</doc>
  41971. <type name="GType" c:type="GType"/>
  41972. </return-value>
  41973. <parameters>
  41974. <parameter name="api" transfer-ownership="none">
  41975. <doc xml:space="preserve">an API to register</doc>
  41976. <type name="utf8" c:type="const gchar*"/>
  41977. </parameter>
  41978. <parameter name="tags" transfer-ownership="none">
  41979. <doc xml:space="preserve">tags for @api</doc>
  41980. <type name="utf8" c:type="const gchar**"/>
  41981. </parameter>
  41982. </parameters>
  41983. </function>
  41984. <function name="meta_get_info"
  41985. c:identifier="gst_meta_get_info"
  41986. moved-to="Meta.get_info">
  41987. <doc xml:space="preserve">Lookup a previously registered meta info structure by its implementation name
  41988. @impl.</doc>
  41989. <return-value transfer-ownership="none" nullable="1">
  41990. <doc xml:space="preserve">a #GstMetaInfo with @impl, or
  41991. %NULL when no such metainfo exists.</doc>
  41992. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  41993. </return-value>
  41994. <parameters>
  41995. <parameter name="impl" transfer-ownership="none">
  41996. <doc xml:space="preserve">the name</doc>
  41997. <type name="utf8" c:type="const gchar*"/>
  41998. </parameter>
  41999. </parameters>
  42000. </function>
  42001. <function name="meta_register"
  42002. c:identifier="gst_meta_register"
  42003. moved-to="Meta.register">
  42004. <doc xml:space="preserve">Register a new #GstMeta implementation.
  42005. The same @info can be retrieved later with gst_meta_get_info() by using
  42006. @impl as the key.</doc>
  42007. <return-value transfer-ownership="none">
  42008. <doc xml:space="preserve">a #GstMetaInfo that can be used to access metadata.</doc>
  42009. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  42010. </return-value>
  42011. <parameters>
  42012. <parameter name="api" transfer-ownership="none">
  42013. <doc xml:space="preserve">the type of the #GstMeta API</doc>
  42014. <type name="GType" c:type="GType"/>
  42015. </parameter>
  42016. <parameter name="impl" transfer-ownership="none">
  42017. <doc xml:space="preserve">the name of the #GstMeta implementation</doc>
  42018. <type name="utf8" c:type="const gchar*"/>
  42019. </parameter>
  42020. <parameter name="size" transfer-ownership="none">
  42021. <doc xml:space="preserve">the size of the #GstMeta structure</doc>
  42022. <type name="gsize" c:type="gsize"/>
  42023. </parameter>
  42024. <parameter name="init_func" transfer-ownership="none" scope="async">
  42025. <doc xml:space="preserve">a #GstMetaInitFunction</doc>
  42026. <type name="MetaInitFunction" c:type="GstMetaInitFunction"/>
  42027. </parameter>
  42028. <parameter name="free_func" transfer-ownership="none" scope="async">
  42029. <doc xml:space="preserve">a #GstMetaFreeFunction</doc>
  42030. <type name="MetaFreeFunction" c:type="GstMetaFreeFunction"/>
  42031. </parameter>
  42032. <parameter name="transform_func"
  42033. transfer-ownership="none"
  42034. scope="async">
  42035. <doc xml:space="preserve">a #GstMetaTransformFunction</doc>
  42036. <type name="MetaTransformFunction"
  42037. c:type="GstMetaTransformFunction"/>
  42038. </parameter>
  42039. </parameters>
  42040. </function>
  42041. <function name="mini_object_replace"
  42042. c:identifier="gst_mini_object_replace"
  42043. moved-to="MiniObject.replace">
  42044. <doc xml:space="preserve">Atomically modifies a pointer to point to a new mini-object.
  42045. The reference count of @olddata is decreased and the reference count of
  42046. @newdata is increased.
  42047. Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
  42048. <return-value transfer-ownership="none">
  42049. <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
  42050. <type name="gboolean" c:type="gboolean"/>
  42051. </return-value>
  42052. <parameters>
  42053. <parameter name="olddata"
  42054. direction="inout"
  42055. caller-allocates="0"
  42056. transfer-ownership="full"
  42057. nullable="1"
  42058. allow-none="1">
  42059. <doc xml:space="preserve">pointer to a pointer to a
  42060. mini-object to be replaced</doc>
  42061. <type name="MiniObject" c:type="GstMiniObject**"/>
  42062. </parameter>
  42063. <parameter name="newdata"
  42064. transfer-ownership="none"
  42065. nullable="1"
  42066. allow-none="1">
  42067. <doc xml:space="preserve">pointer to new mini-object</doc>
  42068. <type name="MiniObject" c:type="GstMiniObject*"/>
  42069. </parameter>
  42070. </parameters>
  42071. </function>
  42072. <function name="mini_object_steal"
  42073. c:identifier="gst_mini_object_steal"
  42074. moved-to="MiniObject.steal"
  42075. introspectable="0">
  42076. <doc xml:space="preserve">Replace the current #GstMiniObject pointer to by @olddata with %NULL and
  42077. return the old value.</doc>
  42078. <return-value>
  42079. <doc xml:space="preserve">the #GstMiniObject at @oldata</doc>
  42080. <type name="MiniObject" c:type="GstMiniObject*"/>
  42081. </return-value>
  42082. <parameters>
  42083. <parameter name="olddata"
  42084. direction="inout"
  42085. caller-allocates="0"
  42086. transfer-ownership="full">
  42087. <doc xml:space="preserve">pointer to a pointer to a mini-object to
  42088. be stolen</doc>
  42089. <type name="MiniObject" c:type="GstMiniObject**"/>
  42090. </parameter>
  42091. </parameters>
  42092. </function>
  42093. <function name="mini_object_take"
  42094. c:identifier="gst_mini_object_take"
  42095. moved-to="MiniObject.take">
  42096. <doc xml:space="preserve">Modifies a pointer to point to a new mini-object. The modification
  42097. is done atomically. This version is similar to gst_mini_object_replace()
  42098. except that it does not increase the refcount of @newdata and thus
  42099. takes ownership of @newdata.
  42100. Either @newdata and the value pointed to by @olddata may be %NULL.</doc>
  42101. <return-value transfer-ownership="none">
  42102. <doc xml:space="preserve">%TRUE if @newdata was different from @olddata</doc>
  42103. <type name="gboolean" c:type="gboolean"/>
  42104. </return-value>
  42105. <parameters>
  42106. <parameter name="olddata"
  42107. direction="inout"
  42108. caller-allocates="0"
  42109. transfer-ownership="full">
  42110. <doc xml:space="preserve">pointer to a pointer to a mini-object to
  42111. be replaced</doc>
  42112. <type name="MiniObject" c:type="GstMiniObject**"/>
  42113. </parameter>
  42114. <parameter name="newdata" transfer-ownership="none">
  42115. <doc xml:space="preserve">pointer to new mini-object</doc>
  42116. <type name="MiniObject" c:type="GstMiniObject*"/>
  42117. </parameter>
  42118. </parameters>
  42119. </function>
  42120. <function name="pad_mode_get_name"
  42121. c:identifier="gst_pad_mode_get_name"
  42122. moved-to="PadMode.get_name">
  42123. <doc xml:space="preserve">Return the name of a pad mode, for use in debug messages mostly.</doc>
  42124. <return-value transfer-ownership="none">
  42125. <doc xml:space="preserve">short mnemonic for pad mode @mode</doc>
  42126. <type name="utf8" c:type="const gchar*"/>
  42127. </return-value>
  42128. <parameters>
  42129. <parameter name="mode" transfer-ownership="none">
  42130. <doc xml:space="preserve">the pad mode</doc>
  42131. <type name="PadMode" c:type="GstPadMode"/>
  42132. </parameter>
  42133. </parameters>
  42134. </function>
  42135. <function name="param_spec_fraction"
  42136. c:identifier="gst_param_spec_fraction">
  42137. <doc xml:space="preserve">This function creates a fraction GParamSpec for use by objects/elements
  42138. that want to expose properties of fraction type. This function is typically
  42139. used in connection with g_object_class_install_property() in a GObjects's
  42140. instance_init function.</doc>
  42141. <return-value transfer-ownership="full">
  42142. <doc xml:space="preserve">a newly created parameter specification</doc>
  42143. <type name="GObject.ParamSpec" c:type="GParamSpec*"/>
  42144. </return-value>
  42145. <parameters>
  42146. <parameter name="name" transfer-ownership="none">
  42147. <doc xml:space="preserve">canonical name of the property specified</doc>
  42148. <type name="utf8" c:type="const gchar*"/>
  42149. </parameter>
  42150. <parameter name="nick" transfer-ownership="none">
  42151. <doc xml:space="preserve">nick name for the property specified</doc>
  42152. <type name="utf8" c:type="const gchar*"/>
  42153. </parameter>
  42154. <parameter name="blurb" transfer-ownership="none">
  42155. <doc xml:space="preserve">description of the property specified</doc>
  42156. <type name="utf8" c:type="const gchar*"/>
  42157. </parameter>
  42158. <parameter name="min_num" transfer-ownership="none">
  42159. <doc xml:space="preserve">minimum value (fraction numerator)</doc>
  42160. <type name="gint" c:type="gint"/>
  42161. </parameter>
  42162. <parameter name="min_denom" transfer-ownership="none">
  42163. <doc xml:space="preserve">minimum value (fraction denominator)</doc>
  42164. <type name="gint" c:type="gint"/>
  42165. </parameter>
  42166. <parameter name="max_num" transfer-ownership="none">
  42167. <doc xml:space="preserve">maximum value (fraction numerator)</doc>
  42168. <type name="gint" c:type="gint"/>
  42169. </parameter>
  42170. <parameter name="max_denom" transfer-ownership="none">
  42171. <doc xml:space="preserve">maximum value (fraction denominator)</doc>
  42172. <type name="gint" c:type="gint"/>
  42173. </parameter>
  42174. <parameter name="default_num" transfer-ownership="none">
  42175. <doc xml:space="preserve">default value (fraction numerator)</doc>
  42176. <type name="gint" c:type="gint"/>
  42177. </parameter>
  42178. <parameter name="default_denom" transfer-ownership="none">
  42179. <doc xml:space="preserve">default value (fraction denominator)</doc>
  42180. <type name="gint" c:type="gint"/>
  42181. </parameter>
  42182. <parameter name="flags" transfer-ownership="none">
  42183. <doc xml:space="preserve">flags for the property specified</doc>
  42184. <type name="GObject.ParamFlags" c:type="GParamFlags"/>
  42185. </parameter>
  42186. </parameters>
  42187. </function>
  42188. <function name="parent_buffer_meta_api_get_type"
  42189. c:identifier="gst_parent_buffer_meta_api_get_type">
  42190. <return-value transfer-ownership="none">
  42191. <type name="GType" c:type="GType"/>
  42192. </return-value>
  42193. </function>
  42194. <function name="parent_buffer_meta_get_info"
  42195. c:identifier="gst_parent_buffer_meta_get_info"
  42196. moved-to="ParentBufferMeta.get_info"
  42197. version="1.6">
  42198. <doc xml:space="preserve">Get the global #GstMetaInfo describing the #GstParentBufferMeta meta.</doc>
  42199. <return-value transfer-ownership="none">
  42200. <doc xml:space="preserve">The #GstMetaInfo</doc>
  42201. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  42202. </return-value>
  42203. </function>
  42204. <function name="parse_bin_from_description"
  42205. c:identifier="gst_parse_bin_from_description"
  42206. throws="1">
  42207. <doc xml:space="preserve">This is a convenience wrapper around gst_parse_launch() to create a
  42208. #GstBin from a gst-launch-style pipeline description. See
  42209. gst_parse_launch() and the gst-launch man page for details about the
  42210. syntax. Ghost pads on the bin for unlinked source or sink pads
  42211. within the bin can automatically be created (but only a maximum of
  42212. one ghost pad for each direction will be created; if you expect
  42213. multiple unlinked source pads or multiple unlinked sink pads
  42214. and want them all ghosted, you will have to create the ghost pads
  42215. yourself).</doc>
  42216. <return-value transfer-ownership="none" nullable="1">
  42217. <doc xml:space="preserve">a
  42218. newly-created bin, or %NULL if an error occurred.</doc>
  42219. <type name="Bin" c:type="GstElement*"/>
  42220. </return-value>
  42221. <parameters>
  42222. <parameter name="bin_description" transfer-ownership="none">
  42223. <doc xml:space="preserve">command line describing the bin</doc>
  42224. <type name="utf8" c:type="const gchar*"/>
  42225. </parameter>
  42226. <parameter name="ghost_unlinked_pads" transfer-ownership="none">
  42227. <doc xml:space="preserve">whether to automatically create ghost pads
  42228. for unlinked source or sink pads within the bin</doc>
  42229. <type name="gboolean" c:type="gboolean"/>
  42230. </parameter>
  42231. </parameters>
  42232. </function>
  42233. <function name="parse_bin_from_description_full"
  42234. c:identifier="gst_parse_bin_from_description_full"
  42235. throws="1">
  42236. <doc xml:space="preserve">This is a convenience wrapper around gst_parse_launch() to create a
  42237. #GstBin from a gst-launch-style pipeline description. See
  42238. gst_parse_launch() and the gst-launch man page for details about the
  42239. syntax. Ghost pads on the bin for unlinked source or sink pads
  42240. within the bin can automatically be created (but only a maximum of
  42241. one ghost pad for each direction will be created; if you expect
  42242. multiple unlinked source pads or multiple unlinked sink pads
  42243. and want them all ghosted, you will have to create the ghost pads
  42244. yourself).</doc>
  42245. <return-value transfer-ownership="none">
  42246. <doc xml:space="preserve">a newly-created
  42247. element, which is guaranteed to be a bin unless
  42248. GST_FLAG_NO_SINGLE_ELEMENT_BINS was passed, or %NULL if an error
  42249. occurred.</doc>
  42250. <type name="Element" c:type="GstElement*"/>
  42251. </return-value>
  42252. <parameters>
  42253. <parameter name="bin_description" transfer-ownership="none">
  42254. <doc xml:space="preserve">command line describing the bin</doc>
  42255. <type name="utf8" c:type="const gchar*"/>
  42256. </parameter>
  42257. <parameter name="ghost_unlinked_pads" transfer-ownership="none">
  42258. <doc xml:space="preserve">whether to automatically create ghost pads
  42259. for unlinked source or sink pads within the bin</doc>
  42260. <type name="gboolean" c:type="gboolean"/>
  42261. </parameter>
  42262. <parameter name="context"
  42263. transfer-ownership="none"
  42264. nullable="1"
  42265. allow-none="1">
  42266. <doc xml:space="preserve">a parse context allocated with
  42267. gst_parse_context_new(), or %NULL</doc>
  42268. <type name="ParseContext" c:type="GstParseContext*"/>
  42269. </parameter>
  42270. <parameter name="flags" transfer-ownership="none">
  42271. <doc xml:space="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
  42272. <type name="ParseFlags" c:type="GstParseFlags"/>
  42273. </parameter>
  42274. </parameters>
  42275. </function>
  42276. <function name="parse_error_quark"
  42277. c:identifier="gst_parse_error_quark"
  42278. moved-to="ParseError.quark">
  42279. <doc xml:space="preserve">Get the error quark used by the parsing subsystem.</doc>
  42280. <return-value transfer-ownership="none">
  42281. <doc xml:space="preserve">the quark of the parse errors.</doc>
  42282. <type name="GLib.Quark" c:type="GQuark"/>
  42283. </return-value>
  42284. </function>
  42285. <function name="parse_launch" c:identifier="gst_parse_launch" throws="1">
  42286. <doc xml:space="preserve">Create a new pipeline based on command line syntax.
  42287. Please note that you might get a return value that is not %NULL even though
  42288. the @error is set. In this case there was a recoverable parsing error and you
  42289. can try to play the pipeline.</doc>
  42290. <return-value transfer-ownership="none">
  42291. <doc xml:space="preserve">a new element on success, %NULL on failure. If
  42292. more than one toplevel element is specified by the @pipeline_description,
  42293. all elements are put into a #GstPipeline, which than is returned.</doc>
  42294. <type name="Element" c:type="GstElement*"/>
  42295. </return-value>
  42296. <parameters>
  42297. <parameter name="pipeline_description" transfer-ownership="none">
  42298. <doc xml:space="preserve">the command line describing the pipeline</doc>
  42299. <type name="utf8" c:type="const gchar*"/>
  42300. </parameter>
  42301. </parameters>
  42302. </function>
  42303. <function name="parse_launch_full"
  42304. c:identifier="gst_parse_launch_full"
  42305. throws="1">
  42306. <doc xml:space="preserve">Create a new pipeline based on command line syntax.
  42307. Please note that you might get a return value that is not %NULL even though
  42308. the @error is set. In this case there was a recoverable parsing error and you
  42309. can try to play the pipeline.</doc>
  42310. <return-value transfer-ownership="none">
  42311. <doc xml:space="preserve">a new element on success, %NULL on failure. If
  42312. more than one toplevel element is specified by the @pipeline_description,
  42313. all elements are put into a #GstPipeline, which then is returned.</doc>
  42314. <type name="Element" c:type="GstElement*"/>
  42315. </return-value>
  42316. <parameters>
  42317. <parameter name="pipeline_description" transfer-ownership="none">
  42318. <doc xml:space="preserve">the command line describing the pipeline</doc>
  42319. <type name="utf8" c:type="const gchar*"/>
  42320. </parameter>
  42321. <parameter name="context"
  42322. transfer-ownership="none"
  42323. nullable="1"
  42324. allow-none="1">
  42325. <doc xml:space="preserve">a parse context allocated with
  42326. gst_parse_context_new(), or %NULL</doc>
  42327. <type name="ParseContext" c:type="GstParseContext*"/>
  42328. </parameter>
  42329. <parameter name="flags" transfer-ownership="none">
  42330. <doc xml:space="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
  42331. <type name="ParseFlags" c:type="GstParseFlags"/>
  42332. </parameter>
  42333. </parameters>
  42334. </function>
  42335. <function name="parse_launchv" c:identifier="gst_parse_launchv" throws="1">
  42336. <doc xml:space="preserve">Create a new element based on command line syntax.
  42337. @error will contain an error message if an erroneous pipeline is specified.
  42338. An error does not mean that the pipeline could not be constructed.</doc>
  42339. <return-value transfer-ownership="none">
  42340. <doc xml:space="preserve">a new element on success and %NULL on failure.</doc>
  42341. <type name="Element" c:type="GstElement*"/>
  42342. </return-value>
  42343. <parameters>
  42344. <parameter name="argv" transfer-ownership="none">
  42345. <doc xml:space="preserve">null-terminated array of arguments</doc>
  42346. <array c:type="gchar**">
  42347. <type name="utf8" c:type="gchar*"/>
  42348. </array>
  42349. </parameter>
  42350. </parameters>
  42351. </function>
  42352. <function name="parse_launchv_full"
  42353. c:identifier="gst_parse_launchv_full"
  42354. throws="1">
  42355. <doc xml:space="preserve">Create a new element based on command line syntax.
  42356. @error will contain an error message if an erroneous pipeline is specified.
  42357. An error does not mean that the pipeline could not be constructed.</doc>
  42358. <return-value transfer-ownership="none">
  42359. <doc xml:space="preserve">a new element on success; on failure, either %NULL
  42360. or a partially-constructed bin or element will be returned and @error will
  42361. be set (unless you passed #GST_PARSE_FLAG_FATAL_ERRORS in @flags, then
  42362. %NULL will always be returned on failure)</doc>
  42363. <type name="Element" c:type="GstElement*"/>
  42364. </return-value>
  42365. <parameters>
  42366. <parameter name="argv" transfer-ownership="none">
  42367. <doc xml:space="preserve">null-terminated array of arguments</doc>
  42368. <array c:type="gchar**">
  42369. <type name="utf8" c:type="gchar*"/>
  42370. </array>
  42371. </parameter>
  42372. <parameter name="context"
  42373. transfer-ownership="none"
  42374. nullable="1"
  42375. allow-none="1">
  42376. <doc xml:space="preserve">a parse context allocated with
  42377. gst_parse_context_new(), or %NULL</doc>
  42378. <type name="ParseContext" c:type="GstParseContext*"/>
  42379. </parameter>
  42380. <parameter name="flags" transfer-ownership="none">
  42381. <doc xml:space="preserve">parsing options, or #GST_PARSE_FLAG_NONE</doc>
  42382. <type name="ParseFlags" c:type="GstParseFlags"/>
  42383. </parameter>
  42384. </parameters>
  42385. </function>
  42386. <function name="plugin_error_quark"
  42387. c:identifier="gst_plugin_error_quark"
  42388. moved-to="PluginError.quark">
  42389. <doc xml:space="preserve">Get the error quark.</doc>
  42390. <return-value transfer-ownership="none">
  42391. <doc xml:space="preserve">The error quark used in GError messages</doc>
  42392. <type name="GLib.Quark" c:type="GQuark"/>
  42393. </return-value>
  42394. </function>
  42395. <function name="poll_new"
  42396. c:identifier="gst_poll_new"
  42397. moved-to="Poll.new"
  42398. introspectable="0">
  42399. <doc xml:space="preserve">Create a new file descriptor set. If @controllable, it
  42400. is possible to restart or flush a call to gst_poll_wait() with
  42401. gst_poll_restart() and gst_poll_set_flushing() respectively.
  42402. Free-function: gst_poll_free</doc>
  42403. <return-value transfer-ownership="full" nullable="1">
  42404. <doc xml:space="preserve">a new #GstPoll, or %NULL in
  42405. case of an error. Free with gst_poll_free().</doc>
  42406. <type name="Poll" c:type="GstPoll*"/>
  42407. </return-value>
  42408. <parameters>
  42409. <parameter name="controllable" transfer-ownership="none">
  42410. <doc xml:space="preserve">whether it should be possible to control a wait.</doc>
  42411. <type name="gboolean" c:type="gboolean"/>
  42412. </parameter>
  42413. </parameters>
  42414. </function>
  42415. <function name="poll_new_timer"
  42416. c:identifier="gst_poll_new_timer"
  42417. moved-to="Poll.new_timer"
  42418. introspectable="0">
  42419. <doc xml:space="preserve">Create a new poll object that can be used for scheduling cancellable
  42420. timeouts.
  42421. A timeout is performed with gst_poll_wait(). Multiple timeouts can be
  42422. performed from different threads.
  42423. Free-function: gst_poll_free</doc>
  42424. <return-value transfer-ownership="full" nullable="1">
  42425. <doc xml:space="preserve">a new #GstPoll, or %NULL in
  42426. case of an error. Free with gst_poll_free().</doc>
  42427. <type name="Poll" c:type="GstPoll*"/>
  42428. </return-value>
  42429. </function>
  42430. <function name="preset_get_app_dir"
  42431. c:identifier="gst_preset_get_app_dir"
  42432. moved-to="Preset.get_app_dir">
  42433. <doc xml:space="preserve">Gets the directory for application specific presets if set by the
  42434. application.</doc>
  42435. <return-value transfer-ownership="none" nullable="1">
  42436. <doc xml:space="preserve">the directory or %NULL, don't free or modify
  42437. the string</doc>
  42438. <type name="utf8" c:type="const gchar*"/>
  42439. </return-value>
  42440. </function>
  42441. <function name="preset_set_app_dir"
  42442. c:identifier="gst_preset_set_app_dir"
  42443. moved-to="Preset.set_app_dir">
  42444. <doc xml:space="preserve">Sets an extra directory as an absolute path that should be considered when
  42445. looking for presets. Any presets in the application dir will shadow the
  42446. system presets.</doc>
  42447. <return-value transfer-ownership="none">
  42448. <doc xml:space="preserve">%TRUE for success, %FALSE if the dir already has been set</doc>
  42449. <type name="gboolean" c:type="gboolean"/>
  42450. </return-value>
  42451. <parameters>
  42452. <parameter name="app_dir" transfer-ownership="none">
  42453. <doc xml:space="preserve">the application specific preset dir</doc>
  42454. <type name="utf8" c:type="const gchar*"/>
  42455. </parameter>
  42456. </parameters>
  42457. </function>
  42458. <function name="protection_meta_api_get_type"
  42459. c:identifier="gst_protection_meta_api_get_type">
  42460. <return-value transfer-ownership="none">
  42461. <type name="GType" c:type="GType"/>
  42462. </return-value>
  42463. </function>
  42464. <function name="protection_meta_get_info"
  42465. c:identifier="gst_protection_meta_get_info"
  42466. moved-to="ProtectionMeta.get_info">
  42467. <return-value transfer-ownership="none">
  42468. <type name="MetaInfo" c:type="const GstMetaInfo*"/>
  42469. </return-value>
  42470. </function>
  42471. <function name="protection_select_system"
  42472. c:identifier="gst_protection_select_system"
  42473. version="1.6">
  42474. <doc xml:space="preserve">Iterates the supplied list of UUIDs and checks the GstRegistry for
  42475. an element that supports one of the supplied UUIDs. If more than one
  42476. element matches, the system ID of the highest ranked element is selected.</doc>
  42477. <return-value transfer-ownership="none">
  42478. <doc xml:space="preserve">One of the strings from @system_identifiers that
  42479. indicates the highest ranked element that implements the protection system
  42480. indicated by that system ID, or %NULL if no element has been found.</doc>
  42481. <type name="utf8" c:type="const gchar*"/>
  42482. </return-value>
  42483. <parameters>
  42484. <parameter name="system_identifiers" transfer-ownership="none">
  42485. <doc xml:space="preserve">A null terminated array of strings
  42486. that contains the UUID values of each protection system that is to be
  42487. checked.</doc>
  42488. <type name="utf8" c:type="const gchar**"/>
  42489. </parameter>
  42490. </parameters>
  42491. </function>
  42492. <function name="query_type_get_flags"
  42493. c:identifier="gst_query_type_get_flags"
  42494. moved-to="QueryType.get_flags">
  42495. <doc xml:space="preserve">Gets the #GstQueryTypeFlags associated with @type.</doc>
  42496. <return-value transfer-ownership="none">
  42497. <doc xml:space="preserve">a #GstQueryTypeFlags.</doc>
  42498. <type name="QueryTypeFlags" c:type="GstQueryTypeFlags"/>
  42499. </return-value>
  42500. <parameters>
  42501. <parameter name="type" transfer-ownership="none">
  42502. <doc xml:space="preserve">a #GstQueryType</doc>
  42503. <type name="QueryType" c:type="GstQueryType"/>
  42504. </parameter>
  42505. </parameters>
  42506. </function>
  42507. <function name="query_type_get_name"
  42508. c:identifier="gst_query_type_get_name"
  42509. moved-to="QueryType.get_name">
  42510. <doc xml:space="preserve">Get a printable name for the given query type. Do not modify or free.</doc>
  42511. <return-value transfer-ownership="none">
  42512. <doc xml:space="preserve">a reference to the static name of the query.</doc>
  42513. <type name="utf8" c:type="const gchar*"/>
  42514. </return-value>
  42515. <parameters>
  42516. <parameter name="type" transfer-ownership="none">
  42517. <doc xml:space="preserve">the query type</doc>
  42518. <type name="QueryType" c:type="GstQueryType"/>
  42519. </parameter>
  42520. </parameters>
  42521. </function>
  42522. <function name="query_type_to_quark"
  42523. c:identifier="gst_query_type_to_quark"
  42524. moved-to="QueryType.to_quark">
  42525. <doc xml:space="preserve">Get the unique quark for the given query type.</doc>
  42526. <return-value transfer-ownership="none">
  42527. <doc xml:space="preserve">the quark associated with the query type</doc>
  42528. <type name="GLib.Quark" c:type="GQuark"/>
  42529. </return-value>
  42530. <parameters>
  42531. <parameter name="type" transfer-ownership="none">
  42532. <doc xml:space="preserve">the query type</doc>
  42533. <type name="QueryType" c:type="GstQueryType"/>
  42534. </parameter>
  42535. </parameters>
  42536. </function>
  42537. <function name="resource_error_quark"
  42538. c:identifier="gst_resource_error_quark"
  42539. moved-to="ResourceError.quark">
  42540. <return-value transfer-ownership="none">
  42541. <type name="GLib.Quark" c:type="GQuark"/>
  42542. </return-value>
  42543. </function>
  42544. <function name="segtrap_is_enabled" c:identifier="gst_segtrap_is_enabled">
  42545. <doc xml:space="preserve">Some functions in the GStreamer core might install a custom SIGSEGV handler
  42546. to better catch and report errors to the application. Currently this feature
  42547. is enabled by default when loading plugins.
  42548. Applications might want to disable this behaviour with the
  42549. gst_segtrap_set_enabled() function. This is typically done if the application
  42550. wants to install its own handler without GStreamer interfering.</doc>
  42551. <return-value transfer-ownership="none">
  42552. <doc xml:space="preserve">%TRUE if GStreamer is allowed to install a custom SIGSEGV handler.</doc>
  42553. <type name="gboolean" c:type="gboolean"/>
  42554. </return-value>
  42555. </function>
  42556. <function name="segtrap_set_enabled"
  42557. c:identifier="gst_segtrap_set_enabled">
  42558. <doc xml:space="preserve">Applications might want to disable/enable the SIGSEGV handling of
  42559. the GStreamer core. See gst_segtrap_is_enabled() for more information.</doc>
  42560. <return-value transfer-ownership="none">
  42561. <type name="none" c:type="void"/>
  42562. </return-value>
  42563. <parameters>
  42564. <parameter name="enabled" transfer-ownership="none">
  42565. <doc xml:space="preserve">whether a custom SIGSEGV handler should be installed.</doc>
  42566. <type name="gboolean" c:type="gboolean"/>
  42567. </parameter>
  42568. </parameters>
  42569. </function>
  42570. <function name="static_caps_get_type"
  42571. c:identifier="gst_static_caps_get_type">
  42572. <return-value transfer-ownership="none">
  42573. <type name="GType" c:type="GType"/>
  42574. </return-value>
  42575. </function>
  42576. <function name="static_pad_template_get_type"
  42577. c:identifier="gst_static_pad_template_get_type">
  42578. <return-value transfer-ownership="none">
  42579. <type name="GType" c:type="GType"/>
  42580. </return-value>
  42581. </function>
  42582. <function name="stream_error_quark"
  42583. c:identifier="gst_stream_error_quark"
  42584. moved-to="StreamError.quark">
  42585. <return-value transfer-ownership="none">
  42586. <type name="GLib.Quark" c:type="GQuark"/>
  42587. </return-value>
  42588. </function>
  42589. <function name="structure_from_string"
  42590. c:identifier="gst_structure_from_string"
  42591. moved-to="Structure.from_string">
  42592. <doc xml:space="preserve">Creates a #GstStructure from a string representation.
  42593. If end is not %NULL, a pointer to the place inside the given string
  42594. where parsing ended will be returned.
  42595. Free-function: gst_structure_free</doc>
  42596. <return-value transfer-ownership="full" nullable="1">
  42597. <doc xml:space="preserve">a new #GstStructure or %NULL
  42598. when the string could not be parsed. Free with
  42599. gst_structure_free() after use.</doc>
  42600. <type name="Structure" c:type="GstStructure*"/>
  42601. </return-value>
  42602. <parameters>
  42603. <parameter name="string" transfer-ownership="none">
  42604. <doc xml:space="preserve">a string representation of a #GstStructure.</doc>
  42605. <type name="utf8" c:type="const gchar*"/>
  42606. </parameter>
  42607. <parameter name="end"
  42608. direction="out"
  42609. caller-allocates="0"
  42610. transfer-ownership="none"
  42611. optional="1"
  42612. allow-none="1"
  42613. skip="1">
  42614. <doc xml:space="preserve">pointer to store the end of the string in.</doc>
  42615. <type name="utf8" c:type="gchar**"/>
  42616. </parameter>
  42617. </parameters>
  42618. </function>
  42619. <function name="tag_exists" c:identifier="gst_tag_exists">
  42620. <doc xml:space="preserve">Checks if the given type is already registered.</doc>
  42621. <return-value transfer-ownership="none">
  42622. <doc xml:space="preserve">%TRUE if the type is already registered</doc>
  42623. <type name="gboolean" c:type="gboolean"/>
  42624. </return-value>
  42625. <parameters>
  42626. <parameter name="tag" transfer-ownership="none">
  42627. <doc xml:space="preserve">name of the tag</doc>
  42628. <type name="utf8" c:type="const gchar*"/>
  42629. </parameter>
  42630. </parameters>
  42631. </function>
  42632. <function name="tag_get_description"
  42633. c:identifier="gst_tag_get_description">
  42634. <doc xml:space="preserve">Returns the human-readable description of this tag, You must not change or
  42635. free this string.</doc>
  42636. <return-value transfer-ownership="none">
  42637. <doc xml:space="preserve">the human-readable description of this tag</doc>
  42638. <type name="utf8" c:type="const gchar*"/>
  42639. </return-value>
  42640. <parameters>
  42641. <parameter name="tag" transfer-ownership="none">
  42642. <doc xml:space="preserve">the tag</doc>
  42643. <type name="utf8" c:type="const gchar*"/>
  42644. </parameter>
  42645. </parameters>
  42646. </function>
  42647. <function name="tag_get_flag" c:identifier="gst_tag_get_flag">
  42648. <doc xml:space="preserve">Gets the flag of @tag.</doc>
  42649. <return-value transfer-ownership="none">
  42650. <doc xml:space="preserve">the flag of this tag.</doc>
  42651. <type name="TagFlag" c:type="GstTagFlag"/>
  42652. </return-value>
  42653. <parameters>
  42654. <parameter name="tag" transfer-ownership="none">
  42655. <doc xml:space="preserve">the tag</doc>
  42656. <type name="utf8" c:type="const gchar*"/>
  42657. </parameter>
  42658. </parameters>
  42659. </function>
  42660. <function name="tag_get_nick" c:identifier="gst_tag_get_nick">
  42661. <doc xml:space="preserve">Returns the human-readable name of this tag, You must not change or free
  42662. this string.</doc>
  42663. <return-value transfer-ownership="none">
  42664. <doc xml:space="preserve">the human-readable name of this tag</doc>
  42665. <type name="utf8" c:type="const gchar*"/>
  42666. </return-value>
  42667. <parameters>
  42668. <parameter name="tag" transfer-ownership="none">
  42669. <doc xml:space="preserve">the tag</doc>
  42670. <type name="utf8" c:type="const gchar*"/>
  42671. </parameter>
  42672. </parameters>
  42673. </function>
  42674. <function name="tag_get_type" c:identifier="gst_tag_get_type">
  42675. <doc xml:space="preserve">Gets the #GType used for this tag.</doc>
  42676. <return-value transfer-ownership="none">
  42677. <doc xml:space="preserve">the #GType of this tag</doc>
  42678. <type name="GType" c:type="GType"/>
  42679. </return-value>
  42680. <parameters>
  42681. <parameter name="tag" transfer-ownership="none">
  42682. <doc xml:space="preserve">the tag</doc>
  42683. <type name="utf8" c:type="const gchar*"/>
  42684. </parameter>
  42685. </parameters>
  42686. </function>
  42687. <function name="tag_is_fixed" c:identifier="gst_tag_is_fixed">
  42688. <doc xml:space="preserve">Checks if the given tag is fixed. A fixed tag can only contain one value.
  42689. Unfixed tags can contain lists of values.</doc>
  42690. <return-value transfer-ownership="none">
  42691. <doc xml:space="preserve">%TRUE, if the given tag is fixed.</doc>
  42692. <type name="gboolean" c:type="gboolean"/>
  42693. </return-value>
  42694. <parameters>
  42695. <parameter name="tag" transfer-ownership="none">
  42696. <doc xml:space="preserve">tag to check</doc>
  42697. <type name="utf8" c:type="const gchar*"/>
  42698. </parameter>
  42699. </parameters>
  42700. </function>
  42701. <function name="tag_list_copy_value"
  42702. c:identifier="gst_tag_list_copy_value"
  42703. moved-to="TagList.copy_value">
  42704. <doc xml:space="preserve">Copies the contents for the given tag into the value,
  42705. merging multiple values into one if multiple values are associated
  42706. with the tag.
  42707. You must g_value_unset() the value after use.</doc>
  42708. <return-value transfer-ownership="none">
  42709. <doc xml:space="preserve">%TRUE, if a value was copied, %FALSE if the tag didn't exist in the
  42710. given list.</doc>
  42711. <type name="gboolean" c:type="gboolean"/>
  42712. </return-value>
  42713. <parameters>
  42714. <parameter name="dest"
  42715. direction="out"
  42716. caller-allocates="1"
  42717. transfer-ownership="none">
  42718. <doc xml:space="preserve">uninitialized #GValue to copy into</doc>
  42719. <type name="GObject.Value" c:type="GValue*"/>
  42720. </parameter>
  42721. <parameter name="list" transfer-ownership="none">
  42722. <doc xml:space="preserve">list to get the tag from</doc>
  42723. <type name="TagList" c:type="const GstTagList*"/>
  42724. </parameter>
  42725. <parameter name="tag" transfer-ownership="none">
  42726. <doc xml:space="preserve">tag to read out</doc>
  42727. <type name="utf8" c:type="const gchar*"/>
  42728. </parameter>
  42729. </parameters>
  42730. </function>
  42731. <function name="tag_merge_strings_with_comma"
  42732. c:identifier="gst_tag_merge_strings_with_comma">
  42733. <doc xml:space="preserve">This is a convenience function for the func argument of gst_tag_register().
  42734. It concatenates all given strings using a comma. The tag must be registered
  42735. as a G_TYPE_STRING or this function will fail.</doc>
  42736. <return-value transfer-ownership="none">
  42737. <type name="none" c:type="void"/>
  42738. </return-value>
  42739. <parameters>
  42740. <parameter name="dest"
  42741. direction="out"
  42742. caller-allocates="1"
  42743. transfer-ownership="none">
  42744. <doc xml:space="preserve">uninitialized GValue to store result in</doc>
  42745. <type name="GObject.Value" c:type="GValue*"/>
  42746. </parameter>
  42747. <parameter name="src" transfer-ownership="none">
  42748. <doc xml:space="preserve">GValue to copy from</doc>
  42749. <type name="GObject.Value" c:type="const GValue*"/>
  42750. </parameter>
  42751. </parameters>
  42752. </function>
  42753. <function name="tag_merge_use_first"
  42754. c:identifier="gst_tag_merge_use_first">
  42755. <doc xml:space="preserve">This is a convenience function for the func argument of gst_tag_register().
  42756. It creates a copy of the first value from the list.</doc>
  42757. <return-value transfer-ownership="none">
  42758. <type name="none" c:type="void"/>
  42759. </return-value>
  42760. <parameters>
  42761. <parameter name="dest"
  42762. direction="out"
  42763. caller-allocates="1"
  42764. transfer-ownership="none">
  42765. <doc xml:space="preserve">uninitialized GValue to store result in</doc>
  42766. <type name="GObject.Value" c:type="GValue*"/>
  42767. </parameter>
  42768. <parameter name="src" transfer-ownership="none">
  42769. <doc xml:space="preserve">GValue to copy from</doc>
  42770. <type name="GObject.Value" c:type="const GValue*"/>
  42771. </parameter>
  42772. </parameters>
  42773. </function>
  42774. <function name="tag_register" c:identifier="gst_tag_register">
  42775. <doc xml:space="preserve">Registers a new tag type for the use with GStreamer's type system. If a type
  42776. with that name is already registered, that one is used.
  42777. The old registration may have used a different type however. So don't rely
  42778. on your supplied values.
  42779. Important: if you do not supply a merge function the implication will be
  42780. that there can only be one single value for this tag in a tag list and
  42781. any additional values will silently be discarded when being added (unless
  42782. #GST_TAG_MERGE_REPLACE, #GST_TAG_MERGE_REPLACE_ALL, or
  42783. #GST_TAG_MERGE_PREPEND is used as merge mode, in which case the new
  42784. value will replace the old one in the list).
  42785. The merge function will be called from gst_tag_list_copy_value() when
  42786. it is required that one or more values for a tag be condensed into
  42787. one single value. This may happen from gst_tag_list_get_string(),
  42788. gst_tag_list_get_int(), gst_tag_list_get_double() etc. What will happen
  42789. exactly in that case depends on how the tag was registered and if a
  42790. merge function was supplied and if so which one.
  42791. Two default merge functions are provided: gst_tag_merge_use_first() and
  42792. gst_tag_merge_strings_with_comma().</doc>
  42793. <return-value transfer-ownership="none">
  42794. <type name="none" c:type="void"/>
  42795. </return-value>
  42796. <parameters>
  42797. <parameter name="name" transfer-ownership="none">
  42798. <doc xml:space="preserve">the name or identifier string</doc>
  42799. <type name="utf8" c:type="const gchar*"/>
  42800. </parameter>
  42801. <parameter name="flag" transfer-ownership="none">
  42802. <doc xml:space="preserve">a flag describing the type of tag info</doc>
  42803. <type name="TagFlag" c:type="GstTagFlag"/>
  42804. </parameter>
  42805. <parameter name="type" transfer-ownership="none">
  42806. <doc xml:space="preserve">the type this data is in</doc>
  42807. <type name="GType" c:type="GType"/>
  42808. </parameter>
  42809. <parameter name="nick" transfer-ownership="none">
  42810. <doc xml:space="preserve">human-readable name</doc>
  42811. <type name="utf8" c:type="const gchar*"/>
  42812. </parameter>
  42813. <parameter name="blurb" transfer-ownership="none">
  42814. <doc xml:space="preserve">a human-readable description about this tag</doc>
  42815. <type name="utf8" c:type="const gchar*"/>
  42816. </parameter>
  42817. <parameter name="func"
  42818. transfer-ownership="none"
  42819. nullable="1"
  42820. allow-none="1"
  42821. scope="call">
  42822. <doc xml:space="preserve">function for merging multiple values of this tag, or %NULL</doc>
  42823. <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
  42824. </parameter>
  42825. </parameters>
  42826. </function>
  42827. <function name="tag_register_static"
  42828. c:identifier="gst_tag_register_static">
  42829. <doc xml:space="preserve">Registers a new tag type for the use with GStreamer's type system.
  42830. Same as gst_tag_register(), but @name, @nick, and @blurb must be
  42831. static strings or inlined strings, as they will not be copied. (GStreamer
  42832. plugins will be made resident once loaded, so this function can be used
  42833. even from dynamically loaded plugins.)</doc>
  42834. <return-value transfer-ownership="none">
  42835. <type name="none" c:type="void"/>
  42836. </return-value>
  42837. <parameters>
  42838. <parameter name="name" transfer-ownership="none">
  42839. <doc xml:space="preserve">the name or identifier string (string constant)</doc>
  42840. <type name="utf8" c:type="const gchar*"/>
  42841. </parameter>
  42842. <parameter name="flag" transfer-ownership="none">
  42843. <doc xml:space="preserve">a flag describing the type of tag info</doc>
  42844. <type name="TagFlag" c:type="GstTagFlag"/>
  42845. </parameter>
  42846. <parameter name="type" transfer-ownership="none">
  42847. <doc xml:space="preserve">the type this data is in</doc>
  42848. <type name="GType" c:type="GType"/>
  42849. </parameter>
  42850. <parameter name="nick" transfer-ownership="none">
  42851. <doc xml:space="preserve">human-readable name or short description (string constant)</doc>
  42852. <type name="utf8" c:type="const gchar*"/>
  42853. </parameter>
  42854. <parameter name="blurb" transfer-ownership="none">
  42855. <doc xml:space="preserve">a human-readable description for this tag (string constant)</doc>
  42856. <type name="utf8" c:type="const gchar*"/>
  42857. </parameter>
  42858. <parameter name="func"
  42859. transfer-ownership="none"
  42860. nullable="1"
  42861. allow-none="1"
  42862. scope="call">
  42863. <doc xml:space="preserve">function for merging multiple values of this tag, or %NULL</doc>
  42864. <type name="TagMergeFunc" c:type="GstTagMergeFunc"/>
  42865. </parameter>
  42866. </parameters>
  42867. </function>
  42868. <function name="toc_entry_type_get_nick"
  42869. c:identifier="gst_toc_entry_type_get_nick"
  42870. moved-to="TocEntryType.get_nick">
  42871. <doc xml:space="preserve">Converts @type to a string representation.</doc>
  42872. <return-value transfer-ownership="none">
  42873. <doc xml:space="preserve">Returns a human-readable string for @type. This string is
  42874. only for debugging purpose and should not be displayed in a user
  42875. interface.</doc>
  42876. <type name="utf8" c:type="const gchar*"/>
  42877. </return-value>
  42878. <parameters>
  42879. <parameter name="type" transfer-ownership="none">
  42880. <doc xml:space="preserve">a #GstTocEntryType.</doc>
  42881. <type name="TocEntryType" c:type="GstTocEntryType"/>
  42882. </parameter>
  42883. </parameters>
  42884. </function>
  42885. <function name="type_find_get_type" c:identifier="gst_type_find_get_type">
  42886. <return-value transfer-ownership="none">
  42887. <type name="GType" c:type="GType"/>
  42888. </return-value>
  42889. </function>
  42890. <function name="type_find_register"
  42891. c:identifier="gst_type_find_register"
  42892. moved-to="TypeFind.register">
  42893. <doc xml:space="preserve">Registers a new typefind function to be used for typefinding. After
  42894. registering this function will be available for typefinding.
  42895. This function is typically called during an element's plugin initialization.</doc>
  42896. <return-value transfer-ownership="none">
  42897. <doc xml:space="preserve">%TRUE on success, %FALSE otherwise</doc>
  42898. <type name="gboolean" c:type="gboolean"/>
  42899. </return-value>
  42900. <parameters>
  42901. <parameter name="plugin"
  42902. transfer-ownership="none"
  42903. nullable="1"
  42904. allow-none="1">
  42905. <doc xml:space="preserve">A #GstPlugin, or %NULL for a static typefind function</doc>
  42906. <type name="Plugin" c:type="GstPlugin*"/>
  42907. </parameter>
  42908. <parameter name="name" transfer-ownership="none">
  42909. <doc xml:space="preserve">The name for registering</doc>
  42910. <type name="utf8" c:type="const gchar*"/>
  42911. </parameter>
  42912. <parameter name="rank" transfer-ownership="none">
  42913. <doc xml:space="preserve">The rank (or importance) of this typefind function</doc>
  42914. <type name="guint" c:type="guint"/>
  42915. </parameter>
  42916. <parameter name="func"
  42917. transfer-ownership="none"
  42918. scope="notified"
  42919. closure="6"
  42920. destroy="7">
  42921. <doc xml:space="preserve">The #GstTypeFindFunction to use</doc>
  42922. <type name="TypeFindFunction" c:type="GstTypeFindFunction"/>
  42923. </parameter>
  42924. <parameter name="extensions"
  42925. transfer-ownership="none"
  42926. nullable="1"
  42927. allow-none="1">
  42928. <doc xml:space="preserve">Optional comma-separated list of extensions
  42929. that could belong to this type</doc>
  42930. <type name="utf8" c:type="const gchar*"/>
  42931. </parameter>
  42932. <parameter name="possible_caps" transfer-ownership="none">
  42933. <doc xml:space="preserve">Optionally the caps that could be returned when typefinding
  42934. succeeds</doc>
  42935. <type name="Caps" c:type="GstCaps*"/>
  42936. </parameter>
  42937. <parameter name="data"
  42938. transfer-ownership="none"
  42939. nullable="1"
  42940. allow-none="1">
  42941. <doc xml:space="preserve">Optional user data. This user data must be available until the plugin
  42942. is unloaded.</doc>
  42943. <type name="gpointer" c:type="gpointer"/>
  42944. </parameter>
  42945. <parameter name="data_notify" transfer-ownership="none" scope="async">
  42946. <doc xml:space="preserve">a #GDestroyNotify that will be called on @data when the plugin
  42947. is unloaded.</doc>
  42948. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  42949. </parameter>
  42950. </parameters>
  42951. </function>
  42952. <function name="update_registry" c:identifier="gst_update_registry">
  42953. <doc xml:space="preserve">Forces GStreamer to re-scan its plugin paths and update the default
  42954. plugin registry.
  42955. Applications will almost never need to call this function, it is only
  42956. useful if the application knows new plugins have been installed (or old
  42957. ones removed) since the start of the application (or, to be precise, the
  42958. first call to gst_init()) and the application wants to make use of any
  42959. newly-installed plugins without restarting the application.
  42960. Applications should assume that the registry update is neither atomic nor
  42961. thread-safe and should therefore not have any dynamic pipelines running
  42962. (including the playbin and decodebin elements) and should also not create
  42963. any elements or access the GStreamer registry while the update is in
  42964. progress.
  42965. Note that this function may block for a significant amount of time.</doc>
  42966. <return-value transfer-ownership="none">
  42967. <doc xml:space="preserve">%TRUE if the registry has been updated successfully (does not
  42968. imply that there were changes), otherwise %FALSE.</doc>
  42969. <type name="gboolean" c:type="gboolean"/>
  42970. </return-value>
  42971. </function>
  42972. <function name="uri_construct"
  42973. c:identifier="gst_uri_construct"
  42974. moved-to="Uri.construct">
  42975. <doc xml:space="preserve">Constructs a URI for a given valid protocol and location.
  42976. Free-function: g_free</doc>
  42977. <return-value transfer-ownership="full">
  42978. <doc xml:space="preserve">a new string for this URI. Returns %NULL if the
  42979. given URI protocol is not valid, or the given location is %NULL.</doc>
  42980. <type name="utf8" c:type="gchar*"/>
  42981. </return-value>
  42982. <parameters>
  42983. <parameter name="protocol" transfer-ownership="none">
  42984. <doc xml:space="preserve">Protocol for URI</doc>
  42985. <type name="utf8" c:type="const gchar*"/>
  42986. </parameter>
  42987. <parameter name="location" transfer-ownership="none">
  42988. <doc xml:space="preserve">Location for URI</doc>
  42989. <type name="utf8" c:type="const gchar*"/>
  42990. </parameter>
  42991. </parameters>
  42992. </function>
  42993. <function name="uri_error_quark"
  42994. c:identifier="gst_uri_error_quark"
  42995. moved-to="URIError.quark">
  42996. <return-value transfer-ownership="none">
  42997. <type name="GLib.Quark" c:type="GQuark"/>
  42998. </return-value>
  42999. </function>
  43000. <function name="uri_from_string"
  43001. c:identifier="gst_uri_from_string"
  43002. moved-to="Uri.from_string"
  43003. version="1.6">
  43004. <doc xml:space="preserve">Parses a URI string into a new #GstUri object. Will return NULL if the URI
  43005. cannot be parsed.</doc>
  43006. <return-value transfer-ownership="full" nullable="1">
  43007. <doc xml:space="preserve">A new #GstUri object, or NULL.</doc>
  43008. <type name="Uri" c:type="GstUri*"/>
  43009. </return-value>
  43010. <parameters>
  43011. <parameter name="uri" transfer-ownership="none">
  43012. <doc xml:space="preserve">The URI string to parse.</doc>
  43013. <type name="utf8" c:type="const gchar*"/>
  43014. </parameter>
  43015. </parameters>
  43016. </function>
  43017. <function name="uri_get_location"
  43018. c:identifier="gst_uri_get_location"
  43019. moved-to="Uri.get_location">
  43020. <doc xml:space="preserve">Extracts the location out of a given valid URI, ie. the protocol and "://"
  43021. are stripped from the URI, which means that the location returned includes
  43022. the hostname if one is specified. The returned string must be freed using
  43023. g_free().
  43024. Free-function: g_free</doc>
  43025. <return-value transfer-ownership="full">
  43026. <doc xml:space="preserve">the location for this URI. Returns %NULL if the
  43027. URI isn't valid. If the URI does not contain a location, an empty
  43028. string is returned.</doc>
  43029. <type name="utf8" c:type="gchar*"/>
  43030. </return-value>
  43031. <parameters>
  43032. <parameter name="uri" transfer-ownership="none">
  43033. <doc xml:space="preserve">A URI string</doc>
  43034. <type name="utf8" c:type="const gchar*"/>
  43035. </parameter>
  43036. </parameters>
  43037. </function>
  43038. <function name="uri_get_protocol"
  43039. c:identifier="gst_uri_get_protocol"
  43040. moved-to="Uri.get_protocol">
  43041. <doc xml:space="preserve">Extracts the protocol out of a given valid URI. The returned string must be
  43042. freed using g_free().</doc>
  43043. <return-value transfer-ownership="full">
  43044. <doc xml:space="preserve">The protocol for this URI.</doc>
  43045. <type name="utf8" c:type="gchar*"/>
  43046. </return-value>
  43047. <parameters>
  43048. <parameter name="uri" transfer-ownership="none">
  43049. <doc xml:space="preserve">A URI string</doc>
  43050. <type name="utf8" c:type="const gchar*"/>
  43051. </parameter>
  43052. </parameters>
  43053. </function>
  43054. <function name="uri_has_protocol"
  43055. c:identifier="gst_uri_has_protocol"
  43056. moved-to="Uri.has_protocol">
  43057. <doc xml:space="preserve">Checks if the protocol of a given valid URI matches @protocol.</doc>
  43058. <return-value transfer-ownership="none">
  43059. <doc xml:space="preserve">%TRUE if the protocol matches.</doc>
  43060. <type name="gboolean" c:type="gboolean"/>
  43061. </return-value>
  43062. <parameters>
  43063. <parameter name="uri" transfer-ownership="none">
  43064. <doc xml:space="preserve">a URI string</doc>
  43065. <type name="utf8" c:type="const gchar*"/>
  43066. </parameter>
  43067. <parameter name="protocol" transfer-ownership="none">
  43068. <doc xml:space="preserve">a protocol string (e.g. "http")</doc>
  43069. <type name="utf8" c:type="const gchar*"/>
  43070. </parameter>
  43071. </parameters>
  43072. </function>
  43073. <function name="uri_is_valid"
  43074. c:identifier="gst_uri_is_valid"
  43075. moved-to="Uri.is_valid">
  43076. <doc xml:space="preserve">Tests if the given string is a valid URI identifier. URIs start with a valid
  43077. scheme followed by ":" and maybe a string identifying the location.</doc>
  43078. <return-value transfer-ownership="none">
  43079. <doc xml:space="preserve">%TRUE if the string is a valid URI</doc>
  43080. <type name="gboolean" c:type="gboolean"/>
  43081. </return-value>
  43082. <parameters>
  43083. <parameter name="uri" transfer-ownership="none">
  43084. <doc xml:space="preserve">A URI string</doc>
  43085. <type name="utf8" c:type="const gchar*"/>
  43086. </parameter>
  43087. </parameters>
  43088. </function>
  43089. <function name="uri_join_strings"
  43090. c:identifier="gst_uri_join_strings"
  43091. moved-to="Uri.join_strings"
  43092. version="1.6">
  43093. <doc xml:space="preserve">This is a convenience function to join two URI strings and return the result.
  43094. The returned string should be g_free()'d after use.</doc>
  43095. <return-value transfer-ownership="full">
  43096. <doc xml:space="preserve">A string representing the percent-encoded join of
  43097. the two URIs.</doc>
  43098. <type name="utf8" c:type="gchar*"/>
  43099. </return-value>
  43100. <parameters>
  43101. <parameter name="base_uri" transfer-ownership="none">
  43102. <doc xml:space="preserve">The percent-encoded base URI.</doc>
  43103. <type name="utf8" c:type="const gchar*"/>
  43104. </parameter>
  43105. <parameter name="ref_uri" transfer-ownership="none">
  43106. <doc xml:space="preserve">The percent-encoded reference URI to join to the @base_uri.</doc>
  43107. <type name="utf8" c:type="const gchar*"/>
  43108. </parameter>
  43109. </parameters>
  43110. </function>
  43111. <function name="uri_protocol_is_supported"
  43112. c:identifier="gst_uri_protocol_is_supported"
  43113. moved-to="Uri.protocol_is_supported">
  43114. <doc xml:space="preserve">Checks if an element exists that supports the given URI protocol. Note
  43115. that a positive return value does not imply that a subsequent call to
  43116. gst_element_make_from_uri() is guaranteed to work.</doc>
  43117. <return-value transfer-ownership="none">
  43118. <doc xml:space="preserve">%TRUE</doc>
  43119. <type name="gboolean" c:type="gboolean"/>
  43120. </return-value>
  43121. <parameters>
  43122. <parameter name="type" transfer-ownership="none">
  43123. <doc xml:space="preserve">Whether to check for a source or a sink</doc>
  43124. <type name="URIType" c:type="const GstURIType"/>
  43125. </parameter>
  43126. <parameter name="protocol" transfer-ownership="none">
  43127. <doc xml:space="preserve">Protocol that should be checked for (e.g. "http" or "smb")</doc>
  43128. <type name="utf8" c:type="const gchar*"/>
  43129. </parameter>
  43130. </parameters>
  43131. </function>
  43132. <function name="uri_protocol_is_valid"
  43133. c:identifier="gst_uri_protocol_is_valid"
  43134. moved-to="Uri.protocol_is_valid">
  43135. <doc xml:space="preserve">Tests if the given string is a valid protocol identifier. Protocols
  43136. must consist of alphanumeric characters, '+', '-' and '.' and must
  43137. start with a alphabetic character. See RFC 3986 Section 3.1.</doc>
  43138. <return-value transfer-ownership="none">
  43139. <doc xml:space="preserve">%TRUE if the string is a valid protocol identifier, %FALSE otherwise.</doc>
  43140. <type name="gboolean" c:type="gboolean"/>
  43141. </return-value>
  43142. <parameters>
  43143. <parameter name="protocol" transfer-ownership="none">
  43144. <doc xml:space="preserve">A string</doc>
  43145. <type name="utf8" c:type="const gchar*"/>
  43146. </parameter>
  43147. </parameters>
  43148. </function>
  43149. <function name="util_array_binary_search"
  43150. c:identifier="gst_util_array_binary_search">
  43151. <doc xml:space="preserve">Searches inside @array for @search_data by using the comparison function
  43152. @search_func. @array must be sorted ascending.
  43153. As @search_data is always passed as second argument to @search_func it's
  43154. not required that @search_data has the same type as the array elements.
  43155. The complexity of this search function is O(log (num_elements)).</doc>
  43156. <return-value transfer-ownership="none" nullable="1">
  43157. <doc xml:space="preserve">The address of the found
  43158. element or %NULL if nothing was found</doc>
  43159. <type name="gpointer" c:type="gpointer"/>
  43160. </return-value>
  43161. <parameters>
  43162. <parameter name="array"
  43163. transfer-ownership="none"
  43164. nullable="1"
  43165. allow-none="1">
  43166. <doc xml:space="preserve">the sorted input array</doc>
  43167. <type name="gpointer" c:type="gpointer"/>
  43168. </parameter>
  43169. <parameter name="num_elements" transfer-ownership="none">
  43170. <doc xml:space="preserve">number of elements in the array</doc>
  43171. <type name="guint" c:type="guint"/>
  43172. </parameter>
  43173. <parameter name="element_size" transfer-ownership="none">
  43174. <doc xml:space="preserve">size of every element in bytes</doc>
  43175. <type name="gsize" c:type="gsize"/>
  43176. </parameter>
  43177. <parameter name="search_func"
  43178. transfer-ownership="none"
  43179. scope="call"
  43180. closure="6">
  43181. <doc xml:space="preserve">function to compare two elements, @search_data will always be passed as second argument</doc>
  43182. <type name="GLib.CompareDataFunc" c:type="GCompareDataFunc"/>
  43183. </parameter>
  43184. <parameter name="mode" transfer-ownership="none">
  43185. <doc xml:space="preserve">search mode that should be used</doc>
  43186. <type name="SearchMode" c:type="GstSearchMode"/>
  43187. </parameter>
  43188. <parameter name="search_data"
  43189. transfer-ownership="none"
  43190. nullable="1"
  43191. allow-none="1">
  43192. <doc xml:space="preserve">element that should be found</doc>
  43193. <type name="gpointer" c:type="gconstpointer"/>
  43194. </parameter>
  43195. <parameter name="user_data"
  43196. transfer-ownership="none"
  43197. nullable="1"
  43198. allow-none="1">
  43199. <doc xml:space="preserve">data to pass to @search_func</doc>
  43200. <type name="gpointer" c:type="gpointer"/>
  43201. </parameter>
  43202. </parameters>
  43203. </function>
  43204. <function name="util_double_to_fraction"
  43205. c:identifier="gst_util_double_to_fraction">
  43206. <doc xml:space="preserve">Transforms a #gdouble to a fraction and simplifies
  43207. the result.</doc>
  43208. <return-value transfer-ownership="none">
  43209. <type name="none" c:type="void"/>
  43210. </return-value>
  43211. <parameters>
  43212. <parameter name="src" transfer-ownership="none">
  43213. <doc xml:space="preserve">#gdouble to transform</doc>
  43214. <type name="gdouble" c:type="gdouble"/>
  43215. </parameter>
  43216. <parameter name="dest_n"
  43217. direction="out"
  43218. caller-allocates="0"
  43219. transfer-ownership="full">
  43220. <doc xml:space="preserve">pointer to a #gint to hold the result numerator</doc>
  43221. <type name="gint" c:type="gint*"/>
  43222. </parameter>
  43223. <parameter name="dest_d"
  43224. direction="out"
  43225. caller-allocates="0"
  43226. transfer-ownership="full">
  43227. <doc xml:space="preserve">pointer to a #gint to hold the result denominator</doc>
  43228. <type name="gint" c:type="gint*"/>
  43229. </parameter>
  43230. </parameters>
  43231. </function>
  43232. <function name="util_dump_mem" c:identifier="gst_util_dump_mem">
  43233. <doc xml:space="preserve">Dumps the memory block into a hex representation. Useful for debugging.</doc>
  43234. <return-value transfer-ownership="none">
  43235. <type name="none" c:type="void"/>
  43236. </return-value>
  43237. <parameters>
  43238. <parameter name="mem" transfer-ownership="none">
  43239. <doc xml:space="preserve">a pointer to the memory to dump</doc>
  43240. <type name="guint8" c:type="const guchar*"/>
  43241. </parameter>
  43242. <parameter name="size" transfer-ownership="none">
  43243. <doc xml:space="preserve">the size of the memory block to dump</doc>
  43244. <type name="guint" c:type="guint"/>
  43245. </parameter>
  43246. </parameters>
  43247. </function>
  43248. <function name="util_fraction_add" c:identifier="gst_util_fraction_add">
  43249. <doc xml:space="preserve">Adds the fractions @a_n/@a_d and @b_n/@b_d and stores
  43250. the result in @res_n and @res_d.</doc>
  43251. <return-value transfer-ownership="none">
  43252. <doc xml:space="preserve">%FALSE on overflow, %TRUE otherwise.</doc>
  43253. <type name="gboolean" c:type="gboolean"/>
  43254. </return-value>
  43255. <parameters>
  43256. <parameter name="a_n" transfer-ownership="none">
  43257. <doc xml:space="preserve">Numerator of first value</doc>
  43258. <type name="gint" c:type="gint"/>
  43259. </parameter>
  43260. <parameter name="a_d" transfer-ownership="none">
  43261. <doc xml:space="preserve">Denominator of first value</doc>
  43262. <type name="gint" c:type="gint"/>
  43263. </parameter>
  43264. <parameter name="b_n" transfer-ownership="none">
  43265. <doc xml:space="preserve">Numerator of second value</doc>
  43266. <type name="gint" c:type="gint"/>
  43267. </parameter>
  43268. <parameter name="b_d" transfer-ownership="none">
  43269. <doc xml:space="preserve">Denominator of second value</doc>
  43270. <type name="gint" c:type="gint"/>
  43271. </parameter>
  43272. <parameter name="res_n"
  43273. direction="out"
  43274. caller-allocates="0"
  43275. transfer-ownership="full">
  43276. <doc xml:space="preserve">Pointer to #gint to hold the result numerator</doc>
  43277. <type name="gint" c:type="gint*"/>
  43278. </parameter>
  43279. <parameter name="res_d"
  43280. direction="out"
  43281. caller-allocates="0"
  43282. transfer-ownership="full">
  43283. <doc xml:space="preserve">Pointer to #gint to hold the result denominator</doc>
  43284. <type name="gint" c:type="gint*"/>
  43285. </parameter>
  43286. </parameters>
  43287. </function>
  43288. <function name="util_fraction_compare"
  43289. c:identifier="gst_util_fraction_compare">
  43290. <doc xml:space="preserve">Compares the fractions @a_n/@a_d and @b_n/@b_d and returns
  43291. -1 if a &lt; b, 0 if a = b and 1 if a &gt; b.</doc>
  43292. <return-value transfer-ownership="none">
  43293. <doc xml:space="preserve">-1 if a &lt; b; 0 if a = b; 1 if a &gt; b.</doc>
  43294. <type name="gint" c:type="gint"/>
  43295. </return-value>
  43296. <parameters>
  43297. <parameter name="a_n" transfer-ownership="none">
  43298. <doc xml:space="preserve">Numerator of first value</doc>
  43299. <type name="gint" c:type="gint"/>
  43300. </parameter>
  43301. <parameter name="a_d" transfer-ownership="none">
  43302. <doc xml:space="preserve">Denominator of first value</doc>
  43303. <type name="gint" c:type="gint"/>
  43304. </parameter>
  43305. <parameter name="b_n" transfer-ownership="none">
  43306. <doc xml:space="preserve">Numerator of second value</doc>
  43307. <type name="gint" c:type="gint"/>
  43308. </parameter>
  43309. <parameter name="b_d" transfer-ownership="none">
  43310. <doc xml:space="preserve">Denominator of second value</doc>
  43311. <type name="gint" c:type="gint"/>
  43312. </parameter>
  43313. </parameters>
  43314. </function>
  43315. <function name="util_fraction_multiply"
  43316. c:identifier="gst_util_fraction_multiply">
  43317. <doc xml:space="preserve">Multiplies the fractions @a_n/@a_d and @b_n/@b_d and stores
  43318. the result in @res_n and @res_d.</doc>
  43319. <return-value transfer-ownership="none">
  43320. <doc xml:space="preserve">%FALSE on overflow, %TRUE otherwise.</doc>
  43321. <type name="gboolean" c:type="gboolean"/>
  43322. </return-value>
  43323. <parameters>
  43324. <parameter name="a_n" transfer-ownership="none">
  43325. <doc xml:space="preserve">Numerator of first value</doc>
  43326. <type name="gint" c:type="gint"/>
  43327. </parameter>
  43328. <parameter name="a_d" transfer-ownership="none">
  43329. <doc xml:space="preserve">Denominator of first value</doc>
  43330. <type name="gint" c:type="gint"/>
  43331. </parameter>
  43332. <parameter name="b_n" transfer-ownership="none">
  43333. <doc xml:space="preserve">Numerator of second value</doc>
  43334. <type name="gint" c:type="gint"/>
  43335. </parameter>
  43336. <parameter name="b_d" transfer-ownership="none">
  43337. <doc xml:space="preserve">Denominator of second value</doc>
  43338. <type name="gint" c:type="gint"/>
  43339. </parameter>
  43340. <parameter name="res_n"
  43341. direction="out"
  43342. caller-allocates="0"
  43343. transfer-ownership="full">
  43344. <doc xml:space="preserve">Pointer to #gint to hold the result numerator</doc>
  43345. <type name="gint" c:type="gint*"/>
  43346. </parameter>
  43347. <parameter name="res_d"
  43348. direction="out"
  43349. caller-allocates="0"
  43350. transfer-ownership="full">
  43351. <doc xml:space="preserve">Pointer to #gint to hold the result denominator</doc>
  43352. <type name="gint" c:type="gint*"/>
  43353. </parameter>
  43354. </parameters>
  43355. </function>
  43356. <function name="util_fraction_to_double"
  43357. c:identifier="gst_util_fraction_to_double">
  43358. <doc xml:space="preserve">Transforms a fraction to a #gdouble.</doc>
  43359. <return-value transfer-ownership="none">
  43360. <type name="none" c:type="void"/>
  43361. </return-value>
  43362. <parameters>
  43363. <parameter name="src_n" transfer-ownership="none">
  43364. <doc xml:space="preserve">Fraction numerator as #gint</doc>
  43365. <type name="gint" c:type="gint"/>
  43366. </parameter>
  43367. <parameter name="src_d" transfer-ownership="none">
  43368. <doc xml:space="preserve">Fraction denominator #gint</doc>
  43369. <type name="gint" c:type="gint"/>
  43370. </parameter>
  43371. <parameter name="dest"
  43372. direction="out"
  43373. caller-allocates="0"
  43374. transfer-ownership="full">
  43375. <doc xml:space="preserve">pointer to a #gdouble for the result</doc>
  43376. <type name="gdouble" c:type="gdouble*"/>
  43377. </parameter>
  43378. </parameters>
  43379. </function>
  43380. <function name="util_gdouble_to_guint64"
  43381. c:identifier="gst_util_gdouble_to_guint64">
  43382. <return-value transfer-ownership="none">
  43383. <type name="guint64" c:type="guint64"/>
  43384. </return-value>
  43385. <parameters>
  43386. <parameter name="value" transfer-ownership="none">
  43387. <type name="gdouble" c:type="gdouble"/>
  43388. </parameter>
  43389. </parameters>
  43390. </function>
  43391. <function name="util_get_timestamp" c:identifier="gst_util_get_timestamp">
  43392. <doc xml:space="preserve">Get a timestamp as GstClockTime to be used for interval measurements.
  43393. The timestamp should not be interpreted in any other way.</doc>
  43394. <return-value transfer-ownership="none">
  43395. <doc xml:space="preserve">the timestamp</doc>
  43396. <type name="ClockTime" c:type="GstClockTime"/>
  43397. </return-value>
  43398. </function>
  43399. <function name="util_greatest_common_divisor"
  43400. c:identifier="gst_util_greatest_common_divisor">
  43401. <doc xml:space="preserve">Calculates the greatest common divisor of @a
  43402. and @b.</doc>
  43403. <return-value transfer-ownership="none">
  43404. <doc xml:space="preserve">Greatest common divisor of @a and @b</doc>
  43405. <type name="gint" c:type="gint"/>
  43406. </return-value>
  43407. <parameters>
  43408. <parameter name="a" transfer-ownership="none">
  43409. <doc xml:space="preserve">First value as #gint</doc>
  43410. <type name="gint" c:type="gint"/>
  43411. </parameter>
  43412. <parameter name="b" transfer-ownership="none">
  43413. <doc xml:space="preserve">Second value as #gint</doc>
  43414. <type name="gint" c:type="gint"/>
  43415. </parameter>
  43416. </parameters>
  43417. </function>
  43418. <function name="util_greatest_common_divisor_int64"
  43419. c:identifier="gst_util_greatest_common_divisor_int64">
  43420. <doc xml:space="preserve">Calculates the greatest common divisor of @a
  43421. and @b.</doc>
  43422. <return-value transfer-ownership="none">
  43423. <doc xml:space="preserve">Greatest common divisor of @a and @b</doc>
  43424. <type name="gint64" c:type="gint64"/>
  43425. </return-value>
  43426. <parameters>
  43427. <parameter name="a" transfer-ownership="none">
  43428. <doc xml:space="preserve">First value as #gint64</doc>
  43429. <type name="gint64" c:type="gint64"/>
  43430. </parameter>
  43431. <parameter name="b" transfer-ownership="none">
  43432. <doc xml:space="preserve">Second value as #gint64</doc>
  43433. <type name="gint64" c:type="gint64"/>
  43434. </parameter>
  43435. </parameters>
  43436. </function>
  43437. <function name="util_group_id_next" c:identifier="gst_util_group_id_next">
  43438. <doc xml:space="preserve">Return a constantly incrementing group id.
  43439. This function is used to generate a new group-id for the
  43440. stream-start event.</doc>
  43441. <return-value transfer-ownership="none">
  43442. <doc xml:space="preserve">A constantly incrementing unsigned integer, which might
  43443. overflow back to 0 at some point.</doc>
  43444. <type name="guint" c:type="guint"/>
  43445. </return-value>
  43446. </function>
  43447. <function name="util_guint64_to_gdouble"
  43448. c:identifier="gst_util_guint64_to_gdouble">
  43449. <return-value transfer-ownership="none">
  43450. <type name="gdouble" c:type="gdouble"/>
  43451. </return-value>
  43452. <parameters>
  43453. <parameter name="value" transfer-ownership="none">
  43454. <type name="guint64" c:type="guint64"/>
  43455. </parameter>
  43456. </parameters>
  43457. </function>
  43458. <function name="util_seqnum_compare"
  43459. c:identifier="gst_util_seqnum_compare">
  43460. <doc xml:space="preserve">Compare two sequence numbers, handling wraparound.
  43461. The current implementation just returns (gint32)(@s1 - @s2).</doc>
  43462. <return-value transfer-ownership="none">
  43463. <doc xml:space="preserve">A negative number if @s1 is before @s2, 0 if they are equal, or a
  43464. positive number if @s1 is after @s2.</doc>
  43465. <type name="gint32" c:type="gint32"/>
  43466. </return-value>
  43467. <parameters>
  43468. <parameter name="s1" transfer-ownership="none">
  43469. <doc xml:space="preserve">A sequence number.</doc>
  43470. <type name="guint32" c:type="guint32"/>
  43471. </parameter>
  43472. <parameter name="s2" transfer-ownership="none">
  43473. <doc xml:space="preserve">Another sequence number.</doc>
  43474. <type name="guint32" c:type="guint32"/>
  43475. </parameter>
  43476. </parameters>
  43477. </function>
  43478. <function name="util_seqnum_next" c:identifier="gst_util_seqnum_next">
  43479. <doc xml:space="preserve">Return a constantly incrementing sequence number.
  43480. This function is used internally to GStreamer to be able to determine which
  43481. events and messages are "the same". For example, elements may set the seqnum
  43482. on a segment-done message to be the same as that of the last seek event, to
  43483. indicate that event and the message correspond to the same segment.</doc>
  43484. <return-value transfer-ownership="none">
  43485. <doc xml:space="preserve">A constantly incrementing 32-bit unsigned integer, which might
  43486. overflow back to 0 at some point. Use gst_util_seqnum_compare() to make sure
  43487. you handle wraparound correctly.</doc>
  43488. <type name="guint32" c:type="guint32"/>
  43489. </return-value>
  43490. </function>
  43491. <function name="util_set_object_arg"
  43492. c:identifier="gst_util_set_object_arg">
  43493. <doc xml:space="preserve">Converts the string value to the type of the objects argument and
  43494. sets the argument with it.
  43495. Note that this function silently returns if @object has no property named
  43496. @name or when @value cannot be converted to the type of the property.</doc>
  43497. <return-value transfer-ownership="none">
  43498. <type name="none" c:type="void"/>
  43499. </return-value>
  43500. <parameters>
  43501. <parameter name="object" transfer-ownership="none">
  43502. <doc xml:space="preserve">the object to set the argument of</doc>
  43503. <type name="GObject.Object" c:type="GObject*"/>
  43504. </parameter>
  43505. <parameter name="name" transfer-ownership="none">
  43506. <doc xml:space="preserve">the name of the argument to set</doc>
  43507. <type name="utf8" c:type="const gchar*"/>
  43508. </parameter>
  43509. <parameter name="value" transfer-ownership="none">
  43510. <doc xml:space="preserve">the string value to set</doc>
  43511. <type name="utf8" c:type="const gchar*"/>
  43512. </parameter>
  43513. </parameters>
  43514. </function>
  43515. <function name="util_set_value_from_string"
  43516. c:identifier="gst_util_set_value_from_string">
  43517. <doc xml:space="preserve">Converts the string to the type of the value and
  43518. sets the value with it.
  43519. Note that this function is dangerous as it does not return any indication
  43520. if the conversion worked or not.</doc>
  43521. <return-value transfer-ownership="none">
  43522. <type name="none" c:type="void"/>
  43523. </return-value>
  43524. <parameters>
  43525. <parameter name="value"
  43526. direction="out"
  43527. caller-allocates="1"
  43528. transfer-ownership="none">
  43529. <doc xml:space="preserve">the value to set</doc>
  43530. <type name="GObject.Value" c:type="GValue*"/>
  43531. </parameter>
  43532. <parameter name="value_str" transfer-ownership="none">
  43533. <doc xml:space="preserve">the string to get the value from</doc>
  43534. <type name="utf8" c:type="const gchar*"/>
  43535. </parameter>
  43536. </parameters>
  43537. </function>
  43538. <function name="util_uint64_scale" c:identifier="gst_util_uint64_scale">
  43539. <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
  43540. underflows and without loss of precision.
  43541. This function can potentially be very slow if val and num are both
  43542. greater than G_MAXUINT32.</doc>
  43543. <return-value transfer-ownership="none">
  43544. <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
  43545. function returns G_MAXUINT64. If the result is not exactly
  43546. representable as an integer it is truncated. See also
  43547. gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil(),
  43548. gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
  43549. gst_util_uint64_scale_int_ceil().</doc>
  43550. <type name="guint64" c:type="guint64"/>
  43551. </return-value>
  43552. <parameters>
  43553. <parameter name="val" transfer-ownership="none">
  43554. <doc xml:space="preserve">the number to scale</doc>
  43555. <type name="guint64" c:type="guint64"/>
  43556. </parameter>
  43557. <parameter name="num" transfer-ownership="none">
  43558. <doc xml:space="preserve">the numerator of the scale ratio</doc>
  43559. <type name="guint64" c:type="guint64"/>
  43560. </parameter>
  43561. <parameter name="denom" transfer-ownership="none">
  43562. <doc xml:space="preserve">the denominator of the scale ratio</doc>
  43563. <type name="guint64" c:type="guint64"/>
  43564. </parameter>
  43565. </parameters>
  43566. </function>
  43567. <function name="util_uint64_scale_ceil"
  43568. c:identifier="gst_util_uint64_scale_ceil">
  43569. <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
  43570. underflows and without loss of precision.
  43571. This function can potentially be very slow if val and num are both
  43572. greater than G_MAXUINT32.</doc>
  43573. <return-value transfer-ownership="none">
  43574. <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
  43575. function returns G_MAXUINT64. If the result is not exactly
  43576. representable as an integer, it is rounded up. See also
  43577. gst_util_uint64_scale(), gst_util_uint64_scale_round(),
  43578. gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
  43579. gst_util_uint64_scale_int_ceil().</doc>
  43580. <type name="guint64" c:type="guint64"/>
  43581. </return-value>
  43582. <parameters>
  43583. <parameter name="val" transfer-ownership="none">
  43584. <doc xml:space="preserve">the number to scale</doc>
  43585. <type name="guint64" c:type="guint64"/>
  43586. </parameter>
  43587. <parameter name="num" transfer-ownership="none">
  43588. <doc xml:space="preserve">the numerator of the scale ratio</doc>
  43589. <type name="guint64" c:type="guint64"/>
  43590. </parameter>
  43591. <parameter name="denom" transfer-ownership="none">
  43592. <doc xml:space="preserve">the denominator of the scale ratio</doc>
  43593. <type name="guint64" c:type="guint64"/>
  43594. </parameter>
  43595. </parameters>
  43596. </function>
  43597. <function name="util_uint64_scale_int"
  43598. c:identifier="gst_util_uint64_scale_int">
  43599. <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
  43600. underflows and without loss of precision. @num must be non-negative and
  43601. @denom must be positive.</doc>
  43602. <return-value transfer-ownership="none">
  43603. <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
  43604. function returns G_MAXUINT64. If the result is not exactly
  43605. representable as an integer, it is truncated. See also
  43606. gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil(),
  43607. gst_util_uint64_scale(), gst_util_uint64_scale_round(),
  43608. gst_util_uint64_scale_ceil().</doc>
  43609. <type name="guint64" c:type="guint64"/>
  43610. </return-value>
  43611. <parameters>
  43612. <parameter name="val" transfer-ownership="none">
  43613. <doc xml:space="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
  43614. <type name="guint64" c:type="guint64"/>
  43615. </parameter>
  43616. <parameter name="num" transfer-ownership="none">
  43617. <doc xml:space="preserve">numerator of the scale factor.</doc>
  43618. <type name="gint" c:type="gint"/>
  43619. </parameter>
  43620. <parameter name="denom" transfer-ownership="none">
  43621. <doc xml:space="preserve">denominator of the scale factor.</doc>
  43622. <type name="gint" c:type="gint"/>
  43623. </parameter>
  43624. </parameters>
  43625. </function>
  43626. <function name="util_uint64_scale_int_ceil"
  43627. c:identifier="gst_util_uint64_scale_int_ceil">
  43628. <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
  43629. underflows and without loss of precision. @num must be non-negative and
  43630. @denom must be positive.</doc>
  43631. <return-value transfer-ownership="none">
  43632. <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
  43633. function returns G_MAXUINT64. If the result is not exactly
  43634. representable as an integer, it is rounded up. See also
  43635. gst_util_uint64_scale_int(), gst_util_uint64_scale_int_round(),
  43636. gst_util_uint64_scale(), gst_util_uint64_scale_round(),
  43637. gst_util_uint64_scale_ceil().</doc>
  43638. <type name="guint64" c:type="guint64"/>
  43639. </return-value>
  43640. <parameters>
  43641. <parameter name="val" transfer-ownership="none">
  43642. <doc xml:space="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
  43643. <type name="guint64" c:type="guint64"/>
  43644. </parameter>
  43645. <parameter name="num" transfer-ownership="none">
  43646. <doc xml:space="preserve">numerator of the scale factor.</doc>
  43647. <type name="gint" c:type="gint"/>
  43648. </parameter>
  43649. <parameter name="denom" transfer-ownership="none">
  43650. <doc xml:space="preserve">denominator of the scale factor.</doc>
  43651. <type name="gint" c:type="gint"/>
  43652. </parameter>
  43653. </parameters>
  43654. </function>
  43655. <function name="util_uint64_scale_int_round"
  43656. c:identifier="gst_util_uint64_scale_int_round">
  43657. <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
  43658. underflows and without loss of precision. @num must be non-negative and
  43659. @denom must be positive.</doc>
  43660. <return-value transfer-ownership="none">
  43661. <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
  43662. function returns G_MAXUINT64. If the result is not exactly
  43663. representable as an integer, it is rounded to the nearest integer
  43664. (half-way cases are rounded up). See also gst_util_uint64_scale_int(),
  43665. gst_util_uint64_scale_int_ceil(), gst_util_uint64_scale(),
  43666. gst_util_uint64_scale_round(), gst_util_uint64_scale_ceil().</doc>
  43667. <type name="guint64" c:type="guint64"/>
  43668. </return-value>
  43669. <parameters>
  43670. <parameter name="val" transfer-ownership="none">
  43671. <doc xml:space="preserve">guint64 (such as a #GstClockTime) to scale.</doc>
  43672. <type name="guint64" c:type="guint64"/>
  43673. </parameter>
  43674. <parameter name="num" transfer-ownership="none">
  43675. <doc xml:space="preserve">numerator of the scale factor.</doc>
  43676. <type name="gint" c:type="gint"/>
  43677. </parameter>
  43678. <parameter name="denom" transfer-ownership="none">
  43679. <doc xml:space="preserve">denominator of the scale factor.</doc>
  43680. <type name="gint" c:type="gint"/>
  43681. </parameter>
  43682. </parameters>
  43683. </function>
  43684. <function name="util_uint64_scale_round"
  43685. c:identifier="gst_util_uint64_scale_round">
  43686. <doc xml:space="preserve">Scale @val by the rational number @num / @denom, avoiding overflows and
  43687. underflows and without loss of precision.
  43688. This function can potentially be very slow if val and num are both
  43689. greater than G_MAXUINT32.</doc>
  43690. <return-value transfer-ownership="none">
  43691. <doc xml:space="preserve">@val * @num / @denom. In the case of an overflow, this
  43692. function returns G_MAXUINT64. If the result is not exactly
  43693. representable as an integer, it is rounded to the nearest integer
  43694. (half-way cases are rounded up). See also gst_util_uint64_scale(),
  43695. gst_util_uint64_scale_ceil(), gst_util_uint64_scale_int(),
  43696. gst_util_uint64_scale_int_round(), gst_util_uint64_scale_int_ceil().</doc>
  43697. <type name="guint64" c:type="guint64"/>
  43698. </return-value>
  43699. <parameters>
  43700. <parameter name="val" transfer-ownership="none">
  43701. <doc xml:space="preserve">the number to scale</doc>
  43702. <type name="guint64" c:type="guint64"/>
  43703. </parameter>
  43704. <parameter name="num" transfer-ownership="none">
  43705. <doc xml:space="preserve">the numerator of the scale ratio</doc>
  43706. <type name="guint64" c:type="guint64"/>
  43707. </parameter>
  43708. <parameter name="denom" transfer-ownership="none">
  43709. <doc xml:space="preserve">the denominator of the scale ratio</doc>
  43710. <type name="guint64" c:type="guint64"/>
  43711. </parameter>
  43712. </parameters>
  43713. </function>
  43714. <function name="value_can_compare" c:identifier="gst_value_can_compare">
  43715. <doc xml:space="preserve">Determines if @value1 and @value2 can be compared.</doc>
  43716. <return-value transfer-ownership="none">
  43717. <doc xml:space="preserve">%TRUE if the values can be compared</doc>
  43718. <type name="gboolean" c:type="gboolean"/>
  43719. </return-value>
  43720. <parameters>
  43721. <parameter name="value1" transfer-ownership="none">
  43722. <doc xml:space="preserve">a value to compare</doc>
  43723. <type name="GObject.Value" c:type="const GValue*"/>
  43724. </parameter>
  43725. <parameter name="value2" transfer-ownership="none">
  43726. <doc xml:space="preserve">another value to compare</doc>
  43727. <type name="GObject.Value" c:type="const GValue*"/>
  43728. </parameter>
  43729. </parameters>
  43730. </function>
  43731. <function name="value_can_intersect"
  43732. c:identifier="gst_value_can_intersect">
  43733. <doc xml:space="preserve">Determines if intersecting two values will produce a valid result.
  43734. Two values will produce a valid intersection if they have the same
  43735. type.</doc>
  43736. <return-value transfer-ownership="none">
  43737. <doc xml:space="preserve">%TRUE if the values can intersect</doc>
  43738. <type name="gboolean" c:type="gboolean"/>
  43739. </return-value>
  43740. <parameters>
  43741. <parameter name="value1" transfer-ownership="none">
  43742. <doc xml:space="preserve">a value to intersect</doc>
  43743. <type name="GObject.Value" c:type="const GValue*"/>
  43744. </parameter>
  43745. <parameter name="value2" transfer-ownership="none">
  43746. <doc xml:space="preserve">another value to intersect</doc>
  43747. <type name="GObject.Value" c:type="const GValue*"/>
  43748. </parameter>
  43749. </parameters>
  43750. </function>
  43751. <function name="value_can_subtract" c:identifier="gst_value_can_subtract">
  43752. <doc xml:space="preserve">Checks if it's possible to subtract @subtrahend from @minuend.</doc>
  43753. <return-value transfer-ownership="none">
  43754. <doc xml:space="preserve">%TRUE if a subtraction is possible</doc>
  43755. <type name="gboolean" c:type="gboolean"/>
  43756. </return-value>
  43757. <parameters>
  43758. <parameter name="minuend" transfer-ownership="none">
  43759. <doc xml:space="preserve">the value to subtract from</doc>
  43760. <type name="GObject.Value" c:type="const GValue*"/>
  43761. </parameter>
  43762. <parameter name="subtrahend" transfer-ownership="none">
  43763. <doc xml:space="preserve">the value to subtract</doc>
  43764. <type name="GObject.Value" c:type="const GValue*"/>
  43765. </parameter>
  43766. </parameters>
  43767. </function>
  43768. <function name="value_can_union" c:identifier="gst_value_can_union">
  43769. <doc xml:space="preserve">Determines if @value1 and @value2 can be non-trivially unioned.
  43770. Any two values can be trivially unioned by adding both of them
  43771. to a GstValueList. However, certain types have the possibility
  43772. to be unioned in a simpler way. For example, an integer range
  43773. and an integer can be unioned if the integer is a subset of the
  43774. integer range. If there is the possibility that two values can
  43775. be unioned, this function returns %TRUE.</doc>
  43776. <return-value transfer-ownership="none">
  43777. <doc xml:space="preserve">%TRUE if there is a function allowing the two values to
  43778. be unioned.</doc>
  43779. <type name="gboolean" c:type="gboolean"/>
  43780. </return-value>
  43781. <parameters>
  43782. <parameter name="value1" transfer-ownership="none">
  43783. <doc xml:space="preserve">a value to union</doc>
  43784. <type name="GObject.Value" c:type="const GValue*"/>
  43785. </parameter>
  43786. <parameter name="value2" transfer-ownership="none">
  43787. <doc xml:space="preserve">another value to union</doc>
  43788. <type name="GObject.Value" c:type="const GValue*"/>
  43789. </parameter>
  43790. </parameters>
  43791. </function>
  43792. <function name="value_compare" c:identifier="gst_value_compare">
  43793. <doc xml:space="preserve">Compares @value1 and @value2. If @value1 and @value2 cannot be
  43794. compared, the function returns GST_VALUE_UNORDERED. Otherwise,
  43795. if @value1 is greater than @value2, GST_VALUE_GREATER_THAN is returned.
  43796. If @value1 is less than @value2, GST_VALUE_LESS_THAN is returned.
  43797. If the values are equal, GST_VALUE_EQUAL is returned.</doc>
  43798. <return-value transfer-ownership="none">
  43799. <doc xml:space="preserve">comparison result</doc>
  43800. <type name="gint" c:type="gint"/>
  43801. </return-value>
  43802. <parameters>
  43803. <parameter name="value1" transfer-ownership="none">
  43804. <doc xml:space="preserve">a value to compare</doc>
  43805. <type name="GObject.Value" c:type="const GValue*"/>
  43806. </parameter>
  43807. <parameter name="value2" transfer-ownership="none">
  43808. <doc xml:space="preserve">another value to compare</doc>
  43809. <type name="GObject.Value" c:type="const GValue*"/>
  43810. </parameter>
  43811. </parameters>
  43812. </function>
  43813. <function name="value_deserialize" c:identifier="gst_value_deserialize">
  43814. <doc xml:space="preserve">Tries to deserialize a string into the type specified by the given GValue.
  43815. If the operation succeeds, %TRUE is returned, %FALSE otherwise.</doc>
  43816. <return-value transfer-ownership="none">
  43817. <doc xml:space="preserve">%TRUE on success</doc>
  43818. <type name="gboolean" c:type="gboolean"/>
  43819. </return-value>
  43820. <parameters>
  43821. <parameter name="dest"
  43822. direction="out"
  43823. caller-allocates="1"
  43824. transfer-ownership="none">
  43825. <doc xml:space="preserve">#GValue to fill with contents of
  43826. deserialization</doc>
  43827. <type name="GObject.Value" c:type="GValue*"/>
  43828. </parameter>
  43829. <parameter name="src" transfer-ownership="none">
  43830. <doc xml:space="preserve">string to deserialize</doc>
  43831. <type name="utf8" c:type="const gchar*"/>
  43832. </parameter>
  43833. </parameters>
  43834. </function>
  43835. <function name="value_fixate" c:identifier="gst_value_fixate">
  43836. <doc xml:space="preserve">Fixate @src into a new value @dest.
  43837. For ranges, the first element is taken. For lists and arrays, the
  43838. first item is fixated and returned.
  43839. If @src is already fixed, this function returns %FALSE.</doc>
  43840. <return-value transfer-ownership="none">
  43841. <doc xml:space="preserve">%TRUE if @dest contains a fixated version of @src.</doc>
  43842. <type name="gboolean" c:type="gboolean"/>
  43843. </return-value>
  43844. <parameters>
  43845. <parameter name="dest" transfer-ownership="none">
  43846. <doc xml:space="preserve">the #GValue destination</doc>
  43847. <type name="GObject.Value" c:type="GValue*"/>
  43848. </parameter>
  43849. <parameter name="src" transfer-ownership="none">
  43850. <doc xml:space="preserve">the #GValue to fixate</doc>
  43851. <type name="GObject.Value" c:type="const GValue*"/>
  43852. </parameter>
  43853. </parameters>
  43854. </function>
  43855. <function name="value_fraction_multiply"
  43856. c:identifier="gst_value_fraction_multiply">
  43857. <doc xml:space="preserve">Multiplies the two #GValue items containing a #GST_TYPE_FRACTION and sets
  43858. @product to the product of the two fractions.</doc>
  43859. <return-value transfer-ownership="none">
  43860. <doc xml:space="preserve">%FALSE in case of an error (like integer overflow), %TRUE otherwise.</doc>
  43861. <type name="gboolean" c:type="gboolean"/>
  43862. </return-value>
  43863. <parameters>
  43864. <parameter name="product" transfer-ownership="none">
  43865. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  43866. <type name="GObject.Value" c:type="GValue*"/>
  43867. </parameter>
  43868. <parameter name="factor1" transfer-ownership="none">
  43869. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  43870. <type name="GObject.Value" c:type="const GValue*"/>
  43871. </parameter>
  43872. <parameter name="factor2" transfer-ownership="none">
  43873. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  43874. <type name="GObject.Value" c:type="const GValue*"/>
  43875. </parameter>
  43876. </parameters>
  43877. </function>
  43878. <function name="value_fraction_subtract"
  43879. c:identifier="gst_value_fraction_subtract">
  43880. <doc xml:space="preserve">Subtracts the @subtrahend from the @minuend and sets @dest to the result.</doc>
  43881. <return-value transfer-ownership="none">
  43882. <doc xml:space="preserve">%FALSE in case of an error (like integer overflow), %TRUE otherwise.</doc>
  43883. <type name="gboolean" c:type="gboolean"/>
  43884. </return-value>
  43885. <parameters>
  43886. <parameter name="dest" transfer-ownership="none">
  43887. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  43888. <type name="GObject.Value" c:type="GValue*"/>
  43889. </parameter>
  43890. <parameter name="minuend" transfer-ownership="none">
  43891. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  43892. <type name="GObject.Value" c:type="const GValue*"/>
  43893. </parameter>
  43894. <parameter name="subtrahend" transfer-ownership="none">
  43895. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  43896. <type name="GObject.Value" c:type="const GValue*"/>
  43897. </parameter>
  43898. </parameters>
  43899. </function>
  43900. <function name="value_get_bitmask" c:identifier="gst_value_get_bitmask">
  43901. <doc xml:space="preserve">Gets the bitmask specified by @value.</doc>
  43902. <return-value transfer-ownership="none">
  43903. <doc xml:space="preserve">the bitmask.</doc>
  43904. <type name="guint64" c:type="guint64"/>
  43905. </return-value>
  43906. <parameters>
  43907. <parameter name="value" transfer-ownership="none">
  43908. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_BITMASK</doc>
  43909. <type name="GObject.Value" c:type="const GValue*"/>
  43910. </parameter>
  43911. </parameters>
  43912. </function>
  43913. <function name="value_get_caps" c:identifier="gst_value_get_caps">
  43914. <doc xml:space="preserve">Gets the contents of @value. The reference count of the returned
  43915. #GstCaps will not be modified, therefore the caller must take one
  43916. before getting rid of the @value.</doc>
  43917. <return-value transfer-ownership="none">
  43918. <doc xml:space="preserve">the contents of @value</doc>
  43919. <type name="Caps" c:type="const GstCaps*"/>
  43920. </return-value>
  43921. <parameters>
  43922. <parameter name="value" transfer-ownership="none">
  43923. <doc xml:space="preserve">a GValue initialized to GST_TYPE_CAPS</doc>
  43924. <type name="GObject.Value" c:type="const GValue*"/>
  43925. </parameter>
  43926. </parameters>
  43927. </function>
  43928. <function name="value_get_caps_features"
  43929. c:identifier="gst_value_get_caps_features">
  43930. <doc xml:space="preserve">Gets the contents of @value.</doc>
  43931. <return-value transfer-ownership="none">
  43932. <doc xml:space="preserve">the contents of @value</doc>
  43933. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  43934. </return-value>
  43935. <parameters>
  43936. <parameter name="value" transfer-ownership="none">
  43937. <doc xml:space="preserve">a GValue initialized to GST_TYPE_CAPS_FEATURES</doc>
  43938. <type name="GObject.Value" c:type="const GValue*"/>
  43939. </parameter>
  43940. </parameters>
  43941. </function>
  43942. <function name="value_get_double_range_max"
  43943. c:identifier="gst_value_get_double_range_max">
  43944. <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
  43945. <return-value transfer-ownership="none">
  43946. <doc xml:space="preserve">the maximum of the range</doc>
  43947. <type name="gdouble" c:type="gdouble"/>
  43948. </return-value>
  43949. <parameters>
  43950. <parameter name="value" transfer-ownership="none">
  43951. <doc xml:space="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
  43952. <type name="GObject.Value" c:type="const GValue*"/>
  43953. </parameter>
  43954. </parameters>
  43955. </function>
  43956. <function name="value_get_double_range_min"
  43957. c:identifier="gst_value_get_double_range_min">
  43958. <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
  43959. <return-value transfer-ownership="none">
  43960. <doc xml:space="preserve">the minimum of the range</doc>
  43961. <type name="gdouble" c:type="gdouble"/>
  43962. </return-value>
  43963. <parameters>
  43964. <parameter name="value" transfer-ownership="none">
  43965. <doc xml:space="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
  43966. <type name="GObject.Value" c:type="const GValue*"/>
  43967. </parameter>
  43968. </parameters>
  43969. </function>
  43970. <function name="value_get_flagset_flags"
  43971. c:identifier="gst_value_get_flagset_flags"
  43972. version="1.6">
  43973. <doc xml:space="preserve">Retrieve the flags field of a GstFlagSet @value.</doc>
  43974. <return-value transfer-ownership="none">
  43975. <doc xml:space="preserve">the flags field of the flagset instance.</doc>
  43976. <type name="guint" c:type="guint"/>
  43977. </return-value>
  43978. <parameters>
  43979. <parameter name="value" transfer-ownership="none">
  43980. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FLAG_SET</doc>
  43981. <type name="GObject.Value" c:type="const GValue*"/>
  43982. </parameter>
  43983. </parameters>
  43984. </function>
  43985. <function name="value_get_flagset_mask"
  43986. c:identifier="gst_value_get_flagset_mask"
  43987. version="1.6">
  43988. <doc xml:space="preserve">Retrieve the mask field of a GstFlagSet @value.</doc>
  43989. <return-value transfer-ownership="none">
  43990. <doc xml:space="preserve">the mask field of the flagset instance.</doc>
  43991. <type name="guint" c:type="guint"/>
  43992. </return-value>
  43993. <parameters>
  43994. <parameter name="value" transfer-ownership="none">
  43995. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FLAG_SET</doc>
  43996. <type name="GObject.Value" c:type="const GValue*"/>
  43997. </parameter>
  43998. </parameters>
  43999. </function>
  44000. <function name="value_get_fraction_denominator"
  44001. c:identifier="gst_value_get_fraction_denominator">
  44002. <doc xml:space="preserve">Gets the denominator of the fraction specified by @value.</doc>
  44003. <return-value transfer-ownership="none">
  44004. <doc xml:space="preserve">the denominator of the fraction.</doc>
  44005. <type name="gint" c:type="gint"/>
  44006. </return-value>
  44007. <parameters>
  44008. <parameter name="value" transfer-ownership="none">
  44009. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  44010. <type name="GObject.Value" c:type="const GValue*"/>
  44011. </parameter>
  44012. </parameters>
  44013. </function>
  44014. <function name="value_get_fraction_numerator"
  44015. c:identifier="gst_value_get_fraction_numerator">
  44016. <doc xml:space="preserve">Gets the numerator of the fraction specified by @value.</doc>
  44017. <return-value transfer-ownership="none">
  44018. <doc xml:space="preserve">the numerator of the fraction.</doc>
  44019. <type name="gint" c:type="gint"/>
  44020. </return-value>
  44021. <parameters>
  44022. <parameter name="value" transfer-ownership="none">
  44023. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  44024. <type name="GObject.Value" c:type="const GValue*"/>
  44025. </parameter>
  44026. </parameters>
  44027. </function>
  44028. <function name="value_get_fraction_range_max"
  44029. c:identifier="gst_value_get_fraction_range_max">
  44030. <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
  44031. <return-value transfer-ownership="none">
  44032. <doc xml:space="preserve">the maximum of the range</doc>
  44033. <type name="GObject.Value" c:type="const GValue*"/>
  44034. </return-value>
  44035. <parameters>
  44036. <parameter name="value" transfer-ownership="none">
  44037. <doc xml:space="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
  44038. <type name="GObject.Value" c:type="const GValue*"/>
  44039. </parameter>
  44040. </parameters>
  44041. </function>
  44042. <function name="value_get_fraction_range_min"
  44043. c:identifier="gst_value_get_fraction_range_min">
  44044. <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
  44045. <return-value transfer-ownership="none">
  44046. <doc xml:space="preserve">the minimum of the range</doc>
  44047. <type name="GObject.Value" c:type="const GValue*"/>
  44048. </return-value>
  44049. <parameters>
  44050. <parameter name="value" transfer-ownership="none">
  44051. <doc xml:space="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
  44052. <type name="GObject.Value" c:type="const GValue*"/>
  44053. </parameter>
  44054. </parameters>
  44055. </function>
  44056. <function name="value_get_int64_range_max"
  44057. c:identifier="gst_value_get_int64_range_max">
  44058. <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
  44059. <return-value transfer-ownership="none">
  44060. <doc xml:space="preserve">the maximum of the range</doc>
  44061. <type name="gint64" c:type="gint64"/>
  44062. </return-value>
  44063. <parameters>
  44064. <parameter name="value" transfer-ownership="none">
  44065. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
  44066. <type name="GObject.Value" c:type="const GValue*"/>
  44067. </parameter>
  44068. </parameters>
  44069. </function>
  44070. <function name="value_get_int64_range_min"
  44071. c:identifier="gst_value_get_int64_range_min">
  44072. <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
  44073. <return-value transfer-ownership="none">
  44074. <doc xml:space="preserve">the minimum of the range</doc>
  44075. <type name="gint64" c:type="gint64"/>
  44076. </return-value>
  44077. <parameters>
  44078. <parameter name="value" transfer-ownership="none">
  44079. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
  44080. <type name="GObject.Value" c:type="const GValue*"/>
  44081. </parameter>
  44082. </parameters>
  44083. </function>
  44084. <function name="value_get_int64_range_step"
  44085. c:identifier="gst_value_get_int64_range_step">
  44086. <doc xml:space="preserve">Gets the step of the range specified by @value.</doc>
  44087. <return-value transfer-ownership="none">
  44088. <doc xml:space="preserve">the step of the range</doc>
  44089. <type name="gint64" c:type="gint64"/>
  44090. </return-value>
  44091. <parameters>
  44092. <parameter name="value" transfer-ownership="none">
  44093. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
  44094. <type name="GObject.Value" c:type="const GValue*"/>
  44095. </parameter>
  44096. </parameters>
  44097. </function>
  44098. <function name="value_get_int_range_max"
  44099. c:identifier="gst_value_get_int_range_max">
  44100. <doc xml:space="preserve">Gets the maximum of the range specified by @value.</doc>
  44101. <return-value transfer-ownership="none">
  44102. <doc xml:space="preserve">the maximum of the range</doc>
  44103. <type name="gint" c:type="gint"/>
  44104. </return-value>
  44105. <parameters>
  44106. <parameter name="value" transfer-ownership="none">
  44107. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
  44108. <type name="GObject.Value" c:type="const GValue*"/>
  44109. </parameter>
  44110. </parameters>
  44111. </function>
  44112. <function name="value_get_int_range_min"
  44113. c:identifier="gst_value_get_int_range_min">
  44114. <doc xml:space="preserve">Gets the minimum of the range specified by @value.</doc>
  44115. <return-value transfer-ownership="none">
  44116. <doc xml:space="preserve">the minimum of the range</doc>
  44117. <type name="gint" c:type="gint"/>
  44118. </return-value>
  44119. <parameters>
  44120. <parameter name="value" transfer-ownership="none">
  44121. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
  44122. <type name="GObject.Value" c:type="const GValue*"/>
  44123. </parameter>
  44124. </parameters>
  44125. </function>
  44126. <function name="value_get_int_range_step"
  44127. c:identifier="gst_value_get_int_range_step">
  44128. <doc xml:space="preserve">Gets the step of the range specified by @value.</doc>
  44129. <return-value transfer-ownership="none">
  44130. <doc xml:space="preserve">the step of the range</doc>
  44131. <type name="gint" c:type="gint"/>
  44132. </return-value>
  44133. <parameters>
  44134. <parameter name="value" transfer-ownership="none">
  44135. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
  44136. <type name="GObject.Value" c:type="const GValue*"/>
  44137. </parameter>
  44138. </parameters>
  44139. </function>
  44140. <function name="value_get_structure"
  44141. c:identifier="gst_value_get_structure">
  44142. <doc xml:space="preserve">Gets the contents of @value.</doc>
  44143. <return-value transfer-ownership="none">
  44144. <doc xml:space="preserve">the contents of @value</doc>
  44145. <type name="Structure" c:type="const GstStructure*"/>
  44146. </return-value>
  44147. <parameters>
  44148. <parameter name="value" transfer-ownership="none">
  44149. <doc xml:space="preserve">a GValue initialized to GST_TYPE_STRUCTURE</doc>
  44150. <type name="GObject.Value" c:type="const GValue*"/>
  44151. </parameter>
  44152. </parameters>
  44153. </function>
  44154. <function name="value_init_and_copy"
  44155. c:identifier="gst_value_init_and_copy">
  44156. <doc xml:space="preserve">Initialises the target value to be of the same type as source and then copies
  44157. the contents from source to target.</doc>
  44158. <return-value transfer-ownership="none">
  44159. <type name="none" c:type="void"/>
  44160. </return-value>
  44161. <parameters>
  44162. <parameter name="dest"
  44163. direction="out"
  44164. caller-allocates="1"
  44165. transfer-ownership="none">
  44166. <doc xml:space="preserve">the target value</doc>
  44167. <type name="GObject.Value" c:type="GValue*"/>
  44168. </parameter>
  44169. <parameter name="src" transfer-ownership="none">
  44170. <doc xml:space="preserve">the source value</doc>
  44171. <type name="GObject.Value" c:type="const GValue*"/>
  44172. </parameter>
  44173. </parameters>
  44174. </function>
  44175. <function name="value_intersect" c:identifier="gst_value_intersect">
  44176. <doc xml:space="preserve">Calculates the intersection of two values. If the values have
  44177. a non-empty intersection, the value representing the intersection
  44178. is placed in @dest, unless %NULL. If the intersection is non-empty,
  44179. @dest is not modified.</doc>
  44180. <return-value transfer-ownership="none">
  44181. <doc xml:space="preserve">%TRUE if the intersection is non-empty</doc>
  44182. <type name="gboolean" c:type="gboolean"/>
  44183. </return-value>
  44184. <parameters>
  44185. <parameter name="dest"
  44186. direction="out"
  44187. caller-allocates="1"
  44188. transfer-ownership="full"
  44189. optional="1"
  44190. allow-none="1">
  44191. <doc xml:space="preserve">
  44192. a uninitialized #GValue that will hold the calculated
  44193. intersection value. May be %NULL if the resulting set if not
  44194. needed.</doc>
  44195. <type name="GObject.Value" c:type="GValue*"/>
  44196. </parameter>
  44197. <parameter name="value1" transfer-ownership="none">
  44198. <doc xml:space="preserve">a value to intersect</doc>
  44199. <type name="GObject.Value" c:type="const GValue*"/>
  44200. </parameter>
  44201. <parameter name="value2" transfer-ownership="none">
  44202. <doc xml:space="preserve">another value to intersect</doc>
  44203. <type name="GObject.Value" c:type="const GValue*"/>
  44204. </parameter>
  44205. </parameters>
  44206. </function>
  44207. <function name="value_is_fixed" c:identifier="gst_value_is_fixed">
  44208. <doc xml:space="preserve">Tests if the given GValue, if available in a GstStructure (or any other
  44209. container) contains a "fixed" (which means: one value) or an "unfixed"
  44210. (which means: multiple possible values, such as data lists or data
  44211. ranges) value.</doc>
  44212. <return-value transfer-ownership="none">
  44213. <doc xml:space="preserve">true if the value is "fixed".</doc>
  44214. <type name="gboolean" c:type="gboolean"/>
  44215. </return-value>
  44216. <parameters>
  44217. <parameter name="value" transfer-ownership="none">
  44218. <doc xml:space="preserve">the #GValue to check</doc>
  44219. <type name="GObject.Value" c:type="const GValue*"/>
  44220. </parameter>
  44221. </parameters>
  44222. </function>
  44223. <function name="value_is_subset" c:identifier="gst_value_is_subset">
  44224. <doc xml:space="preserve">Check that @value1 is a subset of @value2.</doc>
  44225. <return-value transfer-ownership="none">
  44226. <doc xml:space="preserve">%TRUE is @value1 is a subset of @value2</doc>
  44227. <type name="gboolean" c:type="gboolean"/>
  44228. </return-value>
  44229. <parameters>
  44230. <parameter name="value1" transfer-ownership="none">
  44231. <doc xml:space="preserve">a #GValue</doc>
  44232. <type name="GObject.Value" c:type="const GValue*"/>
  44233. </parameter>
  44234. <parameter name="value2" transfer-ownership="none">
  44235. <doc xml:space="preserve">a #GValue</doc>
  44236. <type name="GObject.Value" c:type="const GValue*"/>
  44237. </parameter>
  44238. </parameters>
  44239. </function>
  44240. <function name="value_register" c:identifier="gst_value_register">
  44241. <doc xml:space="preserve">Registers functions to perform calculations on #GValue items of a given
  44242. type. Each type can only be added once.</doc>
  44243. <return-value transfer-ownership="none">
  44244. <type name="none" c:type="void"/>
  44245. </return-value>
  44246. <parameters>
  44247. <parameter name="table" transfer-ownership="none">
  44248. <doc xml:space="preserve">structure containing functions to register</doc>
  44249. <type name="ValueTable" c:type="const GstValueTable*"/>
  44250. </parameter>
  44251. </parameters>
  44252. </function>
  44253. <function name="value_serialize" c:identifier="gst_value_serialize">
  44254. <doc xml:space="preserve">tries to transform the given @value into a string representation that allows
  44255. getting back this string later on using gst_value_deserialize().
  44256. Free-function: g_free</doc>
  44257. <return-value transfer-ownership="full" nullable="1">
  44258. <doc xml:space="preserve">the serialization for @value
  44259. or %NULL if none exists</doc>
  44260. <type name="utf8" c:type="gchar*"/>
  44261. </return-value>
  44262. <parameters>
  44263. <parameter name="value" transfer-ownership="none">
  44264. <doc xml:space="preserve">a #GValue to serialize</doc>
  44265. <type name="GObject.Value" c:type="const GValue*"/>
  44266. </parameter>
  44267. </parameters>
  44268. </function>
  44269. <function name="value_set_bitmask" c:identifier="gst_value_set_bitmask">
  44270. <doc xml:space="preserve">Sets @value to the bitmask specified by @bitmask.</doc>
  44271. <return-value transfer-ownership="none">
  44272. <type name="none" c:type="void"/>
  44273. </return-value>
  44274. <parameters>
  44275. <parameter name="value" transfer-ownership="none">
  44276. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_BITMASK</doc>
  44277. <type name="GObject.Value" c:type="GValue*"/>
  44278. </parameter>
  44279. <parameter name="bitmask" transfer-ownership="none">
  44280. <doc xml:space="preserve">the bitmask</doc>
  44281. <type name="guint64" c:type="guint64"/>
  44282. </parameter>
  44283. </parameters>
  44284. </function>
  44285. <function name="value_set_caps" c:identifier="gst_value_set_caps">
  44286. <doc xml:space="preserve">Sets the contents of @value to @caps. A reference to the
  44287. provided @caps will be taken by the @value.</doc>
  44288. <return-value transfer-ownership="none">
  44289. <type name="none" c:type="void"/>
  44290. </return-value>
  44291. <parameters>
  44292. <parameter name="value" transfer-ownership="none">
  44293. <doc xml:space="preserve">a GValue initialized to GST_TYPE_CAPS</doc>
  44294. <type name="GObject.Value" c:type="GValue*"/>
  44295. </parameter>
  44296. <parameter name="caps" transfer-ownership="none">
  44297. <doc xml:space="preserve">the caps to set the value to</doc>
  44298. <type name="Caps" c:type="const GstCaps*"/>
  44299. </parameter>
  44300. </parameters>
  44301. </function>
  44302. <function name="value_set_caps_features"
  44303. c:identifier="gst_value_set_caps_features">
  44304. <doc xml:space="preserve">Sets the contents of @value to @features.</doc>
  44305. <return-value transfer-ownership="none">
  44306. <type name="none" c:type="void"/>
  44307. </return-value>
  44308. <parameters>
  44309. <parameter name="value" transfer-ownership="none">
  44310. <doc xml:space="preserve">a GValue initialized to GST_TYPE_CAPS_FEATURES</doc>
  44311. <type name="GObject.Value" c:type="GValue*"/>
  44312. </parameter>
  44313. <parameter name="features" transfer-ownership="none">
  44314. <doc xml:space="preserve">the features to set the value to</doc>
  44315. <type name="CapsFeatures" c:type="const GstCapsFeatures*"/>
  44316. </parameter>
  44317. </parameters>
  44318. </function>
  44319. <function name="value_set_double_range"
  44320. c:identifier="gst_value_set_double_range">
  44321. <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</doc>
  44322. <return-value transfer-ownership="none">
  44323. <type name="none" c:type="void"/>
  44324. </return-value>
  44325. <parameters>
  44326. <parameter name="value" transfer-ownership="none">
  44327. <doc xml:space="preserve">a GValue initialized to GST_TYPE_DOUBLE_RANGE</doc>
  44328. <type name="GObject.Value" c:type="GValue*"/>
  44329. </parameter>
  44330. <parameter name="start" transfer-ownership="none">
  44331. <doc xml:space="preserve">the start of the range</doc>
  44332. <type name="gdouble" c:type="gdouble"/>
  44333. </parameter>
  44334. <parameter name="end" transfer-ownership="none">
  44335. <doc xml:space="preserve">the end of the range</doc>
  44336. <type name="gdouble" c:type="gdouble"/>
  44337. </parameter>
  44338. </parameters>
  44339. </function>
  44340. <function name="value_set_flagset"
  44341. c:identifier="gst_value_set_flagset"
  44342. version="1.6">
  44343. <doc xml:space="preserve">Sets @value to the flags and mask values provided in @flags and @mask.
  44344. The @flags value indicates the values of flags, the @mask represents
  44345. which bits in the flag value have been set, and which are "don't care"</doc>
  44346. <return-value transfer-ownership="none">
  44347. <type name="none" c:type="void"/>
  44348. </return-value>
  44349. <parameters>
  44350. <parameter name="value" transfer-ownership="none">
  44351. <doc xml:space="preserve">a GValue initialized to %GST_TYPE_FLAG_SET</doc>
  44352. <type name="GObject.Value" c:type="GValue*"/>
  44353. </parameter>
  44354. <parameter name="flags" transfer-ownership="none">
  44355. <doc xml:space="preserve">The value of the flags set or unset</doc>
  44356. <type name="guint" c:type="guint"/>
  44357. </parameter>
  44358. <parameter name="mask" transfer-ownership="none">
  44359. <doc xml:space="preserve">The mask indicate which flags bits must match for comparisons</doc>
  44360. <type name="guint" c:type="guint"/>
  44361. </parameter>
  44362. </parameters>
  44363. </function>
  44364. <function name="value_set_fraction" c:identifier="gst_value_set_fraction">
  44365. <doc xml:space="preserve">Sets @value to the fraction specified by @numerator over @denominator.
  44366. The fraction gets reduced to the smallest numerator and denominator,
  44367. and if necessary the sign is moved to the numerator.</doc>
  44368. <return-value transfer-ownership="none">
  44369. <type name="none" c:type="void"/>
  44370. </return-value>
  44371. <parameters>
  44372. <parameter name="value" transfer-ownership="none">
  44373. <doc xml:space="preserve">a GValue initialized to #GST_TYPE_FRACTION</doc>
  44374. <type name="GObject.Value" c:type="GValue*"/>
  44375. </parameter>
  44376. <parameter name="numerator" transfer-ownership="none">
  44377. <doc xml:space="preserve">the numerator of the fraction</doc>
  44378. <type name="gint" c:type="gint"/>
  44379. </parameter>
  44380. <parameter name="denominator" transfer-ownership="none">
  44381. <doc xml:space="preserve">the denominator of the fraction</doc>
  44382. <type name="gint" c:type="gint"/>
  44383. </parameter>
  44384. </parameters>
  44385. </function>
  44386. <function name="value_set_fraction_range"
  44387. c:identifier="gst_value_set_fraction_range">
  44388. <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</doc>
  44389. <return-value transfer-ownership="none">
  44390. <type name="none" c:type="void"/>
  44391. </return-value>
  44392. <parameters>
  44393. <parameter name="value" transfer-ownership="none">
  44394. <doc xml:space="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
  44395. <type name="GObject.Value" c:type="GValue*"/>
  44396. </parameter>
  44397. <parameter name="start" transfer-ownership="none">
  44398. <doc xml:space="preserve">the start of the range (a GST_TYPE_FRACTION GValue)</doc>
  44399. <type name="GObject.Value" c:type="const GValue*"/>
  44400. </parameter>
  44401. <parameter name="end" transfer-ownership="none">
  44402. <doc xml:space="preserve">the end of the range (a GST_TYPE_FRACTION GValue)</doc>
  44403. <type name="GObject.Value" c:type="const GValue*"/>
  44404. </parameter>
  44405. </parameters>
  44406. </function>
  44407. <function name="value_set_fraction_range_full"
  44408. c:identifier="gst_value_set_fraction_range_full">
  44409. <doc xml:space="preserve">Sets @value to the range specified by @numerator_start/@denominator_start
  44410. and @numerator_end/@denominator_end.</doc>
  44411. <return-value transfer-ownership="none">
  44412. <type name="none" c:type="void"/>
  44413. </return-value>
  44414. <parameters>
  44415. <parameter name="value" transfer-ownership="none">
  44416. <doc xml:space="preserve">a GValue initialized to GST_TYPE_FRACTION_RANGE</doc>
  44417. <type name="GObject.Value" c:type="GValue*"/>
  44418. </parameter>
  44419. <parameter name="numerator_start" transfer-ownership="none">
  44420. <doc xml:space="preserve">the numerator start of the range</doc>
  44421. <type name="gint" c:type="gint"/>
  44422. </parameter>
  44423. <parameter name="denominator_start" transfer-ownership="none">
  44424. <doc xml:space="preserve">the denominator start of the range</doc>
  44425. <type name="gint" c:type="gint"/>
  44426. </parameter>
  44427. <parameter name="numerator_end" transfer-ownership="none">
  44428. <doc xml:space="preserve">the numerator end of the range</doc>
  44429. <type name="gint" c:type="gint"/>
  44430. </parameter>
  44431. <parameter name="denominator_end" transfer-ownership="none">
  44432. <doc xml:space="preserve">the denominator end of the range</doc>
  44433. <type name="gint" c:type="gint"/>
  44434. </parameter>
  44435. </parameters>
  44436. </function>
  44437. <function name="value_set_int64_range"
  44438. c:identifier="gst_value_set_int64_range">
  44439. <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</doc>
  44440. <return-value transfer-ownership="none">
  44441. <type name="none" c:type="void"/>
  44442. </return-value>
  44443. <parameters>
  44444. <parameter name="value" transfer-ownership="none">
  44445. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
  44446. <type name="GObject.Value" c:type="GValue*"/>
  44447. </parameter>
  44448. <parameter name="start" transfer-ownership="none">
  44449. <doc xml:space="preserve">the start of the range</doc>
  44450. <type name="gint64" c:type="gint64"/>
  44451. </parameter>
  44452. <parameter name="end" transfer-ownership="none">
  44453. <doc xml:space="preserve">the end of the range</doc>
  44454. <type name="gint64" c:type="gint64"/>
  44455. </parameter>
  44456. </parameters>
  44457. </function>
  44458. <function name="value_set_int64_range_step"
  44459. c:identifier="gst_value_set_int64_range_step">
  44460. <doc xml:space="preserve">Sets @value to the range specified by @start, @end and @step.</doc>
  44461. <return-value transfer-ownership="none">
  44462. <type name="none" c:type="void"/>
  44463. </return-value>
  44464. <parameters>
  44465. <parameter name="value" transfer-ownership="none">
  44466. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT64_RANGE</doc>
  44467. <type name="GObject.Value" c:type="GValue*"/>
  44468. </parameter>
  44469. <parameter name="start" transfer-ownership="none">
  44470. <doc xml:space="preserve">the start of the range</doc>
  44471. <type name="gint64" c:type="gint64"/>
  44472. </parameter>
  44473. <parameter name="end" transfer-ownership="none">
  44474. <doc xml:space="preserve">the end of the range</doc>
  44475. <type name="gint64" c:type="gint64"/>
  44476. </parameter>
  44477. <parameter name="step" transfer-ownership="none">
  44478. <doc xml:space="preserve">the step of the range</doc>
  44479. <type name="gint64" c:type="gint64"/>
  44480. </parameter>
  44481. </parameters>
  44482. </function>
  44483. <function name="value_set_int_range"
  44484. c:identifier="gst_value_set_int_range">
  44485. <doc xml:space="preserve">Sets @value to the range specified by @start and @end.</doc>
  44486. <return-value transfer-ownership="none">
  44487. <type name="none" c:type="void"/>
  44488. </return-value>
  44489. <parameters>
  44490. <parameter name="value" transfer-ownership="none">
  44491. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
  44492. <type name="GObject.Value" c:type="GValue*"/>
  44493. </parameter>
  44494. <parameter name="start" transfer-ownership="none">
  44495. <doc xml:space="preserve">the start of the range</doc>
  44496. <type name="gint" c:type="gint"/>
  44497. </parameter>
  44498. <parameter name="end" transfer-ownership="none">
  44499. <doc xml:space="preserve">the end of the range</doc>
  44500. <type name="gint" c:type="gint"/>
  44501. </parameter>
  44502. </parameters>
  44503. </function>
  44504. <function name="value_set_int_range_step"
  44505. c:identifier="gst_value_set_int_range_step">
  44506. <doc xml:space="preserve">Sets @value to the range specified by @start, @end and @step.</doc>
  44507. <return-value transfer-ownership="none">
  44508. <type name="none" c:type="void"/>
  44509. </return-value>
  44510. <parameters>
  44511. <parameter name="value" transfer-ownership="none">
  44512. <doc xml:space="preserve">a GValue initialized to GST_TYPE_INT_RANGE</doc>
  44513. <type name="GObject.Value" c:type="GValue*"/>
  44514. </parameter>
  44515. <parameter name="start" transfer-ownership="none">
  44516. <doc xml:space="preserve">the start of the range</doc>
  44517. <type name="gint" c:type="gint"/>
  44518. </parameter>
  44519. <parameter name="end" transfer-ownership="none">
  44520. <doc xml:space="preserve">the end of the range</doc>
  44521. <type name="gint" c:type="gint"/>
  44522. </parameter>
  44523. <parameter name="step" transfer-ownership="none">
  44524. <doc xml:space="preserve">the step of the range</doc>
  44525. <type name="gint" c:type="gint"/>
  44526. </parameter>
  44527. </parameters>
  44528. </function>
  44529. <function name="value_set_structure"
  44530. c:identifier="gst_value_set_structure">
  44531. <doc xml:space="preserve">Sets the contents of @value to @structure.</doc>
  44532. <return-value transfer-ownership="none">
  44533. <type name="none" c:type="void"/>
  44534. </return-value>
  44535. <parameters>
  44536. <parameter name="value" transfer-ownership="none">
  44537. <doc xml:space="preserve">a GValue initialized to GST_TYPE_STRUCTURE</doc>
  44538. <type name="GObject.Value" c:type="GValue*"/>
  44539. </parameter>
  44540. <parameter name="structure" transfer-ownership="none">
  44541. <doc xml:space="preserve">the structure to set the value to</doc>
  44542. <type name="Structure" c:type="const GstStructure*"/>
  44543. </parameter>
  44544. </parameters>
  44545. </function>
  44546. <function name="value_subtract" c:identifier="gst_value_subtract">
  44547. <doc xml:space="preserve">Subtracts @subtrahend from @minuend and stores the result in @dest.
  44548. Note that this means subtraction as in sets, not as in mathematics.</doc>
  44549. <return-value transfer-ownership="none">
  44550. <doc xml:space="preserve">%TRUE if the subtraction is not empty</doc>
  44551. <type name="gboolean" c:type="gboolean"/>
  44552. </return-value>
  44553. <parameters>
  44554. <parameter name="dest"
  44555. direction="out"
  44556. caller-allocates="1"
  44557. transfer-ownership="none"
  44558. optional="1"
  44559. allow-none="1">
  44560. <doc xml:space="preserve">the destination value
  44561. for the result if the subtraction is not empty. May be %NULL,
  44562. in which case the resulting set will not be computed, which can
  44563. give a fair speedup.</doc>
  44564. <type name="GObject.Value" c:type="GValue*"/>
  44565. </parameter>
  44566. <parameter name="minuend" transfer-ownership="none">
  44567. <doc xml:space="preserve">the value to subtract from</doc>
  44568. <type name="GObject.Value" c:type="const GValue*"/>
  44569. </parameter>
  44570. <parameter name="subtrahend" transfer-ownership="none">
  44571. <doc xml:space="preserve">the value to subtract</doc>
  44572. <type name="GObject.Value" c:type="const GValue*"/>
  44573. </parameter>
  44574. </parameters>
  44575. </function>
  44576. <function name="value_union" c:identifier="gst_value_union">
  44577. <doc xml:space="preserve">Creates a GValue corresponding to the union of @value1 and @value2.</doc>
  44578. <return-value transfer-ownership="none">
  44579. <doc xml:space="preserve">%TRUE if the union succeeded.</doc>
  44580. <type name="gboolean" c:type="gboolean"/>
  44581. </return-value>
  44582. <parameters>
  44583. <parameter name="dest"
  44584. direction="out"
  44585. caller-allocates="1"
  44586. transfer-ownership="none">
  44587. <doc xml:space="preserve">the destination value</doc>
  44588. <type name="GObject.Value" c:type="GValue*"/>
  44589. </parameter>
  44590. <parameter name="value1" transfer-ownership="none">
  44591. <doc xml:space="preserve">a value to union</doc>
  44592. <type name="GObject.Value" c:type="const GValue*"/>
  44593. </parameter>
  44594. <parameter name="value2" transfer-ownership="none">
  44595. <doc xml:space="preserve">another value to union</doc>
  44596. <type name="GObject.Value" c:type="const GValue*"/>
  44597. </parameter>
  44598. </parameters>
  44599. </function>
  44600. <function name="version" c:identifier="gst_version">
  44601. <doc xml:space="preserve">Gets the version number of the GStreamer library.</doc>
  44602. <return-value transfer-ownership="none">
  44603. <type name="none" c:type="void"/>
  44604. </return-value>
  44605. <parameters>
  44606. <parameter name="major"
  44607. direction="out"
  44608. caller-allocates="0"
  44609. transfer-ownership="full">
  44610. <doc xml:space="preserve">pointer to a guint to store the major version number</doc>
  44611. <type name="guint" c:type="guint*"/>
  44612. </parameter>
  44613. <parameter name="minor"
  44614. direction="out"
  44615. caller-allocates="0"
  44616. transfer-ownership="full">
  44617. <doc xml:space="preserve">pointer to a guint to store the minor version number</doc>
  44618. <type name="guint" c:type="guint*"/>
  44619. </parameter>
  44620. <parameter name="micro"
  44621. direction="out"
  44622. caller-allocates="0"
  44623. transfer-ownership="full">
  44624. <doc xml:space="preserve">pointer to a guint to store the micro version number</doc>
  44625. <type name="guint" c:type="guint*"/>
  44626. </parameter>
  44627. <parameter name="nano"
  44628. direction="out"
  44629. caller-allocates="0"
  44630. transfer-ownership="full">
  44631. <doc xml:space="preserve">pointer to a guint to store the nano version number</doc>
  44632. <type name="guint" c:type="guint*"/>
  44633. </parameter>
  44634. </parameters>
  44635. </function>
  44636. <function name="version_string" c:identifier="gst_version_string">
  44637. <doc xml:space="preserve">This function returns a string that is useful for describing this version
  44638. of GStreamer to the outside world: user agent strings, logging, ...</doc>
  44639. <return-value transfer-ownership="full">
  44640. <doc xml:space="preserve">a newly allocated string describing this version
  44641. of GStreamer.</doc>
  44642. <type name="utf8" c:type="gchar*"/>
  44643. </return-value>
  44644. </function>
  44645. </namespace>
  44646. </repository>