GstVideo-1.0.gir 556 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349
  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="Gst" version="1.0"/>
  10. <include name="GstBase" version="1.0"/>
  11. <package name="gstreamer-video-1.0"/>
  12. <c:include name="gst/video/video.h"/>
  13. <namespace name="GstVideo"
  14. version="1.0"
  15. shared-library="libgstvideo-1.0.so.0"
  16. c:identifier-prefixes="Gst"
  17. c:symbol-prefixes="gst">
  18. <constant name="BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META"
  19. value="GstBufferPoolOptionVideoAffineTransformation"
  20. c:type="GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META">
  21. <type name="utf8" c:type="gchar*"/>
  22. </constant>
  23. <constant name="BUFFER_POOL_OPTION_VIDEO_ALIGNMENT"
  24. value="GstBufferPoolOptionVideoAlignment"
  25. c:type="GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT">
  26. <doc xml:space="preserve">A bufferpool option to enable extra padding. When a bufferpool supports this
  27. option, gst_buffer_pool_config_set_video_alignment() can be called.
  28. When this option is enabled on the bufferpool,
  29. #GST_BUFFER_POOL_OPTION_VIDEO_META should also be enabled.</doc>
  30. <type name="utf8" c:type="gchar*"/>
  31. </constant>
  32. <constant name="BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META"
  33. value="GstBufferPoolOptionVideoGLTextureUploadMeta"
  34. c:type="GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META"
  35. version="1.2.2">
  36. <doc xml:space="preserve">An option that can be activated on a bufferpool to request gl texture upload
  37. meta on buffers from the pool.
  38. When this option is enabled on the bufferpool,
  39. @GST_BUFFER_POOL_OPTION_VIDEO_META should also be enabled.</doc>
  40. <type name="utf8" c:type="gchar*"/>
  41. </constant>
  42. <constant name="BUFFER_POOL_OPTION_VIDEO_META"
  43. value="GstBufferPoolOptionVideoMeta"
  44. c:type="GST_BUFFER_POOL_OPTION_VIDEO_META">
  45. <doc xml:space="preserve">An option that can be activated on bufferpool to request video metadata
  46. on buffers from the pool.</doc>
  47. <type name="utf8" c:type="gchar*"/>
  48. </constant>
  49. <constant name="CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META"
  50. value="meta:GstVideoAffineTransformation"
  51. c:type="GST_CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META">
  52. <type name="utf8" c:type="gchar*"/>
  53. </constant>
  54. <constant name="CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META"
  55. value="meta:GstVideoGLTextureUploadMeta"
  56. c:type="GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META">
  57. <type name="utf8" c:type="gchar*"/>
  58. </constant>
  59. <constant name="CAPS_FEATURE_META_GST_VIDEO_META"
  60. value="meta:GstVideoMeta"
  61. c:type="GST_CAPS_FEATURE_META_GST_VIDEO_META">
  62. <type name="utf8" c:type="gchar*"/>
  63. </constant>
  64. <constant name="CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION"
  65. value="meta:GstVideoOverlayComposition"
  66. c:type="GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION">
  67. <type name="utf8" c:type="gchar*"/>
  68. </constant>
  69. <interface name="ColorBalance"
  70. c:symbol-prefix="color_balance"
  71. c:type="GstColorBalance"
  72. glib:type-name="GstColorBalance"
  73. glib:get-type="gst_color_balance_get_type"
  74. glib:type-struct="ColorBalanceInterface">
  75. <doc xml:space="preserve">&lt;refsect2&gt;&lt;para&gt;
  76. This interface is implemented by elements which can perform some color
  77. balance operation on video frames they process. For example, modifying
  78. the brightness, contrast, hue or saturation.
  79. &lt;/para&gt;&lt;para&gt;
  80. Example elements are 'xvimagesink' and 'colorbalance'
  81. &lt;/para&gt;
  82. &lt;/refsect2&gt;</doc>
  83. <virtual-method name="get_balance_type" invoker="get_balance_type">
  84. <doc xml:space="preserve">Get the #GstColorBalanceType of this implementation.</doc>
  85. <return-value transfer-ownership="none">
  86. <doc xml:space="preserve">A the #GstColorBalanceType.</doc>
  87. <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
  88. </return-value>
  89. <parameters>
  90. <instance-parameter name="balance" transfer-ownership="none">
  91. <doc xml:space="preserve">The #GstColorBalance implementation</doc>
  92. <type name="ColorBalance" c:type="GstColorBalance*"/>
  93. </instance-parameter>
  94. </parameters>
  95. </virtual-method>
  96. <virtual-method name="get_value" invoker="get_value">
  97. <doc xml:space="preserve">Retrieve the current value of the indicated channel, between min_value
  98. and max_value.
  99. See Also: The #GstColorBalanceChannel.min_value and
  100. #GstColorBalanceChannel.max_value members of the
  101. #GstColorBalanceChannel object.</doc>
  102. <return-value transfer-ownership="none">
  103. <doc xml:space="preserve">The current value of the channel.</doc>
  104. <type name="gint" c:type="gint"/>
  105. </return-value>
  106. <parameters>
  107. <instance-parameter name="balance" transfer-ownership="none">
  108. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  109. <type name="ColorBalance" c:type="GstColorBalance*"/>
  110. </instance-parameter>
  111. <parameter name="channel" transfer-ownership="none">
  112. <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
  113. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  114. </parameter>
  115. </parameters>
  116. </virtual-method>
  117. <virtual-method name="list_channels" invoker="list_channels">
  118. <doc xml:space="preserve">Retrieve a list of the available channels.</doc>
  119. <return-value transfer-ownership="none">
  120. <doc xml:space="preserve">A
  121. GList containing pointers to #GstColorBalanceChannel
  122. objects. The list is owned by the #GstColorBalance
  123. instance and must not be freed.</doc>
  124. <type name="GLib.List" c:type="const GList*">
  125. <type name="ColorBalanceChannel"/>
  126. </type>
  127. </return-value>
  128. <parameters>
  129. <instance-parameter name="balance" transfer-ownership="none">
  130. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  131. <type name="ColorBalance" c:type="GstColorBalance*"/>
  132. </instance-parameter>
  133. </parameters>
  134. </virtual-method>
  135. <virtual-method name="set_value" invoker="set_value">
  136. <doc xml:space="preserve">Sets the current value of the channel to the passed value, which must
  137. be between min_value and max_value.
  138. See Also: The #GstColorBalanceChannel.min_value and
  139. #GstColorBalanceChannel.max_value members of the
  140. #GstColorBalanceChannel object.</doc>
  141. <return-value transfer-ownership="none">
  142. <type name="none" c:type="void"/>
  143. </return-value>
  144. <parameters>
  145. <instance-parameter name="balance" transfer-ownership="none">
  146. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  147. <type name="ColorBalance" c:type="GstColorBalance*"/>
  148. </instance-parameter>
  149. <parameter name="channel" transfer-ownership="none">
  150. <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
  151. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  152. </parameter>
  153. <parameter name="value" transfer-ownership="none">
  154. <doc xml:space="preserve">The new value for the channel.</doc>
  155. <type name="gint" c:type="gint"/>
  156. </parameter>
  157. </parameters>
  158. </virtual-method>
  159. <virtual-method name="value_changed" invoker="value_changed">
  160. <doc xml:space="preserve">A helper function called by implementations of the GstColorBalance
  161. interface. It fires the #GstColorBalance::value-changed signal on the
  162. instance, and the #GstColorBalanceChannel::value-changed signal on the
  163. channel object.</doc>
  164. <return-value transfer-ownership="none">
  165. <type name="none" c:type="void"/>
  166. </return-value>
  167. <parameters>
  168. <instance-parameter name="balance" transfer-ownership="none">
  169. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  170. <type name="ColorBalance" c:type="GstColorBalance*"/>
  171. </instance-parameter>
  172. <parameter name="channel" transfer-ownership="none">
  173. <doc xml:space="preserve">A #GstColorBalanceChannel whose value has changed</doc>
  174. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  175. </parameter>
  176. <parameter name="value" transfer-ownership="none">
  177. <doc xml:space="preserve">The new value of the channel</doc>
  178. <type name="gint" c:type="gint"/>
  179. </parameter>
  180. </parameters>
  181. </virtual-method>
  182. <method name="get_balance_type"
  183. c:identifier="gst_color_balance_get_balance_type">
  184. <doc xml:space="preserve">Get the #GstColorBalanceType of this implementation.</doc>
  185. <return-value transfer-ownership="none">
  186. <doc xml:space="preserve">A the #GstColorBalanceType.</doc>
  187. <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
  188. </return-value>
  189. <parameters>
  190. <instance-parameter name="balance" transfer-ownership="none">
  191. <doc xml:space="preserve">The #GstColorBalance implementation</doc>
  192. <type name="ColorBalance" c:type="GstColorBalance*"/>
  193. </instance-parameter>
  194. </parameters>
  195. </method>
  196. <method name="get_value" c:identifier="gst_color_balance_get_value">
  197. <doc xml:space="preserve">Retrieve the current value of the indicated channel, between min_value
  198. and max_value.
  199. See Also: The #GstColorBalanceChannel.min_value and
  200. #GstColorBalanceChannel.max_value members of the
  201. #GstColorBalanceChannel object.</doc>
  202. <return-value transfer-ownership="none">
  203. <doc xml:space="preserve">The current value of the channel.</doc>
  204. <type name="gint" c:type="gint"/>
  205. </return-value>
  206. <parameters>
  207. <instance-parameter name="balance" transfer-ownership="none">
  208. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  209. <type name="ColorBalance" c:type="GstColorBalance*"/>
  210. </instance-parameter>
  211. <parameter name="channel" transfer-ownership="none">
  212. <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
  213. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  214. </parameter>
  215. </parameters>
  216. </method>
  217. <method name="list_channels"
  218. c:identifier="gst_color_balance_list_channels">
  219. <doc xml:space="preserve">Retrieve a list of the available channels.</doc>
  220. <return-value transfer-ownership="none">
  221. <doc xml:space="preserve">A
  222. GList containing pointers to #GstColorBalanceChannel
  223. objects. The list is owned by the #GstColorBalance
  224. instance and must not be freed.</doc>
  225. <type name="GLib.List" c:type="const GList*">
  226. <type name="ColorBalanceChannel"/>
  227. </type>
  228. </return-value>
  229. <parameters>
  230. <instance-parameter name="balance" transfer-ownership="none">
  231. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  232. <type name="ColorBalance" c:type="GstColorBalance*"/>
  233. </instance-parameter>
  234. </parameters>
  235. </method>
  236. <method name="set_value" c:identifier="gst_color_balance_set_value">
  237. <doc xml:space="preserve">Sets the current value of the channel to the passed value, which must
  238. be between min_value and max_value.
  239. See Also: The #GstColorBalanceChannel.min_value and
  240. #GstColorBalanceChannel.max_value members of the
  241. #GstColorBalanceChannel object.</doc>
  242. <return-value transfer-ownership="none">
  243. <type name="none" c:type="void"/>
  244. </return-value>
  245. <parameters>
  246. <instance-parameter name="balance" transfer-ownership="none">
  247. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  248. <type name="ColorBalance" c:type="GstColorBalance*"/>
  249. </instance-parameter>
  250. <parameter name="channel" transfer-ownership="none">
  251. <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
  252. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  253. </parameter>
  254. <parameter name="value" transfer-ownership="none">
  255. <doc xml:space="preserve">The new value for the channel.</doc>
  256. <type name="gint" c:type="gint"/>
  257. </parameter>
  258. </parameters>
  259. </method>
  260. <method name="value_changed"
  261. c:identifier="gst_color_balance_value_changed">
  262. <doc xml:space="preserve">A helper function called by implementations of the GstColorBalance
  263. interface. It fires the #GstColorBalance::value-changed signal on the
  264. instance, and the #GstColorBalanceChannel::value-changed signal on the
  265. channel object.</doc>
  266. <return-value transfer-ownership="none">
  267. <type name="none" c:type="void"/>
  268. </return-value>
  269. <parameters>
  270. <instance-parameter name="balance" transfer-ownership="none">
  271. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  272. <type name="ColorBalance" c:type="GstColorBalance*"/>
  273. </instance-parameter>
  274. <parameter name="channel" transfer-ownership="none">
  275. <doc xml:space="preserve">A #GstColorBalanceChannel whose value has changed</doc>
  276. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  277. </parameter>
  278. <parameter name="value" transfer-ownership="none">
  279. <doc xml:space="preserve">The new value of the channel</doc>
  280. <type name="gint" c:type="gint"/>
  281. </parameter>
  282. </parameters>
  283. </method>
  284. <glib:signal name="value-changed" when="last">
  285. <doc xml:space="preserve">Fired when the value of the indicated channel has changed.</doc>
  286. <return-value transfer-ownership="none">
  287. <type name="none" c:type="void"/>
  288. </return-value>
  289. <parameters>
  290. <parameter name="channel" transfer-ownership="none">
  291. <doc xml:space="preserve">The #GstColorBalanceChannel</doc>
  292. <type name="ColorBalanceChannel"/>
  293. </parameter>
  294. <parameter name="value" transfer-ownership="none">
  295. <doc xml:space="preserve">The new value</doc>
  296. <type name="gint" c:type="gint"/>
  297. </parameter>
  298. </parameters>
  299. </glib:signal>
  300. </interface>
  301. <class name="ColorBalanceChannel"
  302. c:symbol-prefix="color_balance_channel"
  303. c:type="GstColorBalanceChannel"
  304. parent="GObject.Object"
  305. glib:type-name="GstColorBalanceChannel"
  306. glib:get-type="gst_color_balance_channel_get_type"
  307. glib:type-struct="ColorBalanceChannelClass">
  308. <doc xml:space="preserve">&lt;refsect2&gt;&lt;para&gt;The #GstColorBalanceChannel object represents a parameter
  309. for modifying the color balance implemented by an element providing the
  310. #GstColorBalance interface. For example, Hue or Saturation.
  311. &lt;/para&gt;&lt;/refsect2&gt;</doc>
  312. <virtual-method name="value_changed">
  313. <return-value transfer-ownership="none">
  314. <type name="none" c:type="void"/>
  315. </return-value>
  316. <parameters>
  317. <instance-parameter name="channel" transfer-ownership="none">
  318. <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
  319. </instance-parameter>
  320. <parameter name="value" transfer-ownership="none">
  321. <type name="gint" c:type="gint"/>
  322. </parameter>
  323. </parameters>
  324. </virtual-method>
  325. <field name="parent">
  326. <type name="GObject.Object" c:type="GObject"/>
  327. </field>
  328. <field name="label">
  329. <doc xml:space="preserve">A string containing a descriptive name for this channel</doc>
  330. <type name="utf8" c:type="gchar*"/>
  331. </field>
  332. <field name="min_value">
  333. <doc xml:space="preserve">The minimum valid value for this channel.</doc>
  334. <type name="gint" c:type="gint"/>
  335. </field>
  336. <field name="max_value">
  337. <doc xml:space="preserve">The maximum valid value for this channel.</doc>
  338. <type name="gint" c:type="gint"/>
  339. </field>
  340. <field name="_gst_reserved" readable="0" private="1">
  341. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  342. <type name="gpointer" c:type="gpointer"/>
  343. </array>
  344. </field>
  345. <glib:signal name="value-changed" when="last">
  346. <doc xml:space="preserve">Fired when the value of the indicated channel has changed.</doc>
  347. <return-value transfer-ownership="none">
  348. <type name="none" c:type="void"/>
  349. </return-value>
  350. <parameters>
  351. <parameter name="value" transfer-ownership="none">
  352. <doc xml:space="preserve">The new value</doc>
  353. <type name="gint" c:type="gint"/>
  354. </parameter>
  355. </parameters>
  356. </glib:signal>
  357. </class>
  358. <record name="ColorBalanceChannelClass"
  359. c:type="GstColorBalanceChannelClass"
  360. glib:is-gtype-struct-for="ColorBalanceChannel">
  361. <doc xml:space="preserve">Color-balance channel class.</doc>
  362. <field name="parent">
  363. <doc xml:space="preserve">the parent class</doc>
  364. <type name="GObject.ObjectClass" c:type="GObjectClass"/>
  365. </field>
  366. <field name="value_changed">
  367. <callback name="value_changed">
  368. <return-value transfer-ownership="none">
  369. <type name="none" c:type="void"/>
  370. </return-value>
  371. <parameters>
  372. <parameter name="channel" transfer-ownership="none">
  373. <type name="ColorBalanceChannel"
  374. c:type="GstColorBalanceChannel*"/>
  375. </parameter>
  376. <parameter name="value" transfer-ownership="none">
  377. <type name="gint" c:type="gint"/>
  378. </parameter>
  379. </parameters>
  380. </callback>
  381. </field>
  382. <field name="_gst_reserved" readable="0" private="1">
  383. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  384. <type name="gpointer" c:type="gpointer"/>
  385. </array>
  386. </field>
  387. </record>
  388. <record name="ColorBalanceInterface"
  389. c:type="GstColorBalanceInterface"
  390. glib:is-gtype-struct-for="ColorBalance">
  391. <doc xml:space="preserve">Color-balance interface.</doc>
  392. <field name="iface">
  393. <doc xml:space="preserve">the parent interface</doc>
  394. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  395. </field>
  396. <field name="list_channels">
  397. <callback name="list_channels">
  398. <return-value transfer-ownership="none">
  399. <doc xml:space="preserve">A
  400. GList containing pointers to #GstColorBalanceChannel
  401. objects. The list is owned by the #GstColorBalance
  402. instance and must not be freed.</doc>
  403. <type name="GLib.List" c:type="const GList*">
  404. <type name="ColorBalanceChannel"/>
  405. </type>
  406. </return-value>
  407. <parameters>
  408. <parameter name="balance" transfer-ownership="none">
  409. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  410. <type name="ColorBalance" c:type="GstColorBalance*"/>
  411. </parameter>
  412. </parameters>
  413. </callback>
  414. </field>
  415. <field name="set_value">
  416. <callback name="set_value">
  417. <return-value transfer-ownership="none">
  418. <type name="none" c:type="void"/>
  419. </return-value>
  420. <parameters>
  421. <parameter name="balance" transfer-ownership="none">
  422. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  423. <type name="ColorBalance" c:type="GstColorBalance*"/>
  424. </parameter>
  425. <parameter name="channel" transfer-ownership="none">
  426. <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
  427. <type name="ColorBalanceChannel"
  428. c:type="GstColorBalanceChannel*"/>
  429. </parameter>
  430. <parameter name="value" transfer-ownership="none">
  431. <doc xml:space="preserve">The new value for the channel.</doc>
  432. <type name="gint" c:type="gint"/>
  433. </parameter>
  434. </parameters>
  435. </callback>
  436. </field>
  437. <field name="get_value">
  438. <callback name="get_value">
  439. <return-value transfer-ownership="none">
  440. <doc xml:space="preserve">The current value of the channel.</doc>
  441. <type name="gint" c:type="gint"/>
  442. </return-value>
  443. <parameters>
  444. <parameter name="balance" transfer-ownership="none">
  445. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  446. <type name="ColorBalance" c:type="GstColorBalance*"/>
  447. </parameter>
  448. <parameter name="channel" transfer-ownership="none">
  449. <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
  450. <type name="ColorBalanceChannel"
  451. c:type="GstColorBalanceChannel*"/>
  452. </parameter>
  453. </parameters>
  454. </callback>
  455. </field>
  456. <field name="get_balance_type">
  457. <callback name="get_balance_type">
  458. <return-value transfer-ownership="none">
  459. <doc xml:space="preserve">A the #GstColorBalanceType.</doc>
  460. <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
  461. </return-value>
  462. <parameters>
  463. <parameter name="balance" transfer-ownership="none">
  464. <doc xml:space="preserve">The #GstColorBalance implementation</doc>
  465. <type name="ColorBalance" c:type="GstColorBalance*"/>
  466. </parameter>
  467. </parameters>
  468. </callback>
  469. </field>
  470. <field name="value_changed">
  471. <callback name="value_changed">
  472. <return-value transfer-ownership="none">
  473. <type name="none" c:type="void"/>
  474. </return-value>
  475. <parameters>
  476. <parameter name="balance" transfer-ownership="none">
  477. <doc xml:space="preserve">A #GstColorBalance instance</doc>
  478. <type name="ColorBalance" c:type="GstColorBalance*"/>
  479. </parameter>
  480. <parameter name="channel" transfer-ownership="none">
  481. <doc xml:space="preserve">A #GstColorBalanceChannel whose value has changed</doc>
  482. <type name="ColorBalanceChannel"
  483. c:type="GstColorBalanceChannel*"/>
  484. </parameter>
  485. <parameter name="value" transfer-ownership="none">
  486. <doc xml:space="preserve">The new value of the channel</doc>
  487. <type name="gint" c:type="gint"/>
  488. </parameter>
  489. </parameters>
  490. </callback>
  491. </field>
  492. <field name="_gst_reserved" readable="0" private="1">
  493. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  494. <type name="gpointer" c:type="gpointer"/>
  495. </array>
  496. </field>
  497. </record>
  498. <enumeration name="ColorBalanceType"
  499. glib:type-name="GstColorBalanceType"
  500. glib:get-type="gst_color_balance_type_get_type"
  501. c:type="GstColorBalanceType">
  502. <doc xml:space="preserve">An enumeration indicating whether an element implements color balancing
  503. operations in software or in dedicated hardware. In general, dedicated
  504. hardware implementations (such as those provided by xvimagesink) are
  505. preferred.</doc>
  506. <member name="hardware"
  507. value="0"
  508. c:identifier="GST_COLOR_BALANCE_HARDWARE"
  509. glib:nick="hardware">
  510. <doc xml:space="preserve">Color balance is implemented with dedicated
  511. hardware.</doc>
  512. </member>
  513. <member name="software"
  514. value="1"
  515. c:identifier="GST_COLOR_BALANCE_SOFTWARE"
  516. glib:nick="software">
  517. <doc xml:space="preserve">Color balance is implemented via software
  518. processing.</doc>
  519. </member>
  520. </enumeration>
  521. <constant name="META_TAG_VIDEO_COLORSPACE_STR"
  522. value="colorspace"
  523. c:type="GST_META_TAG_VIDEO_COLORSPACE_STR"
  524. version="1.2">
  525. <doc xml:space="preserve">This metadata stays relevant as long as video colorspace is unchanged.</doc>
  526. <type name="utf8" c:type="gchar*"/>
  527. </constant>
  528. <constant name="META_TAG_VIDEO_ORIENTATION_STR"
  529. value="orientation"
  530. c:type="GST_META_TAG_VIDEO_ORIENTATION_STR"
  531. version="1.2">
  532. <doc xml:space="preserve">This metadata stays relevant as long as video orientation is unchanged.</doc>
  533. <type name="utf8" c:type="gchar*"/>
  534. </constant>
  535. <constant name="META_TAG_VIDEO_SIZE_STR"
  536. value="size"
  537. c:type="GST_META_TAG_VIDEO_SIZE_STR"
  538. version="1.2">
  539. <doc xml:space="preserve">This metadata stays relevant as long as video size is unchanged.</doc>
  540. <type name="utf8" c:type="gchar*"/>
  541. </constant>
  542. <constant name="META_TAG_VIDEO_STR"
  543. value="video"
  544. c:type="GST_META_TAG_VIDEO_STR"
  545. version="1.2">
  546. <doc xml:space="preserve">This metadata is relevant for video streams.</doc>
  547. <type name="utf8" c:type="gchar*"/>
  548. </constant>
  549. <interface name="Navigation"
  550. c:symbol-prefix="navigation"
  551. c:type="GstNavigation"
  552. glib:type-name="GstNavigation"
  553. glib:get-type="gst_navigation_get_type"
  554. glib:type-struct="NavigationInterface">
  555. <doc xml:space="preserve">The Navigation interface is used for creating and injecting navigation related
  556. events such as mouse button presses, cursor motion and key presses. The associated
  557. library also provides methods for parsing received events, and for sending and
  558. receiving navigation related bus events. One main usecase is DVD menu navigation.
  559. The main parts of the API are:
  560. &lt;itemizedlist&gt;
  561. &lt;listitem&gt;
  562. &lt;para&gt;
  563. The GstNavigation interface, implemented by elements which provide an application
  564. with the ability to create and inject navigation events into the pipeline.
  565. &lt;/para&gt;
  566. &lt;/listitem&gt;
  567. &lt;listitem&gt;
  568. &lt;para&gt;
  569. GstNavigation event handling API. GstNavigation events are created in response to
  570. calls on a GstNavigation interface implementation, and sent in the pipeline. Upstream
  571. elements can use the navigation event API functions to parse the contents of received
  572. messages.
  573. &lt;/para&gt;
  574. &lt;/listitem&gt;
  575. &lt;listitem&gt;
  576. &lt;para&gt;
  577. GstNavigation message handling API. GstNavigation messages may be sent on the message
  578. bus to inform applications of navigation related changes in the pipeline, such as the
  579. mouse moving over a clickable region, or the set of available angles changing.
  580. &lt;/para&gt;&lt;para&gt;
  581. The GstNavigation message functions provide functions for creating and parsing
  582. custom bus messages for signaling GstNavigation changes.
  583. &lt;/para&gt;
  584. &lt;/listitem&gt;
  585. &lt;/itemizedlist&gt;</doc>
  586. <function name="event_get_type"
  587. c:identifier="gst_navigation_event_get_type">
  588. <doc xml:space="preserve">Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
  589. #GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event.</doc>
  590. <return-value transfer-ownership="none">
  591. <type name="NavigationEventType" c:type="GstNavigationEventType"/>
  592. </return-value>
  593. <parameters>
  594. <parameter name="event" transfer-ownership="none">
  595. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  596. <type name="Gst.Event" c:type="GstEvent*"/>
  597. </parameter>
  598. </parameters>
  599. </function>
  600. <function name="event_parse_command"
  601. c:identifier="gst_navigation_event_parse_command">
  602. <doc xml:space="preserve">Inspect a #GstNavigation command event and retrieve the enum value of the
  603. associated command.</doc>
  604. <return-value transfer-ownership="none">
  605. <doc xml:space="preserve">TRUE if the navigation command could be extracted, otherwise FALSE.</doc>
  606. <type name="gboolean" c:type="gboolean"/>
  607. </return-value>
  608. <parameters>
  609. <parameter name="event" transfer-ownership="none">
  610. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  611. <type name="Gst.Event" c:type="GstEvent*"/>
  612. </parameter>
  613. <parameter name="command" transfer-ownership="none">
  614. <doc xml:space="preserve">Pointer to GstNavigationCommand to receive the type of the
  615. navigation event.</doc>
  616. <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
  617. </parameter>
  618. </parameters>
  619. </function>
  620. <function name="event_parse_key_event"
  621. c:identifier="gst_navigation_event_parse_key_event">
  622. <return-value transfer-ownership="none">
  623. <type name="gboolean" c:type="gboolean"/>
  624. </return-value>
  625. <parameters>
  626. <parameter name="event" transfer-ownership="none">
  627. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  628. <type name="Gst.Event" c:type="GstEvent*"/>
  629. </parameter>
  630. <parameter name="key" transfer-ownership="none">
  631. <doc xml:space="preserve">A pointer to a location to receive the string identifying the key
  632. press. The returned string is owned by the event, and valid only until the
  633. event is unreffed.</doc>
  634. <type name="utf8" c:type="const gchar**"/>
  635. </parameter>
  636. </parameters>
  637. </function>
  638. <function name="event_parse_mouse_button_event"
  639. c:identifier="gst_navigation_event_parse_mouse_button_event">
  640. <doc xml:space="preserve">Retrieve the details of either a #GstNavigation mouse button press event or
  641. a mouse button release event. Determine which type the event is using
  642. gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.</doc>
  643. <return-value transfer-ownership="none">
  644. <doc xml:space="preserve">TRUE if the button number and both coordinates could be extracted,
  645. otherwise FALSE.</doc>
  646. <type name="gboolean" c:type="gboolean"/>
  647. </return-value>
  648. <parameters>
  649. <parameter name="event" transfer-ownership="none">
  650. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  651. <type name="Gst.Event" c:type="GstEvent*"/>
  652. </parameter>
  653. <parameter name="button" transfer-ownership="none">
  654. <doc xml:space="preserve">Pointer to a gint that will receive the button number associated
  655. with the event.</doc>
  656. <type name="gint" c:type="gint*"/>
  657. </parameter>
  658. <parameter name="x" transfer-ownership="none">
  659. <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse button
  660. event.</doc>
  661. <type name="gdouble" c:type="gdouble*"/>
  662. </parameter>
  663. <parameter name="y" transfer-ownership="none">
  664. <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse button
  665. event.</doc>
  666. <type name="gdouble" c:type="gdouble*"/>
  667. </parameter>
  668. </parameters>
  669. </function>
  670. <function name="event_parse_mouse_move_event"
  671. c:identifier="gst_navigation_event_parse_mouse_move_event">
  672. <doc xml:space="preserve">Inspect a #GstNavigation mouse movement event and extract the coordinates
  673. of the event.</doc>
  674. <return-value transfer-ownership="none">
  675. <doc xml:space="preserve">TRUE if both coordinates could be extracted, otherwise FALSE.</doc>
  676. <type name="gboolean" c:type="gboolean"/>
  677. </return-value>
  678. <parameters>
  679. <parameter name="event" transfer-ownership="none">
  680. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  681. <type name="Gst.Event" c:type="GstEvent*"/>
  682. </parameter>
  683. <parameter name="x" transfer-ownership="none">
  684. <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse movement.</doc>
  685. <type name="gdouble" c:type="gdouble*"/>
  686. </parameter>
  687. <parameter name="y" transfer-ownership="none">
  688. <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse movement.</doc>
  689. <type name="gdouble" c:type="gdouble*"/>
  690. </parameter>
  691. </parameters>
  692. </function>
  693. <function name="message_get_type"
  694. c:identifier="gst_navigation_message_get_type">
  695. <doc xml:space="preserve">Check a bus message to see if it is a #GstNavigation event, and return
  696. the #GstNavigationMessageType identifying the type of the message if so.</doc>
  697. <return-value transfer-ownership="none">
  698. <doc xml:space="preserve">The type of the #GstMessage, or
  699. #GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
  700. notification.</doc>
  701. <type name="NavigationMessageType"
  702. c:type="GstNavigationMessageType"/>
  703. </return-value>
  704. <parameters>
  705. <parameter name="message" transfer-ownership="none">
  706. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  707. <type name="Gst.Message" c:type="GstMessage*"/>
  708. </parameter>
  709. </parameters>
  710. </function>
  711. <function name="message_new_angles_changed"
  712. c:identifier="gst_navigation_message_new_angles_changed">
  713. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  714. #GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
  715. that the current angle, or current number of angles available in a
  716. multiangle video has changed.</doc>
  717. <return-value transfer-ownership="full">
  718. <doc xml:space="preserve">The new #GstMessage.</doc>
  719. <type name="Gst.Message" c:type="GstMessage*"/>
  720. </return-value>
  721. <parameters>
  722. <parameter name="src" transfer-ownership="none">
  723. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  724. <type name="Gst.Object" c:type="GstObject*"/>
  725. </parameter>
  726. <parameter name="cur_angle" transfer-ownership="none">
  727. <doc xml:space="preserve">The currently selected angle.</doc>
  728. <type name="guint" c:type="guint"/>
  729. </parameter>
  730. <parameter name="n_angles" transfer-ownership="none">
  731. <doc xml:space="preserve">The number of viewing angles now available.</doc>
  732. <type name="guint" c:type="guint"/>
  733. </parameter>
  734. </parameters>
  735. </function>
  736. <function name="message_new_commands_changed"
  737. c:identifier="gst_navigation_message_new_commands_changed">
  738. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  739. #GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</doc>
  740. <return-value transfer-ownership="full">
  741. <doc xml:space="preserve">The new #GstMessage.</doc>
  742. <type name="Gst.Message" c:type="GstMessage*"/>
  743. </return-value>
  744. <parameters>
  745. <parameter name="src" transfer-ownership="none">
  746. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  747. <type name="Gst.Object" c:type="GstObject*"/>
  748. </parameter>
  749. </parameters>
  750. </function>
  751. <function name="message_new_event"
  752. c:identifier="gst_navigation_message_new_event"
  753. version="1.6">
  754. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  755. #GST_NAVIGATION_MESSAGE_EVENT.</doc>
  756. <return-value transfer-ownership="full">
  757. <doc xml:space="preserve">The new #GstMessage.</doc>
  758. <type name="Gst.Message" c:type="GstMessage*"/>
  759. </return-value>
  760. <parameters>
  761. <parameter name="src" transfer-ownership="none">
  762. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  763. <type name="Gst.Object" c:type="GstObject*"/>
  764. </parameter>
  765. <parameter name="event" transfer-ownership="none">
  766. <doc xml:space="preserve">A navigation #GstEvent</doc>
  767. <type name="Gst.Event" c:type="GstEvent*"/>
  768. </parameter>
  769. </parameters>
  770. </function>
  771. <function name="message_new_mouse_over"
  772. c:identifier="gst_navigation_message_new_mouse_over">
  773. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  774. #GST_NAVIGATION_MESSAGE_MOUSE_OVER.</doc>
  775. <return-value transfer-ownership="full">
  776. <doc xml:space="preserve">The new #GstMessage.</doc>
  777. <type name="Gst.Message" c:type="GstMessage*"/>
  778. </return-value>
  779. <parameters>
  780. <parameter name="src" transfer-ownership="none">
  781. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  782. <type name="Gst.Object" c:type="GstObject*"/>
  783. </parameter>
  784. <parameter name="active" transfer-ownership="none">
  785. <doc xml:space="preserve">%TRUE if the mouse has entered a clickable area of the display.
  786. %FALSE if it over a non-clickable area.</doc>
  787. <type name="gboolean" c:type="gboolean"/>
  788. </parameter>
  789. </parameters>
  790. </function>
  791. <function name="message_parse_angles_changed"
  792. c:identifier="gst_navigation_message_parse_angles_changed">
  793. <doc xml:space="preserve">Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
  794. and extract the @cur_angle and @n_angles parameters.</doc>
  795. <return-value transfer-ownership="none">
  796. <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
  797. <type name="gboolean" c:type="gboolean"/>
  798. </return-value>
  799. <parameters>
  800. <parameter name="message" transfer-ownership="none">
  801. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  802. <type name="Gst.Message" c:type="GstMessage*"/>
  803. </parameter>
  804. <parameter name="cur_angle" transfer-ownership="none">
  805. <doc xml:space="preserve">A pointer to a #guint to receive the new current angle number,
  806. or NULL</doc>
  807. <type name="guint" c:type="guint*"/>
  808. </parameter>
  809. <parameter name="n_angles" transfer-ownership="none">
  810. <doc xml:space="preserve">A pointer to a #guint to receive the new angle count, or NULL.</doc>
  811. <type name="guint" c:type="guint*"/>
  812. </parameter>
  813. </parameters>
  814. </function>
  815. <function name="message_parse_event"
  816. c:identifier="gst_navigation_message_parse_event"
  817. version="1.6">
  818. <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_EVENT
  819. and extract contained #GstEvent. The caller must unref the @event when done
  820. with it.</doc>
  821. <return-value transfer-ownership="none">
  822. <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
  823. <type name="gboolean" c:type="gboolean"/>
  824. </return-value>
  825. <parameters>
  826. <parameter name="message" transfer-ownership="none">
  827. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  828. <type name="Gst.Message" c:type="GstMessage*"/>
  829. </parameter>
  830. <parameter name="event"
  831. direction="out"
  832. caller-allocates="0"
  833. transfer-ownership="full">
  834. <doc xml:space="preserve">a pointer to a #GstEvent to receive the
  835. contained navigation event.</doc>
  836. <type name="Gst.Event" c:type="GstEvent**"/>
  837. </parameter>
  838. </parameters>
  839. </function>
  840. <function name="message_parse_mouse_over"
  841. c:identifier="gst_navigation_message_parse_mouse_over">
  842. <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
  843. and extract the active/inactive flag. If the mouse over event is marked
  844. active, it indicates that the mouse is over a clickable area.</doc>
  845. <return-value transfer-ownership="none">
  846. <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
  847. <type name="gboolean" c:type="gboolean"/>
  848. </return-value>
  849. <parameters>
  850. <parameter name="message" transfer-ownership="none">
  851. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  852. <type name="Gst.Message" c:type="GstMessage*"/>
  853. </parameter>
  854. <parameter name="active" transfer-ownership="none">
  855. <doc xml:space="preserve">A pointer to a gboolean to receive the active/inactive state,
  856. or NULL.</doc>
  857. <type name="gboolean" c:type="gboolean*"/>
  858. </parameter>
  859. </parameters>
  860. </function>
  861. <function name="query_get_type"
  862. c:identifier="gst_navigation_query_get_type">
  863. <doc xml:space="preserve">Inspect a #GstQuery and return the #GstNavigationQueryType associated with
  864. it if it is a #GstNavigation query.</doc>
  865. <return-value transfer-ownership="none">
  866. <doc xml:space="preserve">The #GstNavigationQueryType of the query, or
  867. #GST_NAVIGATION_QUERY_INVALID</doc>
  868. <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
  869. </return-value>
  870. <parameters>
  871. <parameter name="query" transfer-ownership="none">
  872. <doc xml:space="preserve">The query to inspect</doc>
  873. <type name="Gst.Query" c:type="GstQuery*"/>
  874. </parameter>
  875. </parameters>
  876. </function>
  877. <function name="query_new_angles"
  878. c:identifier="gst_navigation_query_new_angles">
  879. <doc xml:space="preserve">Create a new #GstNavigation angles query. When executed, it will
  880. query the pipeline for the set of currently available angles, which may be
  881. greater than one in a multiangle video.</doc>
  882. <return-value transfer-ownership="full">
  883. <doc xml:space="preserve">The new query.</doc>
  884. <type name="Gst.Query" c:type="GstQuery*"/>
  885. </return-value>
  886. </function>
  887. <function name="query_new_commands"
  888. c:identifier="gst_navigation_query_new_commands">
  889. <doc xml:space="preserve">Create a new #GstNavigation commands query. When executed, it will
  890. query the pipeline for the set of currently available commands.</doc>
  891. <return-value transfer-ownership="full">
  892. <doc xml:space="preserve">The new query.</doc>
  893. <type name="Gst.Query" c:type="GstQuery*"/>
  894. </return-value>
  895. </function>
  896. <function name="query_parse_angles"
  897. c:identifier="gst_navigation_query_parse_angles">
  898. <doc xml:space="preserve">Parse the current angle number in the #GstNavigation angles @query into the
  899. #guint pointed to by the @cur_angle variable, and the number of available
  900. angles into the #guint pointed to by the @n_angles variable.</doc>
  901. <return-value transfer-ownership="none">
  902. <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
  903. <type name="gboolean" c:type="gboolean"/>
  904. </return-value>
  905. <parameters>
  906. <parameter name="query" transfer-ownership="none">
  907. <doc xml:space="preserve">a #GstQuery</doc>
  908. <type name="Gst.Query" c:type="GstQuery*"/>
  909. </parameter>
  910. <parameter name="cur_angle" transfer-ownership="none">
  911. <doc xml:space="preserve">Pointer to a #guint into which to store the currently selected
  912. angle value from the query, or NULL</doc>
  913. <type name="guint" c:type="guint*"/>
  914. </parameter>
  915. <parameter name="n_angles" transfer-ownership="none">
  916. <doc xml:space="preserve">Pointer to a #guint into which to store the number of angles
  917. value from the query, or NULL</doc>
  918. <type name="guint" c:type="guint*"/>
  919. </parameter>
  920. </parameters>
  921. </function>
  922. <function name="query_parse_commands_length"
  923. c:identifier="gst_navigation_query_parse_commands_length">
  924. <doc xml:space="preserve">Parse the number of commands in the #GstNavigation commands @query.</doc>
  925. <return-value transfer-ownership="none">
  926. <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
  927. <type name="gboolean" c:type="gboolean"/>
  928. </return-value>
  929. <parameters>
  930. <parameter name="query" transfer-ownership="none">
  931. <doc xml:space="preserve">a #GstQuery</doc>
  932. <type name="Gst.Query" c:type="GstQuery*"/>
  933. </parameter>
  934. <parameter name="n_cmds"
  935. direction="out"
  936. caller-allocates="0"
  937. transfer-ownership="full">
  938. <doc xml:space="preserve">the number of commands in this query.</doc>
  939. <type name="guint" c:type="guint*"/>
  940. </parameter>
  941. </parameters>
  942. </function>
  943. <function name="query_parse_commands_nth"
  944. c:identifier="gst_navigation_query_parse_commands_nth">
  945. <doc xml:space="preserve">Parse the #GstNavigation command query and retrieve the @nth command from
  946. it into @cmd. If the list contains less elements than @nth, @cmd will be
  947. set to #GST_NAVIGATION_COMMAND_INVALID.</doc>
  948. <return-value transfer-ownership="none">
  949. <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
  950. <type name="gboolean" c:type="gboolean"/>
  951. </return-value>
  952. <parameters>
  953. <parameter name="query" transfer-ownership="none">
  954. <doc xml:space="preserve">a #GstQuery</doc>
  955. <type name="Gst.Query" c:type="GstQuery*"/>
  956. </parameter>
  957. <parameter name="nth" transfer-ownership="none">
  958. <doc xml:space="preserve">the nth command to retrieve.</doc>
  959. <type name="guint" c:type="guint"/>
  960. </parameter>
  961. <parameter name="cmd"
  962. direction="out"
  963. caller-allocates="0"
  964. transfer-ownership="full">
  965. <doc xml:space="preserve">a pointer to store the nth command into.</doc>
  966. <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
  967. </parameter>
  968. </parameters>
  969. </function>
  970. <function name="query_set_angles"
  971. c:identifier="gst_navigation_query_set_angles">
  972. <doc xml:space="preserve">Set the #GstNavigation angles query result field in @query.</doc>
  973. <return-value transfer-ownership="none">
  974. <type name="none" c:type="void"/>
  975. </return-value>
  976. <parameters>
  977. <parameter name="query" transfer-ownership="none">
  978. <doc xml:space="preserve">a #GstQuery</doc>
  979. <type name="Gst.Query" c:type="GstQuery*"/>
  980. </parameter>
  981. <parameter name="cur_angle" transfer-ownership="none">
  982. <doc xml:space="preserve">the current viewing angle to set.</doc>
  983. <type name="guint" c:type="guint"/>
  984. </parameter>
  985. <parameter name="n_angles" transfer-ownership="none">
  986. <doc xml:space="preserve">the number of viewing angles to set.</doc>
  987. <type name="guint" c:type="guint"/>
  988. </parameter>
  989. </parameters>
  990. </function>
  991. <function name="query_set_commands"
  992. c:identifier="gst_navigation_query_set_commands"
  993. introspectable="0">
  994. <doc xml:space="preserve">Set the #GstNavigation command query result fields in @query. The number
  995. of commands passed must be equal to @n_commands.</doc>
  996. <return-value transfer-ownership="none">
  997. <type name="none" c:type="void"/>
  998. </return-value>
  999. <parameters>
  1000. <parameter name="query" transfer-ownership="none">
  1001. <doc xml:space="preserve">a #GstQuery</doc>
  1002. <type name="Gst.Query" c:type="GstQuery*"/>
  1003. </parameter>
  1004. <parameter name="n_cmds" transfer-ownership="none">
  1005. <doc xml:space="preserve">the number of commands to set.</doc>
  1006. <type name="gint" c:type="gint"/>
  1007. </parameter>
  1008. <parameter name="..." transfer-ownership="none">
  1009. <doc xml:space="preserve">A list of @GstNavigationCommand values, @n_cmds entries long.</doc>
  1010. <varargs/>
  1011. </parameter>
  1012. </parameters>
  1013. </function>
  1014. <function name="query_set_commandsv"
  1015. c:identifier="gst_navigation_query_set_commandsv">
  1016. <doc xml:space="preserve">Set the #GstNavigation command query result fields in @query. The number
  1017. of commands passed must be equal to @n_commands.</doc>
  1018. <return-value transfer-ownership="none">
  1019. <type name="none" c:type="void"/>
  1020. </return-value>
  1021. <parameters>
  1022. <parameter name="query" transfer-ownership="none">
  1023. <doc xml:space="preserve">a #GstQuery</doc>
  1024. <type name="Gst.Query" c:type="GstQuery*"/>
  1025. </parameter>
  1026. <parameter name="n_cmds" transfer-ownership="none">
  1027. <doc xml:space="preserve">the number of commands to set.</doc>
  1028. <type name="gint" c:type="gint"/>
  1029. </parameter>
  1030. <parameter name="cmds" transfer-ownership="none">
  1031. <doc xml:space="preserve">An array containing @n_cmds @GstNavigationCommand values.</doc>
  1032. <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
  1033. </parameter>
  1034. </parameters>
  1035. </function>
  1036. <virtual-method name="send_event" invoker="send_event">
  1037. <return-value transfer-ownership="none">
  1038. <type name="none" c:type="void"/>
  1039. </return-value>
  1040. <parameters>
  1041. <instance-parameter name="navigation" transfer-ownership="none">
  1042. <type name="Navigation" c:type="GstNavigation*"/>
  1043. </instance-parameter>
  1044. <parameter name="structure" transfer-ownership="none">
  1045. <type name="Gst.Structure" c:type="GstStructure*"/>
  1046. </parameter>
  1047. </parameters>
  1048. </virtual-method>
  1049. <method name="send_command" c:identifier="gst_navigation_send_command">
  1050. <doc xml:space="preserve">Sends the indicated command to the navigation interface.</doc>
  1051. <return-value transfer-ownership="none">
  1052. <type name="none" c:type="void"/>
  1053. </return-value>
  1054. <parameters>
  1055. <instance-parameter name="navigation" transfer-ownership="none">
  1056. <doc xml:space="preserve">The navigation interface instance</doc>
  1057. <type name="Navigation" c:type="GstNavigation*"/>
  1058. </instance-parameter>
  1059. <parameter name="command" transfer-ownership="none">
  1060. <doc xml:space="preserve">The command to issue</doc>
  1061. <type name="NavigationCommand" c:type="GstNavigationCommand"/>
  1062. </parameter>
  1063. </parameters>
  1064. </method>
  1065. <method name="send_event" c:identifier="gst_navigation_send_event">
  1066. <return-value transfer-ownership="none">
  1067. <type name="none" c:type="void"/>
  1068. </return-value>
  1069. <parameters>
  1070. <instance-parameter name="navigation" transfer-ownership="none">
  1071. <type name="Navigation" c:type="GstNavigation*"/>
  1072. </instance-parameter>
  1073. <parameter name="structure" transfer-ownership="none">
  1074. <type name="Gst.Structure" c:type="GstStructure*"/>
  1075. </parameter>
  1076. </parameters>
  1077. </method>
  1078. <method name="send_key_event"
  1079. c:identifier="gst_navigation_send_key_event">
  1080. <return-value transfer-ownership="none">
  1081. <type name="none" c:type="void"/>
  1082. </return-value>
  1083. <parameters>
  1084. <instance-parameter name="navigation" transfer-ownership="none">
  1085. <doc xml:space="preserve">The navigation interface instance</doc>
  1086. <type name="Navigation" c:type="GstNavigation*"/>
  1087. </instance-parameter>
  1088. <parameter name="event" transfer-ownership="none">
  1089. <doc xml:space="preserve">The type of the key event. Recognised values are "key-press" and
  1090. "key-release"</doc>
  1091. <type name="utf8" c:type="const char*"/>
  1092. </parameter>
  1093. <parameter name="key" transfer-ownership="none">
  1094. <doc xml:space="preserve">Character representation of the key. This is typically as produced
  1095. by XKeysymToString.</doc>
  1096. <type name="utf8" c:type="const char*"/>
  1097. </parameter>
  1098. </parameters>
  1099. </method>
  1100. <method name="send_mouse_event"
  1101. c:identifier="gst_navigation_send_mouse_event">
  1102. <doc xml:space="preserve">Sends a mouse event to the navigation interface. Mouse event coordinates
  1103. are sent relative to the display space of the related output area. This is
  1104. usually the size in pixels of the window associated with the element
  1105. implementing the #GstNavigation interface.</doc>
  1106. <return-value transfer-ownership="none">
  1107. <type name="none" c:type="void"/>
  1108. </return-value>
  1109. <parameters>
  1110. <instance-parameter name="navigation" transfer-ownership="none">
  1111. <doc xml:space="preserve">The navigation interface instance</doc>
  1112. <type name="Navigation" c:type="GstNavigation*"/>
  1113. </instance-parameter>
  1114. <parameter name="event" transfer-ownership="none">
  1115. <doc xml:space="preserve">The type of mouse event, as a text string. Recognised values are
  1116. "mouse-button-press", "mouse-button-release" and "mouse-move".</doc>
  1117. <type name="utf8" c:type="const char*"/>
  1118. </parameter>
  1119. <parameter name="button" transfer-ownership="none">
  1120. <doc xml:space="preserve">The button number of the button being pressed or released. Pass 0
  1121. for mouse-move events.</doc>
  1122. <type name="gint" c:type="int"/>
  1123. </parameter>
  1124. <parameter name="x" transfer-ownership="none">
  1125. <doc xml:space="preserve">The x coordinate of the mouse event.</doc>
  1126. <type name="gdouble" c:type="double"/>
  1127. </parameter>
  1128. <parameter name="y" transfer-ownership="none">
  1129. <doc xml:space="preserve">The y coordinate of the mouse event.</doc>
  1130. <type name="gdouble" c:type="double"/>
  1131. </parameter>
  1132. </parameters>
  1133. </method>
  1134. </interface>
  1135. <enumeration name="NavigationCommand"
  1136. glib:type-name="GstNavigationCommand"
  1137. glib:get-type="gst_navigation_command_get_type"
  1138. c:type="GstNavigationCommand">
  1139. <doc xml:space="preserve">A set of commands that may be issued to an element providing the
  1140. #GstNavigation interface. The available commands can be queried via
  1141. the gst_navigation_query_new_commands() query.
  1142. For convenience in handling DVD navigation, the MENU commands are aliased as:
  1143. GST_NAVIGATION_COMMAND_DVD_MENU = @GST_NAVIGATION_COMMAND_MENU1
  1144. GST_NAVIGATION_COMMAND_DVD_TITLE_MENU = @GST_NAVIGATION_COMMAND_MENU2
  1145. GST_NAVIGATION_COMMAND_DVD_ROOT_MENU = @GST_NAVIGATION_COMMAND_MENU3
  1146. GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4
  1147. GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU = @GST_NAVIGATION_COMMAND_MENU5
  1148. GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU = @GST_NAVIGATION_COMMAND_MENU6
  1149. GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU = @GST_NAVIGATION_COMMAND_MENU7</doc>
  1150. <member name="invalid"
  1151. value="0"
  1152. c:identifier="GST_NAVIGATION_COMMAND_INVALID"
  1153. glib:nick="invalid">
  1154. <doc xml:space="preserve">An invalid command entry</doc>
  1155. </member>
  1156. <member name="menu1"
  1157. value="1"
  1158. c:identifier="GST_NAVIGATION_COMMAND_MENU1"
  1159. glib:nick="menu1">
  1160. <doc xml:space="preserve">Execute navigation menu command 1. For DVD,
  1161. this enters the DVD root menu, or exits back to the title from the menu.</doc>
  1162. </member>
  1163. <member name="menu2"
  1164. value="2"
  1165. c:identifier="GST_NAVIGATION_COMMAND_MENU2"
  1166. glib:nick="menu2">
  1167. <doc xml:space="preserve">Execute navigation menu command 2. For DVD,
  1168. this jumps to the DVD title menu.</doc>
  1169. </member>
  1170. <member name="menu3"
  1171. value="3"
  1172. c:identifier="GST_NAVIGATION_COMMAND_MENU3"
  1173. glib:nick="menu3">
  1174. <doc xml:space="preserve">Execute navigation menu command 3. For DVD,
  1175. this jumps into the DVD root menu.</doc>
  1176. </member>
  1177. <member name="menu4"
  1178. value="4"
  1179. c:identifier="GST_NAVIGATION_COMMAND_MENU4"
  1180. glib:nick="menu4">
  1181. <doc xml:space="preserve">Execute navigation menu command 4. For DVD,
  1182. this jumps to the Subpicture menu.</doc>
  1183. </member>
  1184. <member name="menu5"
  1185. value="5"
  1186. c:identifier="GST_NAVIGATION_COMMAND_MENU5"
  1187. glib:nick="menu5">
  1188. <doc xml:space="preserve">Execute navigation menu command 5. For DVD,
  1189. the jumps to the audio menu.</doc>
  1190. </member>
  1191. <member name="menu6"
  1192. value="6"
  1193. c:identifier="GST_NAVIGATION_COMMAND_MENU6"
  1194. glib:nick="menu6">
  1195. <doc xml:space="preserve">Execute navigation menu command 6. For DVD,
  1196. this jumps to the angles menu.</doc>
  1197. </member>
  1198. <member name="menu7"
  1199. value="7"
  1200. c:identifier="GST_NAVIGATION_COMMAND_MENU7"
  1201. glib:nick="menu7">
  1202. <doc xml:space="preserve">Execute navigation menu command 7. For DVD,
  1203. this jumps to the chapter menu.</doc>
  1204. </member>
  1205. <member name="left"
  1206. value="20"
  1207. c:identifier="GST_NAVIGATION_COMMAND_LEFT"
  1208. glib:nick="left">
  1209. <doc xml:space="preserve">Select the next button to the left in a menu,
  1210. if such a button exists.</doc>
  1211. </member>
  1212. <member name="right"
  1213. value="21"
  1214. c:identifier="GST_NAVIGATION_COMMAND_RIGHT"
  1215. glib:nick="right">
  1216. <doc xml:space="preserve">Select the next button to the right in a menu,
  1217. if such a button exists.</doc>
  1218. </member>
  1219. <member name="up"
  1220. value="22"
  1221. c:identifier="GST_NAVIGATION_COMMAND_UP"
  1222. glib:nick="up">
  1223. <doc xml:space="preserve">Select the button above the current one in a
  1224. menu, if such a button exists.</doc>
  1225. </member>
  1226. <member name="down"
  1227. value="23"
  1228. c:identifier="GST_NAVIGATION_COMMAND_DOWN"
  1229. glib:nick="down">
  1230. <doc xml:space="preserve">Select the button below the current one in a
  1231. menu, if such a button exists.</doc>
  1232. </member>
  1233. <member name="activate"
  1234. value="24"
  1235. c:identifier="GST_NAVIGATION_COMMAND_ACTIVATE"
  1236. glib:nick="activate">
  1237. <doc xml:space="preserve">Activate (click) the currently selected
  1238. button in a menu, if such a button exists.</doc>
  1239. </member>
  1240. <member name="prev_angle"
  1241. value="30"
  1242. c:identifier="GST_NAVIGATION_COMMAND_PREV_ANGLE"
  1243. glib:nick="prev-angle">
  1244. <doc xml:space="preserve">Switch to the previous angle in a
  1245. multiangle feature.</doc>
  1246. </member>
  1247. <member name="next_angle"
  1248. value="31"
  1249. c:identifier="GST_NAVIGATION_COMMAND_NEXT_ANGLE"
  1250. glib:nick="next-angle">
  1251. <doc xml:space="preserve">Switch to the next angle in a multiangle
  1252. feature.</doc>
  1253. </member>
  1254. </enumeration>
  1255. <enumeration name="NavigationEventType"
  1256. glib:type-name="GstNavigationEventType"
  1257. glib:get-type="gst_navigation_event_type_get_type"
  1258. c:type="GstNavigationEventType">
  1259. <doc xml:space="preserve">Enum values for the various events that an element implementing the
  1260. GstNavigation interface might send up the pipeline.</doc>
  1261. <member name="invalid"
  1262. value="0"
  1263. c:identifier="GST_NAVIGATION_EVENT_INVALID"
  1264. glib:nick="invalid">
  1265. <doc xml:space="preserve">Returned from
  1266. gst_navigation_event_get_type() when the passed event is not a navigation event.</doc>
  1267. </member>
  1268. <member name="key_press"
  1269. value="1"
  1270. c:identifier="GST_NAVIGATION_EVENT_KEY_PRESS"
  1271. glib:nick="key-press">
  1272. <doc xml:space="preserve">A key press event. Use
  1273. gst_navigation_event_parse_key_event() to extract the details from the event.</doc>
  1274. </member>
  1275. <member name="key_release"
  1276. value="2"
  1277. c:identifier="GST_NAVIGATION_EVENT_KEY_RELEASE"
  1278. glib:nick="key-release">
  1279. <doc xml:space="preserve">A key release event. Use
  1280. gst_navigation_event_parse_key_event() to extract the details from the event.</doc>
  1281. </member>
  1282. <member name="mouse_button_press"
  1283. value="3"
  1284. c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS"
  1285. glib:nick="mouse-button-press">
  1286. <doc xml:space="preserve">A mouse button press event. Use
  1287. gst_navigation_event_parse_mouse_button_event() to extract the details from the
  1288. event.</doc>
  1289. </member>
  1290. <member name="mouse_button_release"
  1291. value="4"
  1292. c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE"
  1293. glib:nick="mouse-button-release">
  1294. <doc xml:space="preserve">A mouse button release event. Use
  1295. gst_navigation_event_parse_mouse_button_event() to extract the details from the
  1296. event.</doc>
  1297. </member>
  1298. <member name="mouse_move"
  1299. value="5"
  1300. c:identifier="GST_NAVIGATION_EVENT_MOUSE_MOVE"
  1301. glib:nick="mouse-move">
  1302. <doc xml:space="preserve">A mouse movement event. Use
  1303. gst_navigation_event_parse_mouse_move_event() to extract the details from the
  1304. event.</doc>
  1305. </member>
  1306. <member name="command"
  1307. value="6"
  1308. c:identifier="GST_NAVIGATION_EVENT_COMMAND"
  1309. glib:nick="command">
  1310. <doc xml:space="preserve">A navigation command event. Use
  1311. gst_navigation_event_parse_command() to extract the details from the event.</doc>
  1312. </member>
  1313. </enumeration>
  1314. <record name="NavigationInterface"
  1315. c:type="GstNavigationInterface"
  1316. glib:is-gtype-struct-for="Navigation">
  1317. <doc xml:space="preserve">Navigation interface.</doc>
  1318. <field name="iface">
  1319. <doc xml:space="preserve">the parent interface</doc>
  1320. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  1321. </field>
  1322. <field name="send_event">
  1323. <callback name="send_event">
  1324. <return-value transfer-ownership="none">
  1325. <type name="none" c:type="void"/>
  1326. </return-value>
  1327. <parameters>
  1328. <parameter name="navigation" transfer-ownership="none">
  1329. <type name="Navigation" c:type="GstNavigation*"/>
  1330. </parameter>
  1331. <parameter name="structure" transfer-ownership="none">
  1332. <type name="Gst.Structure" c:type="GstStructure*"/>
  1333. </parameter>
  1334. </parameters>
  1335. </callback>
  1336. </field>
  1337. </record>
  1338. <enumeration name="NavigationMessageType"
  1339. glib:type-name="GstNavigationMessageType"
  1340. glib:get-type="gst_navigation_message_type_get_type"
  1341. c:type="GstNavigationMessageType">
  1342. <doc xml:space="preserve">A set of notifications that may be received on the bus when navigation
  1343. related status changes.</doc>
  1344. <member name="invalid"
  1345. value="0"
  1346. c:identifier="GST_NAVIGATION_MESSAGE_INVALID"
  1347. glib:nick="invalid">
  1348. <doc xml:space="preserve">Returned from
  1349. gst_navigation_message_get_type() when the passed message is not a
  1350. navigation message.</doc>
  1351. </member>
  1352. <member name="mouse_over"
  1353. value="1"
  1354. c:identifier="GST_NAVIGATION_MESSAGE_MOUSE_OVER"
  1355. glib:nick="mouse-over">
  1356. <doc xml:space="preserve">Sent when the mouse moves over or leaves a
  1357. clickable region of the output, such as a DVD menu button.</doc>
  1358. </member>
  1359. <member name="commands_changed"
  1360. value="2"
  1361. c:identifier="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
  1362. glib:nick="commands-changed">
  1363. <doc xml:space="preserve">Sent when the set of available commands
  1364. changes and should re-queried by interested applications.</doc>
  1365. </member>
  1366. <member name="angles_changed"
  1367. value="3"
  1368. c:identifier="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED"
  1369. glib:nick="angles-changed">
  1370. <doc xml:space="preserve">Sent when display angles in a multi-angle
  1371. feature (such as a multiangle DVD) change - either angles have appeared or
  1372. disappeared.</doc>
  1373. </member>
  1374. <member name="event"
  1375. value="4"
  1376. c:identifier="GST_NAVIGATION_MESSAGE_EVENT"
  1377. glib:nick="event">
  1378. <doc xml:space="preserve">Sent when a navigation event was not handled
  1379. by any element in the pipeline (Since 1.6)</doc>
  1380. </member>
  1381. </enumeration>
  1382. <enumeration name="NavigationQueryType"
  1383. glib:type-name="GstNavigationQueryType"
  1384. glib:get-type="gst_navigation_query_type_get_type"
  1385. c:type="GstNavigationQueryType">
  1386. <doc xml:space="preserve">Tyoes of navigation interface queries.</doc>
  1387. <member name="invalid"
  1388. value="0"
  1389. c:identifier="GST_NAVIGATION_QUERY_INVALID"
  1390. glib:nick="invalid">
  1391. <doc xml:space="preserve">invalid query</doc>
  1392. </member>
  1393. <member name="commands"
  1394. value="1"
  1395. c:identifier="GST_NAVIGATION_QUERY_COMMANDS"
  1396. glib:nick="commands">
  1397. <doc xml:space="preserve">command query</doc>
  1398. </member>
  1399. <member name="angles"
  1400. value="2"
  1401. c:identifier="GST_NAVIGATION_QUERY_ANGLES"
  1402. glib:nick="angles">
  1403. <doc xml:space="preserve">viewing angle query</doc>
  1404. </member>
  1405. </enumeration>
  1406. <constant name="VIDEO_COLORIMETRY_BT2020"
  1407. value="bt2020"
  1408. c:type="GST_VIDEO_COLORIMETRY_BT2020">
  1409. <type name="utf8" c:type="gchar*"/>
  1410. </constant>
  1411. <constant name="VIDEO_COLORIMETRY_BT601"
  1412. value="bt601"
  1413. c:type="GST_VIDEO_COLORIMETRY_BT601">
  1414. <type name="utf8" c:type="gchar*"/>
  1415. </constant>
  1416. <constant name="VIDEO_COLORIMETRY_BT709"
  1417. value="bt709"
  1418. c:type="GST_VIDEO_COLORIMETRY_BT709">
  1419. <type name="utf8" c:type="gchar*"/>
  1420. </constant>
  1421. <constant name="VIDEO_COLORIMETRY_SMPTE240M"
  1422. value="smpte240m"
  1423. c:type="GST_VIDEO_COLORIMETRY_SMPTE240M">
  1424. <type name="utf8" c:type="gchar*"/>
  1425. </constant>
  1426. <constant name="VIDEO_COLORIMETRY_SRGB"
  1427. value="sRGB"
  1428. c:type="GST_VIDEO_COLORIMETRY_SRGB">
  1429. <type name="utf8" c:type="gchar*"/>
  1430. </constant>
  1431. <constant name="VIDEO_COMP_A" value="3" c:type="GST_VIDEO_COMP_A">
  1432. <type name="gint" c:type="gint"/>
  1433. </constant>
  1434. <constant name="VIDEO_COMP_B" value="2" c:type="GST_VIDEO_COMP_B">
  1435. <type name="gint" c:type="gint"/>
  1436. </constant>
  1437. <constant name="VIDEO_COMP_G" value="1" c:type="GST_VIDEO_COMP_G">
  1438. <type name="gint" c:type="gint"/>
  1439. </constant>
  1440. <constant name="VIDEO_COMP_INDEX" value="0" c:type="GST_VIDEO_COMP_INDEX">
  1441. <type name="gint" c:type="gint"/>
  1442. </constant>
  1443. <constant name="VIDEO_COMP_PALETTE"
  1444. value="1"
  1445. c:type="GST_VIDEO_COMP_PALETTE">
  1446. <type name="gint" c:type="gint"/>
  1447. </constant>
  1448. <constant name="VIDEO_COMP_R" value="0" c:type="GST_VIDEO_COMP_R">
  1449. <type name="gint" c:type="gint"/>
  1450. </constant>
  1451. <constant name="VIDEO_COMP_U" value="1" c:type="GST_VIDEO_COMP_U">
  1452. <type name="gint" c:type="gint"/>
  1453. </constant>
  1454. <constant name="VIDEO_COMP_V" value="2" c:type="GST_VIDEO_COMP_V">
  1455. <type name="gint" c:type="gint"/>
  1456. </constant>
  1457. <constant name="VIDEO_COMP_Y" value="0" c:type="GST_VIDEO_COMP_Y">
  1458. <type name="gint" c:type="gint"/>
  1459. </constant>
  1460. <constant name="VIDEO_CONVERTER_OPT_ALPHA_MODE"
  1461. value="GstVideoConverter.alpha-mode"
  1462. c:type="GST_VIDEO_CONVERTER_OPT_ALPHA_MODE">
  1463. <doc xml:space="preserve">#GST_TYPE_VIDEO_ALPHA_MODE, the alpha mode to use.
  1464. Default is #GST_VIDEO_ALPHA_MODE_COPY.</doc>
  1465. <type name="utf8" c:type="gchar*"/>
  1466. </constant>
  1467. <constant name="VIDEO_CONVERTER_OPT_ALPHA_VALUE"
  1468. value="GstVideoConverter.alpha-value"
  1469. c:type="GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE">
  1470. <doc xml:space="preserve">#G_TYPE_DOUBLE, the alpha color value to use.
  1471. Default to 1.0</doc>
  1472. <type name="utf8" c:type="gchar*"/>
  1473. </constant>
  1474. <constant name="VIDEO_CONVERTER_OPT_BORDER_ARGB"
  1475. value="GstVideoConverter.border-argb"
  1476. c:type="GST_VIDEO_CONVERTER_OPT_BORDER_ARGB">
  1477. <doc xml:space="preserve">#G_TYPE_UINT, the border color to use if #GST_VIDEO_CONVERTER_OPT_FILL_BORDER
  1478. is set to %TRUE. The color is in ARGB format.
  1479. Default 0xff000000</doc>
  1480. <type name="utf8" c:type="gchar*"/>
  1481. </constant>
  1482. <constant name="VIDEO_CONVERTER_OPT_CHROMA_MODE"
  1483. value="GstVideoConverter.chroma-mode"
  1484. c:type="GST_VIDEO_CONVERTER_OPT_CHROMA_MODE">
  1485. <doc xml:space="preserve">#GST_TYPE_VIDEO_CHROMA_MODE, set the chroma resample mode subsampled
  1486. formats. Default is #GST_VIDEO_CHROMA_MODE_FULL.</doc>
  1487. <type name="utf8" c:type="gchar*"/>
  1488. </constant>
  1489. <constant name="VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD"
  1490. value="GstVideoConverter.chroma-resampler-method"
  1491. c:type="GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD">
  1492. <doc xml:space="preserve">#GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
  1493. chroma resampling. Other options for the resampler can be used, see
  1494. the #GstResampler. Default is #GST_RESAMPLER_METHOD_LINEAR</doc>
  1495. <type name="utf8" c:type="gchar*"/>
  1496. </constant>
  1497. <constant name="VIDEO_CONVERTER_OPT_DEST_HEIGHT"
  1498. value="GstVideoConverter.dest-height"
  1499. c:type="GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT">
  1500. <doc xml:space="preserve">#G_TYPE_INT, height in the destination frame, default destination height</doc>
  1501. <type name="utf8" c:type="gchar*"/>
  1502. </constant>
  1503. <constant name="VIDEO_CONVERTER_OPT_DEST_WIDTH"
  1504. value="GstVideoConverter.dest-width"
  1505. c:type="GST_VIDEO_CONVERTER_OPT_DEST_WIDTH">
  1506. <doc xml:space="preserve">#G_TYPE_INT, width in the destination frame, default destination width</doc>
  1507. <type name="utf8" c:type="gchar*"/>
  1508. </constant>
  1509. <constant name="VIDEO_CONVERTER_OPT_DEST_X"
  1510. value="GstVideoConverter.dest-x"
  1511. c:type="GST_VIDEO_CONVERTER_OPT_DEST_X">
  1512. <doc xml:space="preserve">#G_TYPE_INT, x position in the destination frame, default 0</doc>
  1513. <type name="utf8" c:type="gchar*"/>
  1514. </constant>
  1515. <constant name="VIDEO_CONVERTER_OPT_DEST_Y"
  1516. value="GstVideoConverter.dest-y"
  1517. c:type="GST_VIDEO_CONVERTER_OPT_DEST_Y">
  1518. <doc xml:space="preserve">#G_TYPE_INT, y position in the destination frame, default 0</doc>
  1519. <type name="utf8" c:type="gchar*"/>
  1520. </constant>
  1521. <constant name="VIDEO_CONVERTER_OPT_DITHER_METHOD"
  1522. value="GstVideoConverter.dither-method"
  1523. c:type="GST_VIDEO_CONVERTER_OPT_DITHER_METHOD">
  1524. <doc xml:space="preserve">#GST_TYPE_VIDEO_DITHER_METHOD, The dither method to use when
  1525. changing bit depth.
  1526. Default is #GST_VIDEO_DITHER_BAYER.</doc>
  1527. <type name="utf8" c:type="gchar*"/>
  1528. </constant>
  1529. <constant name="VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION"
  1530. value="GstVideoConverter.dither-quantization"
  1531. c:type="GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION">
  1532. <doc xml:space="preserve">#G_TYPE_UINT, The quantization amount to dither to. Components will be
  1533. quantized to multiples of this value.
  1534. Default is 1</doc>
  1535. <type name="utf8" c:type="gchar*"/>
  1536. </constant>
  1537. <constant name="VIDEO_CONVERTER_OPT_FILL_BORDER"
  1538. value="GstVideoConverter.fill-border"
  1539. c:type="GST_VIDEO_CONVERTER_OPT_FILL_BORDER">
  1540. <doc xml:space="preserve">#G_TYPE_BOOLEAN, if the destination rectangle does not fill the complete
  1541. destination image, render a border with
  1542. #GST_VIDEO_CONVERTER_OPT_BORDER_ARGB. Otherwise the unusded pixels in the
  1543. destination are untouched. Default %TRUE.</doc>
  1544. <type name="utf8" c:type="gchar*"/>
  1545. </constant>
  1546. <constant name="VIDEO_CONVERTER_OPT_GAMMA_MODE"
  1547. value="GstVideoConverter.gamma-mode"
  1548. c:type="GST_VIDEO_CONVERTER_OPT_GAMMA_MODE">
  1549. <doc xml:space="preserve">#GST_TYPE_VIDEO_GAMMA_MODE, set the gamma mode.
  1550. Default is #GST_VIDEO_GAMMA_MODE_NONE.</doc>
  1551. <type name="utf8" c:type="gchar*"/>
  1552. </constant>
  1553. <constant name="VIDEO_CONVERTER_OPT_MATRIX_MODE"
  1554. value="GstVideoConverter.matrix-mode"
  1555. c:type="GST_VIDEO_CONVERTER_OPT_MATRIX_MODE">
  1556. <doc xml:space="preserve">#GST_TYPE_VIDEO_MATRIX_MODE, set the color matrix conversion mode for
  1557. converting between Y'PbPr and non-linear RGB (R'G'B').
  1558. Default is #GST_VIDEO_MATRIX_MODE_FULL.</doc>
  1559. <type name="utf8" c:type="gchar*"/>
  1560. </constant>
  1561. <constant name="VIDEO_CONVERTER_OPT_PRIMARIES_MODE"
  1562. value="GstVideoConverter.primaries-mode"
  1563. c:type="GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE">
  1564. <doc xml:space="preserve">#GST_TYPE_VIDEO_PRIMARIES_MODE, set the primaries conversion mode.
  1565. Default is #GST_VIDEO_PRIMARIES_MODE_NONE.</doc>
  1566. <type name="utf8" c:type="gchar*"/>
  1567. </constant>
  1568. <constant name="VIDEO_CONVERTER_OPT_RESAMPLER_METHOD"
  1569. value="GstVideoConverter.resampler-method"
  1570. c:type="GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD">
  1571. <doc xml:space="preserve">#GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
  1572. resampling. Other options for the resampler can be used, see
  1573. the #GstResampler. Default is #GST_RESAMPLER_METHOD_CUBIC</doc>
  1574. <type name="utf8" c:type="gchar*"/>
  1575. </constant>
  1576. <constant name="VIDEO_CONVERTER_OPT_RESAMPLER_TAPS"
  1577. value="GstVideoConverter.resampler-taps"
  1578. c:type="GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS">
  1579. <doc xml:space="preserve">#G_TYPE_UINT, The number of taps for the resampler.
  1580. Default is 0: let the resampler choose a good value.</doc>
  1581. <type name="utf8" c:type="gchar*"/>
  1582. </constant>
  1583. <constant name="VIDEO_CONVERTER_OPT_SRC_HEIGHT"
  1584. value="GstVideoConverter.src-height"
  1585. c:type="GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT">
  1586. <doc xml:space="preserve">#G_TYPE_INT, source height to convert, default source height</doc>
  1587. <type name="utf8" c:type="gchar*"/>
  1588. </constant>
  1589. <constant name="VIDEO_CONVERTER_OPT_SRC_WIDTH"
  1590. value="GstVideoConverter.src-width"
  1591. c:type="GST_VIDEO_CONVERTER_OPT_SRC_WIDTH">
  1592. <doc xml:space="preserve">#G_TYPE_INT, source width to convert, default source width</doc>
  1593. <type name="utf8" c:type="gchar*"/>
  1594. </constant>
  1595. <constant name="VIDEO_CONVERTER_OPT_SRC_X"
  1596. value="GstVideoConverter.src-x"
  1597. c:type="GST_VIDEO_CONVERTER_OPT_SRC_X">
  1598. <doc xml:space="preserve">#G_TYPE_INT, source x position to start conversion, default 0</doc>
  1599. <type name="utf8" c:type="gchar*"/>
  1600. </constant>
  1601. <constant name="VIDEO_CONVERTER_OPT_SRC_Y"
  1602. value="GstVideoConverter.src-y"
  1603. c:type="GST_VIDEO_CONVERTER_OPT_SRC_Y">
  1604. <doc xml:space="preserve">#G_TYPE_INT, source y position to start conversion, default 0</doc>
  1605. <type name="utf8" c:type="gchar*"/>
  1606. </constant>
  1607. <constant name="VIDEO_DECODER_MAX_ERRORS"
  1608. value="10"
  1609. c:type="GST_VIDEO_DECODER_MAX_ERRORS">
  1610. <doc xml:space="preserve">Default maximum number of errors tolerated before signaling error.</doc>
  1611. <type name="gint" c:type="gint"/>
  1612. </constant>
  1613. <constant name="VIDEO_DECODER_SINK_NAME"
  1614. value="sink"
  1615. c:type="GST_VIDEO_DECODER_SINK_NAME">
  1616. <doc xml:space="preserve">The name of the templates for the sink pad.</doc>
  1617. <type name="utf8" c:type="gchar*"/>
  1618. </constant>
  1619. <constant name="VIDEO_DECODER_SRC_NAME"
  1620. value="src"
  1621. c:type="GST_VIDEO_DECODER_SRC_NAME">
  1622. <doc xml:space="preserve">The name of the templates for the source pad.</doc>
  1623. <type name="utf8" c:type="gchar*"/>
  1624. </constant>
  1625. <constant name="VIDEO_ENCODER_SINK_NAME"
  1626. value="sink"
  1627. c:type="GST_VIDEO_ENCODER_SINK_NAME">
  1628. <doc xml:space="preserve">The name of the templates for the sink pad.</doc>
  1629. <type name="utf8" c:type="gchar*"/>
  1630. </constant>
  1631. <constant name="VIDEO_ENCODER_SRC_NAME"
  1632. value="src"
  1633. c:type="GST_VIDEO_ENCODER_SRC_NAME">
  1634. <doc xml:space="preserve">The name of the templates for the source pad.</doc>
  1635. <type name="utf8" c:type="gchar*"/>
  1636. </constant>
  1637. <constant name="VIDEO_FORMATS_ALL"
  1638. value="{ I420, YV12, YUY2, UYVY, AYUV, RGBx, BGRx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, Y41B, Y42B, YVYU, Y444, v210, v216, NV12, NV21, NV16, NV61, NV24, GRAY8, GRAY16_BE, GRAY16_LE, v308, RGB16, BGR16, RGB15, BGR15, UYVP, A420, RGB8P, YUV9, YVU9, IYU1, ARGB64, AYUV64, r210, I420_10LE, I420_10BE, I422_10LE, I422_10BE, Y444_10LE, Y444_10BE, GBR, GBR_10LE, GBR_10BE, NV12_64Z32, A420_10LE, A420_10BE, A422_10LE, A422_10BE, A444_10LE, A444_10BE }"
  1639. c:type="GST_VIDEO_FORMATS_ALL">
  1640. <type name="utf8" c:type="gchar*"/>
  1641. </constant>
  1642. <constant name="VIDEO_FPS_RANGE"
  1643. value="(fraction) [ 0, max ]"
  1644. c:type="GST_VIDEO_FPS_RANGE">
  1645. <type name="utf8" c:type="gchar*"/>
  1646. </constant>
  1647. <constant name="VIDEO_MAX_COMPONENTS"
  1648. value="4"
  1649. c:type="GST_VIDEO_MAX_COMPONENTS">
  1650. <type name="gint" c:type="gint"/>
  1651. </constant>
  1652. <constant name="VIDEO_MAX_PLANES" value="4" c:type="GST_VIDEO_MAX_PLANES">
  1653. <type name="gint" c:type="gint"/>
  1654. </constant>
  1655. <constant name="VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS"
  1656. value="{ BGRx, RGBx, xRGB, xBGR, RGBA, BGRA, ARGB, ABGR, RGB, BGR, I420, YV12, AYUV, YUY2, UYVY, v308, Y41B, Y42B, Y444, NV12, NV21, A420, YUV9, YVU9, IYU1, GRAY8 }"
  1657. c:type="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS"
  1658. version="1.2">
  1659. <doc xml:space="preserve">Video formats supported by gst_video_overlay_composition_blend(), for
  1660. use in overlay elements' pad template caps.</doc>
  1661. <type name="utf8" c:type="gchar*"/>
  1662. </constant>
  1663. <constant name="VIDEO_RESAMPLER_OPT_CUBIC_B"
  1664. value="GstVideoResampler.cubic-b"
  1665. c:type="GST_VIDEO_RESAMPLER_OPT_CUBIC_B">
  1666. <doc xml:space="preserve">G_TYPE_DOUBLE, B parameter of the cubic filter. The B
  1667. parameter controls the bluriness. Values between 0.0 and
  1668. 2.0 are accepted. 1/3 is the default.
  1669. Below are some values of popular filters:
  1670. B C
  1671. Hermite 0.0 0.0
  1672. Spline 1.0 0.0
  1673. Catmull-Rom 0.0 1/2
  1674. Mitchell 1/3 1/3
  1675. Robidoux 0.3782 0.3109
  1676. Robidoux
  1677. Sharp 0.2620 0.3690
  1678. Robidoux
  1679. Soft 0.6796 0.1602</doc>
  1680. <type name="utf8" c:type="gchar*"/>
  1681. </constant>
  1682. <constant name="VIDEO_RESAMPLER_OPT_CUBIC_C"
  1683. value="GstVideoResampler.cubic-c"
  1684. c:type="GST_VIDEO_RESAMPLER_OPT_CUBIC_C">
  1685. <doc xml:space="preserve">G_TYPE_DOUBLE, C parameter of the cubic filter. The C
  1686. parameter controls the Keys alpha value. Values between 0.0 and
  1687. 2.0 are accepted. 1/3 is the default.
  1688. See #GST_VIDEO_RESAMPLER_OPT_CUBIC_B for some more common values</doc>
  1689. <type name="utf8" c:type="gchar*"/>
  1690. </constant>
  1691. <constant name="VIDEO_RESAMPLER_OPT_ENVELOPE"
  1692. value="GstVideoResampler.envelope"
  1693. c:type="GST_VIDEO_RESAMPLER_OPT_ENVELOPE">
  1694. <doc xml:space="preserve">G_TYPE_DOUBLE, specifies the size of filter envelope for
  1695. @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
  1696. 1.0 and 5.0. 2.0 is the default.</doc>
  1697. <type name="utf8" c:type="gchar*"/>
  1698. </constant>
  1699. <constant name="VIDEO_RESAMPLER_OPT_MAX_TAPS"
  1700. value="GstVideoResampler.max-taps"
  1701. c:type="GST_VIDEO_RESAMPLER_OPT_MAX_TAPS">
  1702. <doc xml:space="preserve">G_TYPE_INT, limits the maximum number of taps to use.
  1703. 16 is the default.</doc>
  1704. <type name="utf8" c:type="gchar*"/>
  1705. </constant>
  1706. <constant name="VIDEO_RESAMPLER_OPT_SHARPEN"
  1707. value="GstVideoResampler.sharpen"
  1708. c:type="GST_VIDEO_RESAMPLER_OPT_SHARPEN">
  1709. <doc xml:space="preserve">G_TYPE_DOUBLE, specifies sharpening of the filter for
  1710. @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
  1711. 0.0 and 1.0. 0.0 is the default.</doc>
  1712. <type name="utf8" c:type="gchar*"/>
  1713. </constant>
  1714. <constant name="VIDEO_RESAMPLER_OPT_SHARPNESS"
  1715. value="GstVideoResampler.sharpness"
  1716. c:type="GST_VIDEO_RESAMPLER_OPT_SHARPNESS">
  1717. <doc xml:space="preserve">G_TYPE_DOUBLE, specifies sharpness of the filter for
  1718. @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
  1719. 0.5 and 1.5. 1.0 is the default.</doc>
  1720. <type name="utf8" c:type="gchar*"/>
  1721. </constant>
  1722. <constant name="VIDEO_SCALER_OPT_DITHER_METHOD"
  1723. value="GstVideoScaler.dither-method"
  1724. c:type="GST_VIDEO_SCALER_OPT_DITHER_METHOD">
  1725. <doc xml:space="preserve">#GST_TYPE_VIDEO_DITHER_METHOD, The dither method to use for propagating
  1726. quatization errors.</doc>
  1727. <type name="utf8" c:type="gchar*"/>
  1728. </constant>
  1729. <constant name="VIDEO_SIZE_RANGE"
  1730. value="(int) [ 1, max ]"
  1731. c:type="GST_VIDEO_SIZE_RANGE">
  1732. <type name="utf8" c:type="gchar*"/>
  1733. </constant>
  1734. <constant name="VIDEO_TILE_TYPE_MASK"
  1735. value="0"
  1736. c:type="GST_VIDEO_TILE_TYPE_MASK">
  1737. <type name="gint" c:type="gint"/>
  1738. </constant>
  1739. <constant name="VIDEO_TILE_TYPE_SHIFT"
  1740. value="16"
  1741. c:type="GST_VIDEO_TILE_TYPE_SHIFT">
  1742. <type name="gint" c:type="gint"/>
  1743. </constant>
  1744. <constant name="VIDEO_TILE_X_TILES_MASK"
  1745. value="0"
  1746. c:type="GST_VIDEO_TILE_X_TILES_MASK">
  1747. <type name="gint" c:type="gint"/>
  1748. </constant>
  1749. <constant name="VIDEO_TILE_Y_TILES_SHIFT"
  1750. value="16"
  1751. c:type="GST_VIDEO_TILE_Y_TILES_SHIFT">
  1752. <type name="gint" c:type="gint"/>
  1753. </constant>
  1754. <callback name="VideoAffineTransformationGetMatrix"
  1755. c:type="GstVideoAffineTransformationGetMatrix">
  1756. <return-value transfer-ownership="none">
  1757. <type name="gboolean" c:type="gboolean"/>
  1758. </return-value>
  1759. <parameters>
  1760. <parameter name="meta" transfer-ownership="none">
  1761. <type name="VideoAffineTransformationMeta"
  1762. c:type="GstVideoAffineTransformationMeta*"/>
  1763. </parameter>
  1764. <parameter name="matrix" transfer-ownership="none">
  1765. <type name="gfloat" c:type="gfloat*"/>
  1766. </parameter>
  1767. </parameters>
  1768. </callback>
  1769. <record name="VideoAffineTransformationMeta"
  1770. c:type="GstVideoAffineTransformationMeta">
  1771. <field name="meta" writable="1">
  1772. <type name="Gst.Meta" c:type="GstMeta"/>
  1773. </field>
  1774. <field name="matrix" writable="1">
  1775. <array zero-terminated="0" c:type="gfloat" fixed-size="16">
  1776. <type name="gfloat" c:type="gfloat"/>
  1777. </array>
  1778. </field>
  1779. <method name="apply_matrix"
  1780. c:identifier="gst_video_affine_transformation_meta_apply_matrix"
  1781. version="1.8">
  1782. <doc xml:space="preserve">Apply a transformation using the given 4x4 transformation matrix</doc>
  1783. <return-value transfer-ownership="none">
  1784. <type name="none" c:type="void"/>
  1785. </return-value>
  1786. <parameters>
  1787. <instance-parameter name="meta" transfer-ownership="none">
  1788. <doc xml:space="preserve">a #GstVideoAffineTransformationMeta</doc>
  1789. <type name="VideoAffineTransformationMeta"
  1790. c:type="GstVideoAffineTransformationMeta*"/>
  1791. </instance-parameter>
  1792. <parameter name="matrix" transfer-ownership="none">
  1793. <doc xml:space="preserve">a 4x4 transformation matrix to be applied</doc>
  1794. <type name="gfloat" c:type="const gfloat"/>
  1795. </parameter>
  1796. </parameters>
  1797. </method>
  1798. <function name="get_info"
  1799. c:identifier="gst_video_affine_transformation_meta_get_info">
  1800. <return-value transfer-ownership="none">
  1801. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  1802. </return-value>
  1803. </function>
  1804. </record>
  1805. <record name="VideoAlignment" c:type="GstVideoAlignment">
  1806. <doc xml:space="preserve">Extra alignment paramters for the memory of video buffers. This
  1807. structure is usually used to configure the bufferpool if it supports the
  1808. #GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT.</doc>
  1809. <field name="padding_top" writable="1">
  1810. <doc xml:space="preserve">extra pixels on the top</doc>
  1811. <type name="guint" c:type="guint"/>
  1812. </field>
  1813. <field name="padding_bottom" writable="1">
  1814. <doc xml:space="preserve">extra pixels on the bottom</doc>
  1815. <type name="guint" c:type="guint"/>
  1816. </field>
  1817. <field name="padding_left" writable="1">
  1818. <doc xml:space="preserve">extra pixels on the left side</doc>
  1819. <type name="guint" c:type="guint"/>
  1820. </field>
  1821. <field name="padding_right" writable="1">
  1822. <doc xml:space="preserve">extra pixels on the right side</doc>
  1823. <type name="guint" c:type="guint"/>
  1824. </field>
  1825. <field name="stride_align" writable="1">
  1826. <doc xml:space="preserve">array with extra alignment requirements for the strides</doc>
  1827. <array zero-terminated="0" c:type="guint" fixed-size="4">
  1828. <type name="guint" c:type="guint"/>
  1829. </array>
  1830. </field>
  1831. <method name="reset" c:identifier="gst_video_alignment_reset">
  1832. <doc xml:space="preserve">Set @align to its default values with no padding and no alignment.</doc>
  1833. <return-value transfer-ownership="none">
  1834. <type name="none" c:type="void"/>
  1835. </return-value>
  1836. <parameters>
  1837. <instance-parameter name="align" transfer-ownership="none">
  1838. <doc xml:space="preserve">a #GstVideoAlignment</doc>
  1839. <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
  1840. </instance-parameter>
  1841. </parameters>
  1842. </method>
  1843. </record>
  1844. <enumeration name="VideoAlphaMode"
  1845. version="1.6"
  1846. glib:type-name="GstVideoAlphaMode"
  1847. glib:get-type="gst_video_alpha_mode_get_type"
  1848. c:type="GstVideoAlphaMode">
  1849. <doc xml:space="preserve">Different alpha modes.</doc>
  1850. <member name="copy"
  1851. value="0"
  1852. c:identifier="GST_VIDEO_ALPHA_MODE_COPY"
  1853. glib:nick="copy">
  1854. <doc xml:space="preserve">When input and output have alpha, it will be copied.
  1855. When the input has no alpha, alpha will be set to
  1856. #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
  1857. </member>
  1858. <member name="set"
  1859. value="1"
  1860. c:identifier="GST_VIDEO_ALPHA_MODE_SET"
  1861. glib:nick="set">
  1862. <doc xml:space="preserve">set all alpha to
  1863. #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
  1864. </member>
  1865. <member name="mult"
  1866. value="2"
  1867. c:identifier="GST_VIDEO_ALPHA_MODE_MULT"
  1868. glib:nick="mult">
  1869. <doc xml:space="preserve">multiply all alpha with
  1870. #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE.
  1871. When the input format has no alpha but the output format has, the
  1872. alpha value will be set to #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
  1873. </member>
  1874. </enumeration>
  1875. <bitfield name="VideoBufferFlags"
  1876. glib:type-name="GstVideoBufferFlags"
  1877. glib:get-type="gst_video_buffer_flags_get_type"
  1878. c:type="GstVideoBufferFlags">
  1879. <doc xml:space="preserve">Additional video buffer flags. These flags can potentially be used on any
  1880. buffers carrying video data - even encoded data.</doc>
  1881. <member name="interlaced"
  1882. value="1048576"
  1883. c:identifier="GST_VIDEO_BUFFER_FLAG_INTERLACED"
  1884. glib:nick="interlaced">
  1885. <doc xml:space="preserve">If the #GstBuffer is interlaced. In mixed
  1886. interlace-mode, this flags specifies if the frame is
  1887. interlaced or progressive.</doc>
  1888. </member>
  1889. <member name="tff"
  1890. value="2097152"
  1891. c:identifier="GST_VIDEO_BUFFER_FLAG_TFF"
  1892. glib:nick="tff">
  1893. <doc xml:space="preserve">If the #GstBuffer is interlaced, then the first field
  1894. in the video frame is the top field. If unset, the
  1895. bottom field is first.</doc>
  1896. </member>
  1897. <member name="rff"
  1898. value="4194304"
  1899. c:identifier="GST_VIDEO_BUFFER_FLAG_RFF"
  1900. glib:nick="rff">
  1901. <doc xml:space="preserve">If the #GstBuffer is interlaced, then the first field
  1902. (as defined by the %GST_VIDEO_BUFFER_TFF flag setting)
  1903. is repeated.</doc>
  1904. </member>
  1905. <member name="onefield"
  1906. value="8388608"
  1907. c:identifier="GST_VIDEO_BUFFER_FLAG_ONEFIELD"
  1908. glib:nick="onefield">
  1909. <doc xml:space="preserve">If the #GstBuffer is interlaced, then only the
  1910. first field (as defined by the %GST_VIDEO_BUFFER_TFF
  1911. flag setting) is to be displayed.</doc>
  1912. </member>
  1913. <member name="multiple_view"
  1914. value="16777216"
  1915. c:identifier="GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW"
  1916. glib:nick="multiple-view">
  1917. <doc xml:space="preserve">The #GstBuffer contains one or more specific views,
  1918. such as left or right eye view. This flags is set on
  1919. any buffer that contains non-mono content - even for
  1920. streams that contain only a single viewpoint. In mixed
  1921. mono / non-mono streams, the absense of the flag marks
  1922. mono buffers.</doc>
  1923. </member>
  1924. <member name="first_in_bundle"
  1925. value="33554432"
  1926. c:identifier="GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE"
  1927. glib:nick="first-in-bundle">
  1928. <doc xml:space="preserve">When conveying stereo/multiview content with
  1929. frame-by-frame methods, this flag marks the first buffer
  1930. in a bundle of frames that belong together.</doc>
  1931. </member>
  1932. <member name="last"
  1933. value="268435456"
  1934. c:identifier="GST_VIDEO_BUFFER_FLAG_LAST"
  1935. glib:nick="last">
  1936. <doc xml:space="preserve">Offset to define more flags</doc>
  1937. </member>
  1938. </bitfield>
  1939. <class name="VideoBufferPool"
  1940. c:symbol-prefix="video_buffer_pool"
  1941. c:type="GstVideoBufferPool"
  1942. parent="Gst.BufferPool"
  1943. glib:type-name="GstVideoBufferPool"
  1944. glib:get-type="gst_video_buffer_pool_get_type"
  1945. glib:type-struct="VideoBufferPoolClass">
  1946. <constructor name="new" c:identifier="gst_video_buffer_pool_new">
  1947. <doc xml:space="preserve">Create a new bufferpool that can allocate video frames. This bufferpool
  1948. supports all the video bufferpool options.</doc>
  1949. <return-value transfer-ownership="none">
  1950. <doc xml:space="preserve">a new #GstBufferPool to allocate video frames</doc>
  1951. <type name="Gst.BufferPool" c:type="GstBufferPool*"/>
  1952. </return-value>
  1953. </constructor>
  1954. <field name="bufferpool">
  1955. <type name="Gst.BufferPool" c:type="GstBufferPool"/>
  1956. </field>
  1957. <field name="priv">
  1958. <type name="VideoBufferPoolPrivate"
  1959. c:type="GstVideoBufferPoolPrivate*"/>
  1960. </field>
  1961. </class>
  1962. <record name="VideoBufferPoolClass"
  1963. c:type="GstVideoBufferPoolClass"
  1964. glib:is-gtype-struct-for="VideoBufferPool">
  1965. <field name="parent_class">
  1966. <type name="Gst.BufferPoolClass" c:type="GstBufferPoolClass"/>
  1967. </field>
  1968. </record>
  1969. <record name="VideoBufferPoolPrivate"
  1970. c:type="GstVideoBufferPoolPrivate"
  1971. disguised="1">
  1972. </record>
  1973. <bitfield name="VideoChromaFlags"
  1974. glib:type-name="GstVideoChromaFlags"
  1975. glib:get-type="gst_video_chroma_flags_get_type"
  1976. c:type="GstVideoChromaFlags">
  1977. <doc xml:space="preserve">Extra flags that influence the result from gst_video_chroma_resample_new().</doc>
  1978. <member name="none"
  1979. value="0"
  1980. c:identifier="GST_VIDEO_CHROMA_FLAG_NONE"
  1981. glib:nick="none">
  1982. <doc xml:space="preserve">no flags</doc>
  1983. </member>
  1984. <member name="interlaced"
  1985. value="1"
  1986. c:identifier="GST_VIDEO_CHROMA_FLAG_INTERLACED"
  1987. glib:nick="interlaced">
  1988. <doc xml:space="preserve">the input is interlaced</doc>
  1989. </member>
  1990. </bitfield>
  1991. <enumeration name="VideoChromaMethod"
  1992. glib:type-name="GstVideoChromaMethod"
  1993. glib:get-type="gst_video_chroma_method_get_type"
  1994. c:type="GstVideoChromaMethod">
  1995. <doc xml:space="preserve">Different subsampling and upsampling methods</doc>
  1996. <member name="nearest"
  1997. value="0"
  1998. c:identifier="GST_VIDEO_CHROMA_METHOD_NEAREST"
  1999. glib:nick="nearest">
  2000. <doc xml:space="preserve">Duplicates the chroma samples when
  2001. upsampling and drops when subsampling</doc>
  2002. </member>
  2003. <member name="linear"
  2004. value="1"
  2005. c:identifier="GST_VIDEO_CHROMA_METHOD_LINEAR"
  2006. glib:nick="linear">
  2007. <doc xml:space="preserve">Uses linear interpolation to reconstruct
  2008. missing chroma and averaging to subsample</doc>
  2009. </member>
  2010. </enumeration>
  2011. <enumeration name="VideoChromaMode"
  2012. version="1.6"
  2013. glib:type-name="GstVideoChromaMode"
  2014. glib:get-type="gst_video_chroma_mode_get_type"
  2015. c:type="GstVideoChromaMode">
  2016. <doc xml:space="preserve">Different chroma downsampling and upsampling modes</doc>
  2017. <member name="full"
  2018. value="0"
  2019. c:identifier="GST_VIDEO_CHROMA_MODE_FULL"
  2020. glib:nick="full">
  2021. <doc xml:space="preserve">do full chroma up and down sampling</doc>
  2022. </member>
  2023. <member name="upsample_only"
  2024. value="1"
  2025. c:identifier="GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY"
  2026. glib:nick="upsample-only">
  2027. <doc xml:space="preserve">only perform chroma upsampling</doc>
  2028. </member>
  2029. <member name="downsample_only"
  2030. value="2"
  2031. c:identifier="GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY"
  2032. glib:nick="downsample-only">
  2033. <doc xml:space="preserve">only perform chroma downsampling</doc>
  2034. </member>
  2035. <member name="none"
  2036. value="3"
  2037. c:identifier="GST_VIDEO_CHROMA_MODE_NONE"
  2038. glib:nick="none">
  2039. <doc xml:space="preserve">disable chroma resampling</doc>
  2040. </member>
  2041. </enumeration>
  2042. <record name="VideoChromaResample"
  2043. c:type="GstVideoChromaResample"
  2044. disguised="1">
  2045. <method name=""
  2046. c:identifier="gst_video_chroma_resample"
  2047. moved-to="video_chroma_resample">
  2048. <doc xml:space="preserve">Perform resampling of @width chroma pixels in @lines.</doc>
  2049. <return-value transfer-ownership="none">
  2050. <type name="none" c:type="void"/>
  2051. </return-value>
  2052. <parameters>
  2053. <instance-parameter name="resample" transfer-ownership="none">
  2054. <doc xml:space="preserve">a #GstVideoChromaResample</doc>
  2055. <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
  2056. </instance-parameter>
  2057. <parameter name="lines"
  2058. transfer-ownership="none"
  2059. nullable="1"
  2060. allow-none="1">
  2061. <doc xml:space="preserve">pixel lines</doc>
  2062. <type name="gpointer" c:type="gpointer"/>
  2063. </parameter>
  2064. <parameter name="width" transfer-ownership="none">
  2065. <doc xml:space="preserve">the number of pixels on one line</doc>
  2066. <type name="gint" c:type="gint"/>
  2067. </parameter>
  2068. </parameters>
  2069. </method>
  2070. <method name="free" c:identifier="gst_video_chroma_resample_free">
  2071. <doc xml:space="preserve">Free @resample</doc>
  2072. <return-value transfer-ownership="none">
  2073. <type name="none" c:type="void"/>
  2074. </return-value>
  2075. <parameters>
  2076. <instance-parameter name="resample" transfer-ownership="none">
  2077. <doc xml:space="preserve">a #GstVideoChromaResample</doc>
  2078. <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
  2079. </instance-parameter>
  2080. </parameters>
  2081. </method>
  2082. <method name="get_info"
  2083. c:identifier="gst_video_chroma_resample_get_info">
  2084. <doc xml:space="preserve">The resampler must be fed @n_lines at a time. The first line should be
  2085. at @offset.</doc>
  2086. <return-value transfer-ownership="none">
  2087. <type name="none" c:type="void"/>
  2088. </return-value>
  2089. <parameters>
  2090. <instance-parameter name="resample" transfer-ownership="none">
  2091. <doc xml:space="preserve">a #GstVideoChromaResample</doc>
  2092. <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
  2093. </instance-parameter>
  2094. <parameter name="n_lines" transfer-ownership="none">
  2095. <doc xml:space="preserve">the number of input lines</doc>
  2096. <type name="guint" c:type="guint*"/>
  2097. </parameter>
  2098. <parameter name="offset" transfer-ownership="none">
  2099. <doc xml:space="preserve">the first line</doc>
  2100. <type name="gint" c:type="gint*"/>
  2101. </parameter>
  2102. </parameters>
  2103. </method>
  2104. <function name="new"
  2105. c:identifier="gst_video_chroma_resample_new"
  2106. introspectable="0">
  2107. <doc xml:space="preserve">Create a new resampler object for the given parameters. When @h_factor or
  2108. @v_factor is &gt; 0, upsampling will be used, otherwise subsampling is
  2109. performed.</doc>
  2110. <return-value>
  2111. <doc xml:space="preserve">a new #GstVideoChromaResample that should be freed with
  2112. gst_video_chroma_resample_free() after usage.</doc>
  2113. <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
  2114. </return-value>
  2115. <parameters>
  2116. <parameter name="method" transfer-ownership="none">
  2117. <doc xml:space="preserve">a #GstVideoChromaMethod</doc>
  2118. <type name="VideoChromaMethod" c:type="GstVideoChromaMethod"/>
  2119. </parameter>
  2120. <parameter name="site" transfer-ownership="none">
  2121. <doc xml:space="preserve">a #GstVideoChromaSite</doc>
  2122. <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
  2123. </parameter>
  2124. <parameter name="flags" transfer-ownership="none">
  2125. <doc xml:space="preserve">#GstVideoChromaFlags</doc>
  2126. <type name="VideoChromaFlags" c:type="GstVideoChromaFlags"/>
  2127. </parameter>
  2128. <parameter name="format" transfer-ownership="none">
  2129. <doc xml:space="preserve">the #GstVideoFormat</doc>
  2130. <type name="VideoFormat" c:type="GstVideoFormat"/>
  2131. </parameter>
  2132. <parameter name="h_factor" transfer-ownership="none">
  2133. <doc xml:space="preserve">horizontal resampling factor</doc>
  2134. <type name="gint" c:type="gint"/>
  2135. </parameter>
  2136. <parameter name="v_factor" transfer-ownership="none">
  2137. <doc xml:space="preserve">vertical resampling factor</doc>
  2138. <type name="gint" c:type="gint"/>
  2139. </parameter>
  2140. </parameters>
  2141. </function>
  2142. </record>
  2143. <bitfield name="VideoChromaSite"
  2144. glib:type-name="GstVideoChromaSite"
  2145. glib:get-type="gst_video_chroma_site_get_type"
  2146. c:type="GstVideoChromaSite">
  2147. <doc xml:space="preserve">Various Chroma sitings.</doc>
  2148. <member name="unknown"
  2149. value="0"
  2150. c:identifier="GST_VIDEO_CHROMA_SITE_UNKNOWN"
  2151. glib:nick="unknown">
  2152. <doc xml:space="preserve">unknown cositing</doc>
  2153. </member>
  2154. <member name="none"
  2155. value="1"
  2156. c:identifier="GST_VIDEO_CHROMA_SITE_NONE"
  2157. glib:nick="none">
  2158. <doc xml:space="preserve">no cositing</doc>
  2159. </member>
  2160. <member name="h_cosited"
  2161. value="2"
  2162. c:identifier="GST_VIDEO_CHROMA_SITE_H_COSITED"
  2163. glib:nick="h-cosited">
  2164. <doc xml:space="preserve">chroma is horizontally cosited</doc>
  2165. </member>
  2166. <member name="v_cosited"
  2167. value="4"
  2168. c:identifier="GST_VIDEO_CHROMA_SITE_V_COSITED"
  2169. glib:nick="v-cosited">
  2170. <doc xml:space="preserve">chroma is vertically cosited</doc>
  2171. </member>
  2172. <member name="alt_line"
  2173. value="8"
  2174. c:identifier="GST_VIDEO_CHROMA_SITE_ALT_LINE"
  2175. glib:nick="alt-line">
  2176. <doc xml:space="preserve">choma samples are sited on alternate lines</doc>
  2177. </member>
  2178. <member name="cosited"
  2179. value="6"
  2180. c:identifier="GST_VIDEO_CHROMA_SITE_COSITED"
  2181. glib:nick="cosited">
  2182. <doc xml:space="preserve">chroma samples cosited with luma samples</doc>
  2183. </member>
  2184. <member name="jpeg"
  2185. value="1"
  2186. c:identifier="GST_VIDEO_CHROMA_SITE_JPEG"
  2187. glib:nick="jpeg">
  2188. <doc xml:space="preserve">jpeg style cositing, also for mpeg1 and mjpeg</doc>
  2189. </member>
  2190. <member name="mpeg2"
  2191. value="2"
  2192. c:identifier="GST_VIDEO_CHROMA_SITE_MPEG2"
  2193. glib:nick="mpeg2">
  2194. <doc xml:space="preserve">mpeg2 style cositing</doc>
  2195. </member>
  2196. <member name="dv"
  2197. value="14"
  2198. c:identifier="GST_VIDEO_CHROMA_SITE_DV"
  2199. glib:nick="dv">
  2200. <doc xml:space="preserve">DV style cositing</doc>
  2201. </member>
  2202. </bitfield>
  2203. <record name="VideoCodecFrame"
  2204. c:type="GstVideoCodecFrame"
  2205. glib:type-name="GstVideoCodecFrame"
  2206. glib:get-type="gst_video_codec_frame_get_type"
  2207. c:symbol-prefix="video_codec_frame">
  2208. <doc xml:space="preserve">A #GstVideoCodecFrame represents a video frame both in raw and
  2209. encoded form.</doc>
  2210. <field name="ref_count" readable="0" private="1">
  2211. <type name="gint" c:type="gint"/>
  2212. </field>
  2213. <field name="flags" readable="0" private="1">
  2214. <type name="guint32" c:type="guint32"/>
  2215. </field>
  2216. <field name="system_frame_number" writable="1">
  2217. <doc xml:space="preserve">Unique identifier for the frame. Use this if you need
  2218. to get hold of the frame later (like when data is being decoded).
  2219. Typical usage in decoders is to set this on the opaque value provided
  2220. to the library and get back the frame using gst_video_decoder_get_frame()</doc>
  2221. <type name="guint32" c:type="guint32"/>
  2222. </field>
  2223. <field name="decode_frame_number" writable="1">
  2224. <type name="guint32" c:type="guint32"/>
  2225. </field>
  2226. <field name="presentation_frame_number" writable="1">
  2227. <type name="guint32" c:type="guint32"/>
  2228. </field>
  2229. <field name="dts" writable="1">
  2230. <doc xml:space="preserve">Decoding timestamp</doc>
  2231. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  2232. </field>
  2233. <field name="pts" writable="1">
  2234. <doc xml:space="preserve">Presentation timestamp</doc>
  2235. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  2236. </field>
  2237. <field name="duration" writable="1">
  2238. <doc xml:space="preserve">Duration of the frame</doc>
  2239. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  2240. </field>
  2241. <field name="distance_from_sync" writable="1">
  2242. <doc xml:space="preserve">Distance in frames from the last synchronization point.</doc>
  2243. <type name="gint" c:type="int"/>
  2244. </field>
  2245. <field name="input_buffer" writable="1">
  2246. <doc xml:space="preserve">the input #GstBuffer that created this frame. The buffer is owned
  2247. by the frame and references to the frame instead of the buffer should
  2248. be kept.</doc>
  2249. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  2250. </field>
  2251. <field name="output_buffer" writable="1">
  2252. <doc xml:space="preserve">the output #GstBuffer. Implementations should set this either
  2253. directly, or by using the
  2254. @gst_video_decoder_allocate_output_frame() or
  2255. @gst_video_decoder_allocate_output_buffer() methods. The buffer is
  2256. owned by the frame and references to the frame instead of the
  2257. buffer should be kept.</doc>
  2258. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  2259. </field>
  2260. <field name="deadline" writable="1">
  2261. <doc xml:space="preserve">Running time when the frame will be used.</doc>
  2262. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  2263. </field>
  2264. <field name="events" readable="0" private="1">
  2265. <type name="GLib.List" c:type="GList*">
  2266. <type name="gpointer" c:type="gpointer"/>
  2267. </type>
  2268. </field>
  2269. <field name="user_data" readable="0" private="1">
  2270. <type name="gpointer" c:type="gpointer"/>
  2271. </field>
  2272. <field name="user_data_destroy_notify" readable="0" private="1">
  2273. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  2274. </field>
  2275. <union name="abidata" c:type="abidata">
  2276. <record name="ABI" c:type="ABI">
  2277. <field name="ts" writable="1">
  2278. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  2279. </field>
  2280. <field name="ts2" writable="1">
  2281. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  2282. </field>
  2283. </record>
  2284. <field name="padding" writable="1">
  2285. <array zero-terminated="0" c:type="void" fixed-size="20">
  2286. <type name="gpointer" c:type="void*"/>
  2287. </array>
  2288. </field>
  2289. </union>
  2290. <method name="get_user_data"
  2291. c:identifier="gst_video_codec_frame_get_user_data">
  2292. <doc xml:space="preserve">Gets private data set on the frame by the subclass via
  2293. gst_video_codec_frame_set_user_data() previously.</doc>
  2294. <return-value transfer-ownership="none" nullable="1">
  2295. <doc xml:space="preserve">The previously set user_data</doc>
  2296. <type name="gpointer" c:type="gpointer"/>
  2297. </return-value>
  2298. <parameters>
  2299. <instance-parameter name="frame" transfer-ownership="none">
  2300. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  2301. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  2302. </instance-parameter>
  2303. </parameters>
  2304. </method>
  2305. <method name="ref" c:identifier="gst_video_codec_frame_ref">
  2306. <doc xml:space="preserve">Increases the refcount of the given frame by one.</doc>
  2307. <return-value transfer-ownership="full">
  2308. <doc xml:space="preserve">@buf</doc>
  2309. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  2310. </return-value>
  2311. <parameters>
  2312. <instance-parameter name="frame" transfer-ownership="none">
  2313. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  2314. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  2315. </instance-parameter>
  2316. </parameters>
  2317. </method>
  2318. <method name="set_user_data"
  2319. c:identifier="gst_video_codec_frame_set_user_data">
  2320. <doc xml:space="preserve">Sets @user_data on the frame and the #GDestroyNotify that will be called when
  2321. the frame is freed. Allows to attach private data by the subclass to frames.
  2322. If a @user_data was previously set, then the previous set @notify will be called
  2323. before the @user_data is replaced.</doc>
  2324. <return-value transfer-ownership="none">
  2325. <type name="none" c:type="void"/>
  2326. </return-value>
  2327. <parameters>
  2328. <instance-parameter name="frame" transfer-ownership="none">
  2329. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  2330. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  2331. </instance-parameter>
  2332. <parameter name="user_data"
  2333. transfer-ownership="none"
  2334. nullable="1"
  2335. allow-none="1">
  2336. <doc xml:space="preserve">private data</doc>
  2337. <type name="gpointer" c:type="gpointer"/>
  2338. </parameter>
  2339. <parameter name="notify"
  2340. transfer-ownership="none"
  2341. scope="async"
  2342. closure="0">
  2343. <doc xml:space="preserve">a #GDestroyNotify</doc>
  2344. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  2345. </parameter>
  2346. </parameters>
  2347. </method>
  2348. <method name="unref" c:identifier="gst_video_codec_frame_unref">
  2349. <doc xml:space="preserve">Decreases the refcount of the frame. If the refcount reaches 0, the frame
  2350. will be freed.</doc>
  2351. <return-value transfer-ownership="none">
  2352. <type name="none" c:type="void"/>
  2353. </return-value>
  2354. <parameters>
  2355. <instance-parameter name="frame" transfer-ownership="none">
  2356. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  2357. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  2358. </instance-parameter>
  2359. </parameters>
  2360. </method>
  2361. </record>
  2362. <bitfield name="VideoCodecFrameFlags" c:type="GstVideoCodecFrameFlags">
  2363. <doc xml:space="preserve">Flags for #GstVideoCodecFrame</doc>
  2364. <member name="decode_only"
  2365. value="1"
  2366. c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY">
  2367. <doc xml:space="preserve">is the frame only meant to be decoded</doc>
  2368. </member>
  2369. <member name="sync_point"
  2370. value="2"
  2371. c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT">
  2372. <doc xml:space="preserve">is the frame a synchronization point (keyframe)</doc>
  2373. </member>
  2374. <member name="force_keyframe"
  2375. value="4"
  2376. c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME">
  2377. <doc xml:space="preserve">should the output frame be made a keyframe</doc>
  2378. </member>
  2379. <member name="force_keyframe_headers"
  2380. value="8"
  2381. c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS">
  2382. <doc xml:space="preserve">should the encoder output stream headers</doc>
  2383. </member>
  2384. </bitfield>
  2385. <record name="VideoCodecState"
  2386. c:type="GstVideoCodecState"
  2387. glib:type-name="GstVideoCodecState"
  2388. glib:get-type="gst_video_codec_state_get_type"
  2389. c:symbol-prefix="video_codec_state">
  2390. <doc xml:space="preserve">Structure representing the state of an incoming or outgoing video
  2391. stream for encoders and decoders.
  2392. Decoders and encoders will receive such a state through their
  2393. respective @set_format vmethods.
  2394. Decoders and encoders can set the downstream state, by using the
  2395. @gst_video_decoder_set_output_state() or
  2396. @gst_video_encoder_set_output_state() methods.</doc>
  2397. <field name="ref_count" readable="0" private="1">
  2398. <type name="gint" c:type="gint"/>
  2399. </field>
  2400. <field name="info" writable="1">
  2401. <doc xml:space="preserve">The #GstVideoInfo describing the stream</doc>
  2402. <type name="VideoInfo" c:type="GstVideoInfo"/>
  2403. </field>
  2404. <field name="caps" writable="1">
  2405. <doc xml:space="preserve">The #GstCaps</doc>
  2406. <type name="Gst.Caps" c:type="GstCaps*"/>
  2407. </field>
  2408. <field name="codec_data" writable="1">
  2409. <doc xml:space="preserve">a #GstBuffer corresponding to the
  2410. 'codec_data' field of a stream, or NULL.</doc>
  2411. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  2412. </field>
  2413. <field name="padding" readable="0" private="1">
  2414. <array zero-terminated="0" c:type="void" fixed-size="20">
  2415. <type name="gpointer" c:type="void*"/>
  2416. </array>
  2417. </field>
  2418. <method name="ref" c:identifier="gst_video_codec_state_ref">
  2419. <doc xml:space="preserve">Increases the refcount of the given state by one.</doc>
  2420. <return-value transfer-ownership="full">
  2421. <doc xml:space="preserve">@buf</doc>
  2422. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  2423. </return-value>
  2424. <parameters>
  2425. <instance-parameter name="state" transfer-ownership="none">
  2426. <doc xml:space="preserve">a #GstVideoCodecState</doc>
  2427. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  2428. </instance-parameter>
  2429. </parameters>
  2430. </method>
  2431. <method name="unref" c:identifier="gst_video_codec_state_unref">
  2432. <doc xml:space="preserve">Decreases the refcount of the state. If the refcount reaches 0, the state
  2433. will be freed.</doc>
  2434. <return-value transfer-ownership="none">
  2435. <type name="none" c:type="void"/>
  2436. </return-value>
  2437. <parameters>
  2438. <instance-parameter name="state" transfer-ownership="none">
  2439. <doc xml:space="preserve">a #GstVideoCodecState</doc>
  2440. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  2441. </instance-parameter>
  2442. </parameters>
  2443. </method>
  2444. </record>
  2445. <enumeration name="VideoColorMatrix"
  2446. glib:type-name="GstVideoColorMatrix"
  2447. glib:get-type="gst_video_color_matrix_get_type"
  2448. c:type="GstVideoColorMatrix">
  2449. <doc xml:space="preserve">The color matrix is used to convert between Y'PbPr and
  2450. non-linear RGB (R'G'B')</doc>
  2451. <member name="unknown"
  2452. value="0"
  2453. c:identifier="GST_VIDEO_COLOR_MATRIX_UNKNOWN"
  2454. glib:nick="unknown">
  2455. <doc xml:space="preserve">unknown matrix</doc>
  2456. </member>
  2457. <member name="rgb"
  2458. value="1"
  2459. c:identifier="GST_VIDEO_COLOR_MATRIX_RGB"
  2460. glib:nick="rgb">
  2461. <doc xml:space="preserve">identity matrix</doc>
  2462. </member>
  2463. <member name="fcc"
  2464. value="2"
  2465. c:identifier="GST_VIDEO_COLOR_MATRIX_FCC"
  2466. glib:nick="fcc">
  2467. <doc xml:space="preserve">FCC color matrix</doc>
  2468. </member>
  2469. <member name="bt709"
  2470. value="3"
  2471. c:identifier="GST_VIDEO_COLOR_MATRIX_BT709"
  2472. glib:nick="bt709">
  2473. <doc xml:space="preserve">ITU-R BT.709 color matrix</doc>
  2474. </member>
  2475. <member name="bt601"
  2476. value="4"
  2477. c:identifier="GST_VIDEO_COLOR_MATRIX_BT601"
  2478. glib:nick="bt601">
  2479. <doc xml:space="preserve">ITU-R BT.601 color matrix</doc>
  2480. </member>
  2481. <member name="smpte240m"
  2482. value="5"
  2483. c:identifier="GST_VIDEO_COLOR_MATRIX_SMPTE240M"
  2484. glib:nick="smpte240m">
  2485. <doc xml:space="preserve">SMPTE 240M color matrix</doc>
  2486. </member>
  2487. <member name="bt2020"
  2488. value="6"
  2489. c:identifier="GST_VIDEO_COLOR_MATRIX_BT2020"
  2490. glib:nick="bt2020">
  2491. <doc xml:space="preserve">ITU-R BT.2020 color matrix. Since: 1.6.</doc>
  2492. </member>
  2493. <function name="get_Kr_Kb"
  2494. c:identifier="gst_video_color_matrix_get_Kr_Kb"
  2495. version="1.6">
  2496. <doc xml:space="preserve">Get the coefficients used to convert between Y'PbPr and R'G'B' using @matrix.
  2497. When:
  2498. |[
  2499. 0.0 &lt;= [Y',R',G',B'] &lt;= 1.0)
  2500. (-0.5 &lt;= [Pb,Pr] &lt;= 0.5)
  2501. ]|
  2502. the general conversion is given by:
  2503. |[
  2504. Y' = Kr*R' + (1-Kr-Kb)*G' + Kb*B'
  2505. Pb = (B'-Y')/(2*(1-Kb))
  2506. Pr = (R'-Y')/(2*(1-Kr))
  2507. ]|
  2508. and the other way around:
  2509. |[
  2510. R' = Y' + Cr*2*(1-Kr)
  2511. G' = Y' - Cb*2*(1-Kb)*Kb/(1-Kr-Kb) - Cr*2*(1-Kr)*Kr/(1-Kr-Kb)
  2512. B' = Y' + Cb*2*(1-Kb)
  2513. ]|</doc>
  2514. <return-value transfer-ownership="none">
  2515. <doc xml:space="preserve">TRUE if @matrix was a YUV color format and @Kr and @Kb contain valid
  2516. values.</doc>
  2517. <type name="gboolean" c:type="gboolean"/>
  2518. </return-value>
  2519. <parameters>
  2520. <parameter name="matrix" transfer-ownership="none">
  2521. <doc xml:space="preserve">a #GstVideoColorMatrix</doc>
  2522. <type name="VideoColorMatrix" c:type="GstVideoColorMatrix"/>
  2523. </parameter>
  2524. <parameter name="Kr" transfer-ownership="none">
  2525. <doc xml:space="preserve">result red channel coefficient</doc>
  2526. <type name="gdouble" c:type="gdouble*"/>
  2527. </parameter>
  2528. <parameter name="Kb" transfer-ownership="none">
  2529. <doc xml:space="preserve">result blue channel coefficient</doc>
  2530. <type name="gdouble" c:type="gdouble*"/>
  2531. </parameter>
  2532. </parameters>
  2533. </function>
  2534. </enumeration>
  2535. <enumeration name="VideoColorPrimaries"
  2536. glib:type-name="GstVideoColorPrimaries"
  2537. glib:get-type="gst_video_color_primaries_get_type"
  2538. c:type="GstVideoColorPrimaries">
  2539. <doc xml:space="preserve">The color primaries define the how to transform linear RGB values to and from
  2540. the CIE XYZ colorspace.</doc>
  2541. <member name="unknown"
  2542. value="0"
  2543. c:identifier="GST_VIDEO_COLOR_PRIMARIES_UNKNOWN"
  2544. glib:nick="unknown">
  2545. <doc xml:space="preserve">unknown color primaries</doc>
  2546. </member>
  2547. <member name="bt709"
  2548. value="1"
  2549. c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT709"
  2550. glib:nick="bt709">
  2551. <doc xml:space="preserve">BT709 primaries</doc>
  2552. </member>
  2553. <member name="bt470m"
  2554. value="2"
  2555. c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT470M"
  2556. glib:nick="bt470m">
  2557. <doc xml:space="preserve">BT470M primaries</doc>
  2558. </member>
  2559. <member name="bt470bg"
  2560. value="3"
  2561. c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT470BG"
  2562. glib:nick="bt470bg">
  2563. <doc xml:space="preserve">BT470BG primaries</doc>
  2564. </member>
  2565. <member name="smpte170m"
  2566. value="4"
  2567. c:identifier="GST_VIDEO_COLOR_PRIMARIES_SMPTE170M"
  2568. glib:nick="smpte170m">
  2569. <doc xml:space="preserve">SMPTE170M primaries</doc>
  2570. </member>
  2571. <member name="smpte240m"
  2572. value="5"
  2573. c:identifier="GST_VIDEO_COLOR_PRIMARIES_SMPTE240M"
  2574. glib:nick="smpte240m">
  2575. <doc xml:space="preserve">SMPTE240M primaries</doc>
  2576. </member>
  2577. <member name="film"
  2578. value="6"
  2579. c:identifier="GST_VIDEO_COLOR_PRIMARIES_FILM"
  2580. glib:nick="film">
  2581. <doc xml:space="preserve">Generic film</doc>
  2582. </member>
  2583. <member name="bt2020"
  2584. value="7"
  2585. c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT2020"
  2586. glib:nick="bt2020">
  2587. <doc xml:space="preserve">BT2020 primaries. Since: 1.6.</doc>
  2588. </member>
  2589. <member name="adobergb"
  2590. value="8"
  2591. c:identifier="GST_VIDEO_COLOR_PRIMARIES_ADOBERGB"
  2592. glib:nick="adobergb">
  2593. <doc xml:space="preserve">Adobe RGB primaries. Since: 1.8</doc>
  2594. </member>
  2595. <function name="get_info"
  2596. c:identifier="gst_video_color_primaries_get_info"
  2597. version="1.6">
  2598. <doc xml:space="preserve">Get information about the chromaticity coordinates of @primaries.</doc>
  2599. <return-value transfer-ownership="none">
  2600. <doc xml:space="preserve">a #GstVideoColorPrimariesInfo for @primaries.</doc>
  2601. <type name="VideoColorPrimariesInfo"
  2602. c:type="const GstVideoColorPrimariesInfo*"/>
  2603. </return-value>
  2604. <parameters>
  2605. <parameter name="primaries" transfer-ownership="none">
  2606. <doc xml:space="preserve">a #GstVideoColorPrimaries</doc>
  2607. <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
  2608. </parameter>
  2609. </parameters>
  2610. </function>
  2611. </enumeration>
  2612. <record name="VideoColorPrimariesInfo"
  2613. c:type="GstVideoColorPrimariesInfo"
  2614. version="1.6">
  2615. <doc xml:space="preserve">Structure describing the chromaticity coordinates of an RGB system. These
  2616. values can be used to construct a matrix to transform RGB to and from the
  2617. XYZ colorspace.</doc>
  2618. <field name="primaries" writable="1">
  2619. <doc xml:space="preserve">a #GstVideoColorPrimaries</doc>
  2620. <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
  2621. </field>
  2622. <field name="Wx" writable="1">
  2623. <doc xml:space="preserve">reference white x coordinate</doc>
  2624. <type name="gdouble" c:type="gdouble"/>
  2625. </field>
  2626. <field name="Wy" writable="1">
  2627. <doc xml:space="preserve">reference white y coordinate</doc>
  2628. <type name="gdouble" c:type="gdouble"/>
  2629. </field>
  2630. <field name="Rx" writable="1">
  2631. <doc xml:space="preserve">red x coordinate</doc>
  2632. <type name="gdouble" c:type="gdouble"/>
  2633. </field>
  2634. <field name="Ry" writable="1">
  2635. <doc xml:space="preserve">red y coordinate</doc>
  2636. <type name="gdouble" c:type="gdouble"/>
  2637. </field>
  2638. <field name="Gx" writable="1">
  2639. <doc xml:space="preserve">green x coordinate</doc>
  2640. <type name="gdouble" c:type="gdouble"/>
  2641. </field>
  2642. <field name="Gy" writable="1">
  2643. <doc xml:space="preserve">green y coordinate</doc>
  2644. <type name="gdouble" c:type="gdouble"/>
  2645. </field>
  2646. <field name="Bx" writable="1">
  2647. <doc xml:space="preserve">blue x coordinate</doc>
  2648. <type name="gdouble" c:type="gdouble"/>
  2649. </field>
  2650. <field name="By" writable="1">
  2651. <doc xml:space="preserve">blue y coordinate</doc>
  2652. <type name="gdouble" c:type="gdouble"/>
  2653. </field>
  2654. </record>
  2655. <enumeration name="VideoColorRange"
  2656. glib:type-name="GstVideoColorRange"
  2657. glib:get-type="gst_video_color_range_get_type"
  2658. c:type="GstVideoColorRange">
  2659. <doc xml:space="preserve">Possible color range values. These constants are defined for 8 bit color
  2660. values and can be scaled for other bit depths.</doc>
  2661. <member name="unknown"
  2662. value="0"
  2663. c:identifier="GST_VIDEO_COLOR_RANGE_UNKNOWN"
  2664. glib:nick="unknown">
  2665. <doc xml:space="preserve">unknown range</doc>
  2666. </member>
  2667. <member name="0_255"
  2668. value="1"
  2669. c:identifier="GST_VIDEO_COLOR_RANGE_0_255"
  2670. glib:nick="0-255">
  2671. <doc xml:space="preserve">[0..255] for 8 bit components</doc>
  2672. </member>
  2673. <member name="16_235"
  2674. value="2"
  2675. c:identifier="GST_VIDEO_COLOR_RANGE_16_235"
  2676. glib:nick="16-235">
  2677. <doc xml:space="preserve">[16..235] for 8 bit components. Chroma has
  2678. [16..240] range.</doc>
  2679. </member>
  2680. <function name="offsets" c:identifier="gst_video_color_range_offsets">
  2681. <doc xml:space="preserve">Compute the offset and scale values for each component of @info. For each
  2682. component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
  2683. range [0.0 .. 1.0].
  2684. The reverse operation (c[i] * scale[i]) + offset[i] can be used to convert
  2685. the component values in range [0.0 .. 1.0] back to their representation in
  2686. @info and @range.</doc>
  2687. <return-value transfer-ownership="none">
  2688. <type name="none" c:type="void"/>
  2689. </return-value>
  2690. <parameters>
  2691. <parameter name="range" transfer-ownership="none">
  2692. <doc xml:space="preserve">a #GstVideoColorRange</doc>
  2693. <type name="VideoColorRange" c:type="GstVideoColorRange"/>
  2694. </parameter>
  2695. <parameter name="info" transfer-ownership="none">
  2696. <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
  2697. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  2698. </parameter>
  2699. <parameter name="offset"
  2700. direction="out"
  2701. caller-allocates="0"
  2702. transfer-ownership="full">
  2703. <doc xml:space="preserve">output offsets</doc>
  2704. <type name="gint" c:type="gint"/>
  2705. </parameter>
  2706. <parameter name="scale"
  2707. direction="out"
  2708. caller-allocates="0"
  2709. transfer-ownership="full">
  2710. <doc xml:space="preserve">output scale</doc>
  2711. <type name="gint" c:type="gint"/>
  2712. </parameter>
  2713. </parameters>
  2714. </function>
  2715. </enumeration>
  2716. <record name="VideoColorimetry" c:type="GstVideoColorimetry">
  2717. <doc xml:space="preserve">Structure describing the color info.</doc>
  2718. <field name="range" writable="1">
  2719. <doc xml:space="preserve">the color range. This is the valid range for the samples.
  2720. It is used to convert the samples to Y'PbPr values.</doc>
  2721. <type name="VideoColorRange" c:type="GstVideoColorRange"/>
  2722. </field>
  2723. <field name="matrix" writable="1">
  2724. <doc xml:space="preserve">the color matrix. Used to convert between Y'PbPr and
  2725. non-linear RGB (R'G'B')</doc>
  2726. <type name="VideoColorMatrix" c:type="GstVideoColorMatrix"/>
  2727. </field>
  2728. <field name="transfer" writable="1">
  2729. <doc xml:space="preserve">the transfer function. used to convert between R'G'B' and RGB</doc>
  2730. <type name="VideoTransferFunction" c:type="GstVideoTransferFunction"/>
  2731. </field>
  2732. <field name="primaries" writable="1">
  2733. <doc xml:space="preserve">color primaries. used to convert between R'G'B' and CIE XYZ</doc>
  2734. <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
  2735. </field>
  2736. <method name="from_string"
  2737. c:identifier="gst_video_colorimetry_from_string">
  2738. <doc xml:space="preserve">Parse the colorimetry string and update @cinfo with the parsed
  2739. values.</doc>
  2740. <return-value transfer-ownership="none">
  2741. <doc xml:space="preserve">#TRUE if @color points to valid colorimetry info.</doc>
  2742. <type name="gboolean" c:type="gboolean"/>
  2743. </return-value>
  2744. <parameters>
  2745. <instance-parameter name="cinfo" transfer-ownership="none">
  2746. <doc xml:space="preserve">a #GstVideoColorimetry</doc>
  2747. <type name="VideoColorimetry" c:type="GstVideoColorimetry*"/>
  2748. </instance-parameter>
  2749. <parameter name="color" transfer-ownership="none">
  2750. <doc xml:space="preserve">a colorimetry string</doc>
  2751. <type name="utf8" c:type="const gchar*"/>
  2752. </parameter>
  2753. </parameters>
  2754. </method>
  2755. <method name="is_equal"
  2756. c:identifier="gst_video_colorimetry_is_equal"
  2757. version="1.6">
  2758. <doc xml:space="preserve">Compare the 2 colorimetry sets for equality</doc>
  2759. <return-value transfer-ownership="none">
  2760. <doc xml:space="preserve">#TRUE if @cinfo and @other are equal.</doc>
  2761. <type name="gboolean" c:type="gboolean"/>
  2762. </return-value>
  2763. <parameters>
  2764. <instance-parameter name="cinfo" transfer-ownership="none">
  2765. <doc xml:space="preserve">a #GstVideoColorimetry</doc>
  2766. <type name="VideoColorimetry" c:type="const GstVideoColorimetry*"/>
  2767. </instance-parameter>
  2768. <parameter name="other" transfer-ownership="none">
  2769. <doc xml:space="preserve">another #GstVideoColorimetry</doc>
  2770. <type name="VideoColorimetry" c:type="const GstVideoColorimetry*"/>
  2771. </parameter>
  2772. </parameters>
  2773. </method>
  2774. <method name="matches" c:identifier="gst_video_colorimetry_matches">
  2775. <doc xml:space="preserve">Check if the colorimetry information in @info matches that of the
  2776. string @color.</doc>
  2777. <return-value transfer-ownership="none">
  2778. <doc xml:space="preserve">#TRUE if @color conveys the same colorimetry info as the color
  2779. information in @info.</doc>
  2780. <type name="gboolean" c:type="gboolean"/>
  2781. </return-value>
  2782. <parameters>
  2783. <instance-parameter name="cinfo" transfer-ownership="none">
  2784. <doc xml:space="preserve">a #GstVideoInfo</doc>
  2785. <type name="VideoColorimetry" c:type="GstVideoColorimetry*"/>
  2786. </instance-parameter>
  2787. <parameter name="color" transfer-ownership="none">
  2788. <doc xml:space="preserve">a colorimetry string</doc>
  2789. <type name="utf8" c:type="const gchar*"/>
  2790. </parameter>
  2791. </parameters>
  2792. </method>
  2793. <method name="to_string" c:identifier="gst_video_colorimetry_to_string">
  2794. <doc xml:space="preserve">Make a string representation of @cinfo.</doc>
  2795. <return-value transfer-ownership="full">
  2796. <doc xml:space="preserve">a string representation of @cinfo.</doc>
  2797. <type name="utf8" c:type="gchar*"/>
  2798. </return-value>
  2799. <parameters>
  2800. <instance-parameter name="cinfo" transfer-ownership="none">
  2801. <doc xml:space="preserve">a #GstVideoColorimetry</doc>
  2802. <type name="VideoColorimetry" c:type="GstVideoColorimetry*"/>
  2803. </instance-parameter>
  2804. </parameters>
  2805. </method>
  2806. </record>
  2807. <callback name="VideoConvertSampleCallback"
  2808. c:type="GstVideoConvertSampleCallback">
  2809. <return-value transfer-ownership="none">
  2810. <type name="none" c:type="void"/>
  2811. </return-value>
  2812. <parameters>
  2813. <parameter name="sample" transfer-ownership="none">
  2814. <type name="Gst.Sample" c:type="GstSample*"/>
  2815. </parameter>
  2816. <parameter name="error" transfer-ownership="none">
  2817. <type name="GLib.Error" c:type="GError*"/>
  2818. </parameter>
  2819. <parameter name="user_data"
  2820. transfer-ownership="none"
  2821. nullable="1"
  2822. allow-none="1"
  2823. closure="2">
  2824. <type name="gpointer" c:type="gpointer"/>
  2825. </parameter>
  2826. </parameters>
  2827. </callback>
  2828. <record name="VideoConverter" c:type="GstVideoConverter" disguised="1">
  2829. <method name="frame"
  2830. c:identifier="gst_video_converter_frame"
  2831. version="1.6">
  2832. <doc xml:space="preserve">Convert the pixels of @src into @dest using @convert.</doc>
  2833. <return-value transfer-ownership="none">
  2834. <type name="none" c:type="void"/>
  2835. </return-value>
  2836. <parameters>
  2837. <instance-parameter name="convert" transfer-ownership="none">
  2838. <doc xml:space="preserve">a #GstVideoConverter</doc>
  2839. <type name="VideoConverter" c:type="GstVideoConverter*"/>
  2840. </instance-parameter>
  2841. <parameter name="src" transfer-ownership="none">
  2842. <doc xml:space="preserve">a #GstVideoFrame</doc>
  2843. <type name="VideoFrame" c:type="const GstVideoFrame*"/>
  2844. </parameter>
  2845. <parameter name="dest" transfer-ownership="none">
  2846. <doc xml:space="preserve">a #GstVideoFrame</doc>
  2847. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  2848. </parameter>
  2849. </parameters>
  2850. </method>
  2851. <method name="free"
  2852. c:identifier="gst_video_converter_free"
  2853. version="1.6">
  2854. <doc xml:space="preserve">Free @convert</doc>
  2855. <return-value transfer-ownership="none">
  2856. <type name="none" c:type="void"/>
  2857. </return-value>
  2858. <parameters>
  2859. <instance-parameter name="convert" transfer-ownership="none">
  2860. <doc xml:space="preserve">a #GstVideoConverter</doc>
  2861. <type name="VideoConverter" c:type="GstVideoConverter*"/>
  2862. </instance-parameter>
  2863. </parameters>
  2864. </method>
  2865. <method name="get_config" c:identifier="gst_video_converter_get_config">
  2866. <doc xml:space="preserve">Get the current configuration of @convert.</doc>
  2867. <return-value transfer-ownership="none">
  2868. <doc xml:space="preserve">a #GstStructure that remains valid for as long as @convert is valid
  2869. or until gst_video_converter_set_config() is called.</doc>
  2870. <type name="Gst.Structure" c:type="const GstStructure*"/>
  2871. </return-value>
  2872. <parameters>
  2873. <instance-parameter name="convert" transfer-ownership="none">
  2874. <doc xml:space="preserve">a #GstVideoConverter</doc>
  2875. <type name="VideoConverter" c:type="GstVideoConverter*"/>
  2876. </instance-parameter>
  2877. </parameters>
  2878. </method>
  2879. <method name="set_config"
  2880. c:identifier="gst_video_converter_set_config"
  2881. version="1.6">
  2882. <doc xml:space="preserve">Set @config as extra configuraion for @convert.
  2883. If the parameters in @config can not be set exactly, this function returns
  2884. %FALSE and will try to update as much state as possible. The new state can
  2885. then be retrieved and refined with gst_video_converter_get_config().
  2886. Look at the #GST_VIDEO_CONVERTER_OPT_* fields to check valid configuration
  2887. option and values.</doc>
  2888. <return-value transfer-ownership="none">
  2889. <doc xml:space="preserve">%TRUE when @config could be set.</doc>
  2890. <type name="gboolean" c:type="gboolean"/>
  2891. </return-value>
  2892. <parameters>
  2893. <instance-parameter name="convert" transfer-ownership="none">
  2894. <doc xml:space="preserve">a #GstVideoConverter</doc>
  2895. <type name="VideoConverter" c:type="GstVideoConverter*"/>
  2896. </instance-parameter>
  2897. <parameter name="config" transfer-ownership="full">
  2898. <doc xml:space="preserve">a #GstStructure</doc>
  2899. <type name="Gst.Structure" c:type="GstStructure*"/>
  2900. </parameter>
  2901. </parameters>
  2902. </method>
  2903. <function name="new"
  2904. c:identifier="gst_video_converter_new"
  2905. version="1.6"
  2906. introspectable="0">
  2907. <doc xml:space="preserve">Create a new converter object to convert between @in_info and @out_info
  2908. with @config.</doc>
  2909. <return-value>
  2910. <doc xml:space="preserve">a #GstVideoConverter or %NULL if conversion is not possible.</doc>
  2911. <type name="VideoConverter" c:type="GstVideoConverter*"/>
  2912. </return-value>
  2913. <parameters>
  2914. <parameter name="in_info" transfer-ownership="none">
  2915. <doc xml:space="preserve">a #GstVideoInfo</doc>
  2916. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  2917. </parameter>
  2918. <parameter name="out_info" transfer-ownership="none">
  2919. <doc xml:space="preserve">a #GstVideoInfo</doc>
  2920. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  2921. </parameter>
  2922. <parameter name="config" transfer-ownership="full">
  2923. <doc xml:space="preserve">a #GstStructure with configuration options</doc>
  2924. <type name="Gst.Structure" c:type="GstStructure*"/>
  2925. </parameter>
  2926. </parameters>
  2927. </function>
  2928. </record>
  2929. <record name="VideoCropMeta" c:type="GstVideoCropMeta">
  2930. <doc xml:space="preserve">Extra buffer metadata describing image cropping.</doc>
  2931. <field name="meta" writable="1">
  2932. <doc xml:space="preserve">parent #GstMeta</doc>
  2933. <type name="Gst.Meta" c:type="GstMeta"/>
  2934. </field>
  2935. <field name="x" writable="1">
  2936. <doc xml:space="preserve">the horizontal offset</doc>
  2937. <type name="guint" c:type="guint"/>
  2938. </field>
  2939. <field name="y" writable="1">
  2940. <doc xml:space="preserve">the vertical offset</doc>
  2941. <type name="guint" c:type="guint"/>
  2942. </field>
  2943. <field name="width" writable="1">
  2944. <doc xml:space="preserve">the cropped width</doc>
  2945. <type name="guint" c:type="guint"/>
  2946. </field>
  2947. <field name="height" writable="1">
  2948. <doc xml:space="preserve">the cropped height</doc>
  2949. <type name="guint" c:type="guint"/>
  2950. </field>
  2951. <function name="get_info" c:identifier="gst_video_crop_meta_get_info">
  2952. <return-value transfer-ownership="none">
  2953. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  2954. </return-value>
  2955. </function>
  2956. </record>
  2957. <class name="VideoDecoder"
  2958. c:symbol-prefix="video_decoder"
  2959. c:type="GstVideoDecoder"
  2960. parent="Gst.Element"
  2961. abstract="1"
  2962. glib:type-name="GstVideoDecoder"
  2963. glib:get-type="gst_video_decoder_get_type"
  2964. glib:type-struct="VideoDecoderClass">
  2965. <doc xml:space="preserve">This base class is for video decoders turning encoded data into raw video
  2966. frames.
  2967. The GstVideoDecoder base class and derived subclasses should cooperate as
  2968. follows:
  2969. &lt;orderedlist&gt;
  2970. &lt;listitem&gt;
  2971. &lt;itemizedlist&gt;&lt;title&gt;Configuration&lt;/title&gt;
  2972. &lt;listitem&gt;&lt;para&gt;
  2973. Initially, GstVideoDecoder calls @start when the decoder element
  2974. is activated, which allows the subclass to perform any global setup.
  2975. &lt;/para&gt;&lt;/listitem&gt;
  2976. &lt;listitem&gt;&lt;para&gt;
  2977. GstVideoDecoder calls @set_format to inform the subclass of caps
  2978. describing input video data that it is about to receive, including
  2979. possibly configuration data.
  2980. While unlikely, it might be called more than once, if changing input
  2981. parameters require reconfiguration.
  2982. &lt;/para&gt;&lt;/listitem&gt;
  2983. &lt;listitem&gt;&lt;para&gt;
  2984. Incoming data buffers are processed as needed, described in Data
  2985. Processing below.
  2986. &lt;/para&gt;&lt;/listitem&gt;
  2987. &lt;listitem&gt;&lt;para&gt;
  2988. GstVideoDecoder calls @stop at end of all processing.
  2989. &lt;/para&gt;&lt;/listitem&gt;
  2990. &lt;/itemizedlist&gt;
  2991. &lt;/listitem&gt;
  2992. &lt;listitem&gt;
  2993. &lt;itemizedlist&gt;
  2994. &lt;title&gt;Data processing&lt;/title&gt;
  2995. &lt;listitem&gt;&lt;para&gt;
  2996. The base class gathers input data, and optionally allows subclass
  2997. to parse this into subsequently manageable chunks, typically
  2998. corresponding to and referred to as 'frames'.
  2999. &lt;/para&gt;&lt;/listitem&gt;
  3000. &lt;listitem&gt;&lt;para&gt;
  3001. Each input frame is provided in turn to the subclass' @handle_frame
  3002. callback.
  3003. The ownership of the frame is given to the @handle_frame callback.
  3004. &lt;/para&gt;&lt;/listitem&gt;
  3005. &lt;listitem&gt;&lt;para&gt;
  3006. If codec processing results in decoded data, the subclass should call
  3007. @gst_video_decoder_finish_frame to have decoded data pushed.
  3008. downstream. Otherwise, the subclass must call
  3009. @gst_video_decoder_drop_frame, to allow the base class to do timestamp
  3010. and offset tracking, and possibly to requeue the frame for a later
  3011. attempt in the case of reverse playback.
  3012. &lt;/para&gt;&lt;/listitem&gt;
  3013. &lt;/itemizedlist&gt;
  3014. &lt;/listitem&gt;
  3015. &lt;listitem&gt;
  3016. &lt;itemizedlist&gt;&lt;title&gt;Shutdown phase&lt;/title&gt;
  3017. &lt;listitem&gt;&lt;para&gt;
  3018. The GstVideoDecoder class calls @stop to inform the subclass that data
  3019. parsing will be stopped.
  3020. &lt;/para&gt;&lt;/listitem&gt;
  3021. &lt;/itemizedlist&gt;
  3022. &lt;/listitem&gt;
  3023. &lt;listitem&gt;
  3024. &lt;itemizedlist&gt;&lt;title&gt;Additional Notes&lt;/title&gt;
  3025. &lt;listitem&gt;
  3026. &lt;itemizedlist&gt;&lt;title&gt;Seeking/Flushing&lt;/title&gt;
  3027. &lt;listitem&gt;&lt;para&gt;
  3028. When the pipeline is seeked or otherwise flushed, the subclass is
  3029. informed via a call to its @reset callback, with the hard parameter
  3030. set to true. This indicates the subclass should drop any internal data
  3031. queues and timestamps and prepare for a fresh set of buffers to arrive
  3032. for parsing and decoding.
  3033. &lt;/para&gt;&lt;/listitem&gt;
  3034. &lt;/itemizedlist&gt;
  3035. &lt;/listitem&gt;
  3036. &lt;listitem&gt;
  3037. &lt;itemizedlist&gt;&lt;title&gt;End Of Stream&lt;/title&gt;
  3038. &lt;listitem&gt;&lt;para&gt;
  3039. At end-of-stream, the subclass @parse function may be called some final
  3040. times with the at_eos parameter set to true, indicating that the element
  3041. should not expect any more data to be arriving, and it should parse and
  3042. remaining frames and call gst_video_decoder_have_frame() if possible.
  3043. &lt;/para&gt;&lt;/listitem&gt;
  3044. &lt;/itemizedlist&gt;
  3045. &lt;/listitem&gt;
  3046. &lt;/itemizedlist&gt;
  3047. &lt;/listitem&gt;
  3048. &lt;/orderedlist&gt;
  3049. The subclass is responsible for providing pad template caps for
  3050. source and sink pads. The pads need to be named "sink" and "src". It also
  3051. needs to provide information about the ouptput caps, when they are known.
  3052. This may be when the base class calls the subclass' @set_format function,
  3053. though it might be during decoding, before calling
  3054. @gst_video_decoder_finish_frame. This is done via
  3055. @gst_video_decoder_set_output_state
  3056. The subclass is also responsible for providing (presentation) timestamps
  3057. (likely based on corresponding input ones). If that is not applicable
  3058. or possible, the base class provides limited framerate based interpolation.
  3059. Similarly, the base class provides some limited (legacy) seeking support
  3060. if specifically requested by the subclass, as full-fledged support
  3061. should rather be left to upstream demuxer, parser or alike. This simple
  3062. approach caters for seeking and duration reporting using estimated input
  3063. bitrates. To enable it, a subclass should call
  3064. @gst_video_decoder_set_estimate_rate to enable handling of incoming
  3065. byte-streams.
  3066. The base class provides some support for reverse playback, in particular
  3067. in case incoming data is not packetized or upstream does not provide
  3068. fragments on keyframe boundaries. However, the subclass should then be
  3069. prepared for the parsing and frame processing stage to occur separately
  3070. (in normal forward processing, the latter immediately follows the former),
  3071. The subclass also needs to ensure the parsing stage properly marks
  3072. keyframes, unless it knows the upstream elements will do so properly for
  3073. incoming data.
  3074. The bare minimum that a functional subclass needs to implement is:
  3075. &lt;itemizedlist&gt;
  3076. &lt;listitem&gt;&lt;para&gt;Provide pad templates&lt;/para&gt;&lt;/listitem&gt;
  3077. &lt;listitem&gt;&lt;para&gt;
  3078. Inform the base class of output caps via
  3079. @gst_video_decoder_set_output_state
  3080. &lt;/para&gt;&lt;/listitem&gt;
  3081. &lt;listitem&gt;&lt;para&gt;
  3082. Parse input data, if it is not considered packetized from upstream
  3083. Data will be provided to @parse which should invoke
  3084. @gst_video_decoder_add_to_frame and @gst_video_decoder_have_frame to
  3085. separate the data belonging to each video frame.
  3086. &lt;/para&gt;&lt;/listitem&gt;
  3087. &lt;listitem&gt;&lt;para&gt;
  3088. Accept data in @handle_frame and provide decoded results to
  3089. @gst_video_decoder_finish_frame, or call @gst_video_decoder_drop_frame.
  3090. &lt;/para&gt;&lt;/listitem&gt;
  3091. &lt;/itemizedlist&gt;</doc>
  3092. <virtual-method name="close">
  3093. <return-value transfer-ownership="none">
  3094. <type name="gboolean" c:type="gboolean"/>
  3095. </return-value>
  3096. <parameters>
  3097. <instance-parameter name="decoder" transfer-ownership="none">
  3098. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3099. </instance-parameter>
  3100. </parameters>
  3101. </virtual-method>
  3102. <virtual-method name="decide_allocation">
  3103. <return-value transfer-ownership="none">
  3104. <type name="gboolean" c:type="gboolean"/>
  3105. </return-value>
  3106. <parameters>
  3107. <instance-parameter name="decoder" transfer-ownership="none">
  3108. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3109. </instance-parameter>
  3110. <parameter name="query" transfer-ownership="none">
  3111. <type name="Gst.Query" c:type="GstQuery*"/>
  3112. </parameter>
  3113. </parameters>
  3114. </virtual-method>
  3115. <virtual-method name="drain">
  3116. <return-value transfer-ownership="none">
  3117. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3118. </return-value>
  3119. <parameters>
  3120. <instance-parameter name="decoder" transfer-ownership="none">
  3121. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3122. </instance-parameter>
  3123. </parameters>
  3124. </virtual-method>
  3125. <virtual-method name="finish">
  3126. <return-value transfer-ownership="none">
  3127. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3128. </return-value>
  3129. <parameters>
  3130. <instance-parameter name="decoder" transfer-ownership="none">
  3131. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3132. </instance-parameter>
  3133. </parameters>
  3134. </virtual-method>
  3135. <virtual-method name="flush">
  3136. <return-value transfer-ownership="none">
  3137. <type name="gboolean" c:type="gboolean"/>
  3138. </return-value>
  3139. <parameters>
  3140. <instance-parameter name="decoder" transfer-ownership="none">
  3141. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3142. </instance-parameter>
  3143. </parameters>
  3144. </virtual-method>
  3145. <virtual-method name="getcaps">
  3146. <return-value transfer-ownership="full">
  3147. <type name="Gst.Caps" c:type="GstCaps*"/>
  3148. </return-value>
  3149. <parameters>
  3150. <instance-parameter name="decoder" transfer-ownership="none">
  3151. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3152. </instance-parameter>
  3153. <parameter name="filter" transfer-ownership="none">
  3154. <type name="Gst.Caps" c:type="GstCaps*"/>
  3155. </parameter>
  3156. </parameters>
  3157. </virtual-method>
  3158. <virtual-method name="handle_frame">
  3159. <return-value transfer-ownership="none">
  3160. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3161. </return-value>
  3162. <parameters>
  3163. <instance-parameter name="decoder" transfer-ownership="none">
  3164. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3165. </instance-parameter>
  3166. <parameter name="frame" transfer-ownership="none">
  3167. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3168. </parameter>
  3169. </parameters>
  3170. </virtual-method>
  3171. <virtual-method name="negotiate" invoker="negotiate">
  3172. <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
  3173. Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
  3174. negotiate fails.</doc>
  3175. <return-value transfer-ownership="none">
  3176. <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
  3177. <type name="gboolean" c:type="gboolean"/>
  3178. </return-value>
  3179. <parameters>
  3180. <instance-parameter name="decoder" transfer-ownership="none">
  3181. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3182. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3183. </instance-parameter>
  3184. </parameters>
  3185. </virtual-method>
  3186. <virtual-method name="open">
  3187. <return-value transfer-ownership="none">
  3188. <type name="gboolean" c:type="gboolean"/>
  3189. </return-value>
  3190. <parameters>
  3191. <instance-parameter name="decoder" transfer-ownership="none">
  3192. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3193. </instance-parameter>
  3194. </parameters>
  3195. </virtual-method>
  3196. <virtual-method name="parse">
  3197. <return-value transfer-ownership="none">
  3198. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3199. </return-value>
  3200. <parameters>
  3201. <instance-parameter name="decoder" transfer-ownership="none">
  3202. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3203. </instance-parameter>
  3204. <parameter name="frame" transfer-ownership="none">
  3205. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3206. </parameter>
  3207. <parameter name="adapter" transfer-ownership="none">
  3208. <type name="GstBase.Adapter" c:type="GstAdapter*"/>
  3209. </parameter>
  3210. <parameter name="at_eos" transfer-ownership="none">
  3211. <type name="gboolean" c:type="gboolean"/>
  3212. </parameter>
  3213. </parameters>
  3214. </virtual-method>
  3215. <virtual-method name="propose_allocation">
  3216. <return-value transfer-ownership="none">
  3217. <type name="gboolean" c:type="gboolean"/>
  3218. </return-value>
  3219. <parameters>
  3220. <instance-parameter name="decoder" transfer-ownership="none">
  3221. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3222. </instance-parameter>
  3223. <parameter name="query" transfer-ownership="none">
  3224. <type name="Gst.Query" c:type="GstQuery*"/>
  3225. </parameter>
  3226. </parameters>
  3227. </virtual-method>
  3228. <virtual-method name="reset">
  3229. <return-value transfer-ownership="none">
  3230. <type name="gboolean" c:type="gboolean"/>
  3231. </return-value>
  3232. <parameters>
  3233. <instance-parameter name="decoder" transfer-ownership="none">
  3234. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3235. </instance-parameter>
  3236. <parameter name="hard" transfer-ownership="none">
  3237. <type name="gboolean" c:type="gboolean"/>
  3238. </parameter>
  3239. </parameters>
  3240. </virtual-method>
  3241. <virtual-method name="set_format">
  3242. <return-value transfer-ownership="none">
  3243. <type name="gboolean" c:type="gboolean"/>
  3244. </return-value>
  3245. <parameters>
  3246. <instance-parameter name="decoder" transfer-ownership="none">
  3247. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3248. </instance-parameter>
  3249. <parameter name="state" transfer-ownership="none">
  3250. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  3251. </parameter>
  3252. </parameters>
  3253. </virtual-method>
  3254. <virtual-method name="sink_event">
  3255. <return-value transfer-ownership="none">
  3256. <type name="gboolean" c:type="gboolean"/>
  3257. </return-value>
  3258. <parameters>
  3259. <instance-parameter name="decoder" transfer-ownership="none">
  3260. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3261. </instance-parameter>
  3262. <parameter name="event" transfer-ownership="none">
  3263. <type name="Gst.Event" c:type="GstEvent*"/>
  3264. </parameter>
  3265. </parameters>
  3266. </virtual-method>
  3267. <virtual-method name="sink_query">
  3268. <return-value transfer-ownership="none">
  3269. <type name="gboolean" c:type="gboolean"/>
  3270. </return-value>
  3271. <parameters>
  3272. <instance-parameter name="decoder" transfer-ownership="none">
  3273. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3274. </instance-parameter>
  3275. <parameter name="query" transfer-ownership="none">
  3276. <type name="Gst.Query" c:type="GstQuery*"/>
  3277. </parameter>
  3278. </parameters>
  3279. </virtual-method>
  3280. <virtual-method name="src_event">
  3281. <return-value transfer-ownership="none">
  3282. <type name="gboolean" c:type="gboolean"/>
  3283. </return-value>
  3284. <parameters>
  3285. <instance-parameter name="decoder" transfer-ownership="none">
  3286. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3287. </instance-parameter>
  3288. <parameter name="event" transfer-ownership="none">
  3289. <type name="Gst.Event" c:type="GstEvent*"/>
  3290. </parameter>
  3291. </parameters>
  3292. </virtual-method>
  3293. <virtual-method name="src_query">
  3294. <return-value transfer-ownership="none">
  3295. <type name="gboolean" c:type="gboolean"/>
  3296. </return-value>
  3297. <parameters>
  3298. <instance-parameter name="decoder" transfer-ownership="none">
  3299. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3300. </instance-parameter>
  3301. <parameter name="query" transfer-ownership="none">
  3302. <type name="Gst.Query" c:type="GstQuery*"/>
  3303. </parameter>
  3304. </parameters>
  3305. </virtual-method>
  3306. <virtual-method name="start">
  3307. <return-value transfer-ownership="none">
  3308. <type name="gboolean" c:type="gboolean"/>
  3309. </return-value>
  3310. <parameters>
  3311. <instance-parameter name="decoder" transfer-ownership="none">
  3312. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3313. </instance-parameter>
  3314. </parameters>
  3315. </virtual-method>
  3316. <virtual-method name="stop">
  3317. <return-value transfer-ownership="none">
  3318. <type name="gboolean" c:type="gboolean"/>
  3319. </return-value>
  3320. <parameters>
  3321. <instance-parameter name="decoder" transfer-ownership="none">
  3322. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3323. </instance-parameter>
  3324. </parameters>
  3325. </virtual-method>
  3326. <virtual-method name="transform_meta">
  3327. <return-value transfer-ownership="none">
  3328. <type name="gboolean" c:type="gboolean"/>
  3329. </return-value>
  3330. <parameters>
  3331. <instance-parameter name="decoder" transfer-ownership="none">
  3332. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3333. </instance-parameter>
  3334. <parameter name="frame" transfer-ownership="none">
  3335. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3336. </parameter>
  3337. <parameter name="meta" transfer-ownership="none">
  3338. <type name="Gst.Meta" c:type="GstMeta*"/>
  3339. </parameter>
  3340. </parameters>
  3341. </virtual-method>
  3342. <method name="add_to_frame"
  3343. c:identifier="gst_video_decoder_add_to_frame">
  3344. <doc xml:space="preserve">Removes next @n_bytes of input data and adds it to currently parsed frame.</doc>
  3345. <return-value transfer-ownership="none">
  3346. <type name="none" c:type="void"/>
  3347. </return-value>
  3348. <parameters>
  3349. <instance-parameter name="decoder" transfer-ownership="none">
  3350. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3351. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3352. </instance-parameter>
  3353. <parameter name="n_bytes" transfer-ownership="none">
  3354. <doc xml:space="preserve">the number of bytes to add</doc>
  3355. <type name="gint" c:type="int"/>
  3356. </parameter>
  3357. </parameters>
  3358. </method>
  3359. <method name="allocate_output_buffer"
  3360. c:identifier="gst_video_decoder_allocate_output_buffer">
  3361. <doc xml:space="preserve">Helper function that allocates a buffer to hold a video frame for @decoder's
  3362. current #GstVideoCodecState.
  3363. You should use gst_video_decoder_allocate_output_frame() instead of this
  3364. function, if possible at all.</doc>
  3365. <return-value transfer-ownership="full">
  3366. <doc xml:space="preserve">allocated buffer, or NULL if no buffer could be
  3367. allocated (e.g. when downstream is flushing or shutting down)</doc>
  3368. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  3369. </return-value>
  3370. <parameters>
  3371. <instance-parameter name="decoder" transfer-ownership="none">
  3372. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3373. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3374. </instance-parameter>
  3375. </parameters>
  3376. </method>
  3377. <method name="allocate_output_frame"
  3378. c:identifier="gst_video_decoder_allocate_output_frame">
  3379. <doc xml:space="preserve">Helper function that allocates a buffer to hold a video frame for @decoder's
  3380. current #GstVideoCodecState. Subclass should already have configured video
  3381. state and set src pad caps.
  3382. The buffer allocated here is owned by the frame and you should only
  3383. keep references to the frame, not the buffer.</doc>
  3384. <return-value transfer-ownership="none">
  3385. <doc xml:space="preserve">%GST_FLOW_OK if an output buffer could be allocated</doc>
  3386. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3387. </return-value>
  3388. <parameters>
  3389. <instance-parameter name="decoder" transfer-ownership="none">
  3390. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3391. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3392. </instance-parameter>
  3393. <parameter name="frame" transfer-ownership="none">
  3394. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  3395. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3396. </parameter>
  3397. </parameters>
  3398. </method>
  3399. <method name="drop_frame" c:identifier="gst_video_decoder_drop_frame">
  3400. <doc xml:space="preserve">Similar to gst_video_decoder_finish_frame(), but drops @frame in any
  3401. case and posts a QoS message with the frame's details on the bus.
  3402. In any case, the frame is considered finished and released.</doc>
  3403. <return-value transfer-ownership="none">
  3404. <doc xml:space="preserve">a #GstFlowReturn, usually GST_FLOW_OK.</doc>
  3405. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3406. </return-value>
  3407. <parameters>
  3408. <instance-parameter name="dec" transfer-ownership="none">
  3409. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3410. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3411. </instance-parameter>
  3412. <parameter name="frame" transfer-ownership="full">
  3413. <doc xml:space="preserve">the #GstVideoCodecFrame to drop</doc>
  3414. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3415. </parameter>
  3416. </parameters>
  3417. </method>
  3418. <method name="finish_frame"
  3419. c:identifier="gst_video_decoder_finish_frame">
  3420. <doc xml:space="preserve">@frame should have a valid decoded data buffer, whose metadata fields
  3421. are then appropriately set according to frame data and pushed downstream.
  3422. If no output data is provided, @frame is considered skipped.
  3423. In any case, the frame is considered finished and released.
  3424. After calling this function the output buffer of the frame is to be
  3425. considered read-only. This function will also change the metadata
  3426. of the buffer.</doc>
  3427. <return-value transfer-ownership="none">
  3428. <doc xml:space="preserve">a #GstFlowReturn resulting from sending data downstream</doc>
  3429. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3430. </return-value>
  3431. <parameters>
  3432. <instance-parameter name="decoder" transfer-ownership="none">
  3433. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3434. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3435. </instance-parameter>
  3436. <parameter name="frame" transfer-ownership="full">
  3437. <doc xml:space="preserve">a decoded #GstVideoCodecFrame</doc>
  3438. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3439. </parameter>
  3440. </parameters>
  3441. </method>
  3442. <method name="get_allocator"
  3443. c:identifier="gst_video_decoder_get_allocator">
  3444. <doc xml:space="preserve">Lets #GstVideoDecoder sub-classes to know the memory @allocator
  3445. used by the base class and its @params.
  3446. Unref the @allocator after use it.</doc>
  3447. <return-value transfer-ownership="none">
  3448. <type name="none" c:type="void"/>
  3449. </return-value>
  3450. <parameters>
  3451. <instance-parameter name="decoder" transfer-ownership="none">
  3452. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3453. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3454. </instance-parameter>
  3455. <parameter name="allocator"
  3456. direction="out"
  3457. caller-allocates="0"
  3458. transfer-ownership="full"
  3459. optional="1"
  3460. allow-none="1">
  3461. <doc xml:space="preserve">the #GstAllocator
  3462. used</doc>
  3463. <type name="Gst.Allocator" c:type="GstAllocator**"/>
  3464. </parameter>
  3465. <parameter name="params"
  3466. direction="out"
  3467. caller-allocates="1"
  3468. transfer-ownership="full"
  3469. optional="1"
  3470. allow-none="1">
  3471. <doc xml:space="preserve">the
  3472. #GstAllocatorParams of @allocator</doc>
  3473. <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
  3474. </parameter>
  3475. </parameters>
  3476. </method>
  3477. <method name="get_buffer_pool"
  3478. c:identifier="gst_video_decoder_get_buffer_pool">
  3479. <return-value transfer-ownership="full">
  3480. <doc xml:space="preserve">the instance of the #GstBufferPool used
  3481. by the decoder; free it after use it</doc>
  3482. <type name="Gst.BufferPool" c:type="GstBufferPool*"/>
  3483. </return-value>
  3484. <parameters>
  3485. <instance-parameter name="decoder" transfer-ownership="none">
  3486. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3487. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3488. </instance-parameter>
  3489. </parameters>
  3490. </method>
  3491. <method name="get_estimate_rate"
  3492. c:identifier="gst_video_decoder_get_estimate_rate">
  3493. <return-value transfer-ownership="none">
  3494. <doc xml:space="preserve">currently configured byte to time conversion setting</doc>
  3495. <type name="gint" c:type="gint"/>
  3496. </return-value>
  3497. <parameters>
  3498. <instance-parameter name="dec" transfer-ownership="none">
  3499. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3500. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3501. </instance-parameter>
  3502. </parameters>
  3503. </method>
  3504. <method name="get_frame" c:identifier="gst_video_decoder_get_frame">
  3505. <doc xml:space="preserve">Get a pending unfinished #GstVideoCodecFrame</doc>
  3506. <return-value transfer-ownership="full">
  3507. <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame identified by @frame_number.</doc>
  3508. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3509. </return-value>
  3510. <parameters>
  3511. <instance-parameter name="decoder" transfer-ownership="none">
  3512. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3513. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3514. </instance-parameter>
  3515. <parameter name="frame_number" transfer-ownership="none">
  3516. <doc xml:space="preserve">system_frame_number of a frame</doc>
  3517. <type name="gint" c:type="int"/>
  3518. </parameter>
  3519. </parameters>
  3520. </method>
  3521. <method name="get_frames" c:identifier="gst_video_decoder_get_frames">
  3522. <doc xml:space="preserve">Get all pending unfinished #GstVideoCodecFrame</doc>
  3523. <return-value transfer-ownership="full">
  3524. <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame.</doc>
  3525. <type name="GLib.List" c:type="GList*">
  3526. <type name="VideoCodecFrame"/>
  3527. </type>
  3528. </return-value>
  3529. <parameters>
  3530. <instance-parameter name="decoder" transfer-ownership="none">
  3531. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3532. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3533. </instance-parameter>
  3534. </parameters>
  3535. </method>
  3536. <method name="get_latency" c:identifier="gst_video_decoder_get_latency">
  3537. <doc xml:space="preserve">Query the configured decoder latency. Results will be returned via
  3538. @min_latency and @max_latency.</doc>
  3539. <return-value transfer-ownership="none">
  3540. <type name="none" c:type="void"/>
  3541. </return-value>
  3542. <parameters>
  3543. <instance-parameter name="decoder" transfer-ownership="none">
  3544. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3545. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3546. </instance-parameter>
  3547. <parameter name="min_latency"
  3548. direction="out"
  3549. caller-allocates="0"
  3550. transfer-ownership="full"
  3551. optional="1"
  3552. allow-none="1">
  3553. <doc xml:space="preserve">address of variable in which to store the
  3554. configured minimum latency, or %NULL</doc>
  3555. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  3556. </parameter>
  3557. <parameter name="max_latency"
  3558. direction="out"
  3559. caller-allocates="0"
  3560. transfer-ownership="full"
  3561. optional="1"
  3562. allow-none="1">
  3563. <doc xml:space="preserve">address of variable in which to store the
  3564. configured mximum latency, or %NULL</doc>
  3565. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  3566. </parameter>
  3567. </parameters>
  3568. </method>
  3569. <method name="get_max_decode_time"
  3570. c:identifier="gst_video_decoder_get_max_decode_time">
  3571. <doc xml:space="preserve">Determines maximum possible decoding time for @frame that will
  3572. allow it to decode and arrive in time (as determined by QoS events).
  3573. In particular, a negative result means decoding in time is no longer possible
  3574. and should therefore occur as soon/skippy as possible.</doc>
  3575. <return-value transfer-ownership="none">
  3576. <doc xml:space="preserve">max decoding time.</doc>
  3577. <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
  3578. </return-value>
  3579. <parameters>
  3580. <instance-parameter name="decoder" transfer-ownership="none">
  3581. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3582. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3583. </instance-parameter>
  3584. <parameter name="frame" transfer-ownership="none">
  3585. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  3586. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3587. </parameter>
  3588. </parameters>
  3589. </method>
  3590. <method name="get_max_errors"
  3591. c:identifier="gst_video_decoder_get_max_errors">
  3592. <return-value transfer-ownership="none">
  3593. <doc xml:space="preserve">currently configured decoder tolerated error count.</doc>
  3594. <type name="gint" c:type="gint"/>
  3595. </return-value>
  3596. <parameters>
  3597. <instance-parameter name="dec" transfer-ownership="none">
  3598. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3599. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3600. </instance-parameter>
  3601. </parameters>
  3602. </method>
  3603. <method name="get_needs_format"
  3604. c:identifier="gst_video_decoder_get_needs_format"
  3605. version="1.4">
  3606. <doc xml:space="preserve">Queries decoder required format handling.</doc>
  3607. <return-value transfer-ownership="none">
  3608. <doc xml:space="preserve">%TRUE if required format handling is enabled.</doc>
  3609. <type name="gboolean" c:type="gboolean"/>
  3610. </return-value>
  3611. <parameters>
  3612. <instance-parameter name="dec" transfer-ownership="none">
  3613. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3614. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3615. </instance-parameter>
  3616. </parameters>
  3617. </method>
  3618. <method name="get_oldest_frame"
  3619. c:identifier="gst_video_decoder_get_oldest_frame">
  3620. <doc xml:space="preserve">Get the oldest pending unfinished #GstVideoCodecFrame</doc>
  3621. <return-value transfer-ownership="full">
  3622. <doc xml:space="preserve">oldest pending unfinished #GstVideoCodecFrame.</doc>
  3623. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3624. </return-value>
  3625. <parameters>
  3626. <instance-parameter name="decoder" transfer-ownership="none">
  3627. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3628. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3629. </instance-parameter>
  3630. </parameters>
  3631. </method>
  3632. <method name="get_output_state"
  3633. c:identifier="gst_video_decoder_get_output_state">
  3634. <doc xml:space="preserve">Get the #GstVideoCodecState currently describing the output stream.</doc>
  3635. <return-value transfer-ownership="full">
  3636. <doc xml:space="preserve">#GstVideoCodecState describing format of video data.</doc>
  3637. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  3638. </return-value>
  3639. <parameters>
  3640. <instance-parameter name="decoder" transfer-ownership="none">
  3641. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3642. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3643. </instance-parameter>
  3644. </parameters>
  3645. </method>
  3646. <method name="get_packetized"
  3647. c:identifier="gst_video_decoder_get_packetized">
  3648. <doc xml:space="preserve">Queries whether input data is considered packetized or not by the
  3649. base class.</doc>
  3650. <return-value transfer-ownership="none">
  3651. <doc xml:space="preserve">TRUE if input data is considered packetized.</doc>
  3652. <type name="gboolean" c:type="gboolean"/>
  3653. </return-value>
  3654. <parameters>
  3655. <instance-parameter name="decoder" transfer-ownership="none">
  3656. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3657. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3658. </instance-parameter>
  3659. </parameters>
  3660. </method>
  3661. <method name="get_pending_frame_size"
  3662. c:identifier="gst_video_decoder_get_pending_frame_size"
  3663. version="1.4">
  3664. <doc xml:space="preserve">Returns the number of bytes previously added to the current frame
  3665. by calling gst_video_decoder_add_to_frame().</doc>
  3666. <return-value transfer-ownership="none">
  3667. <doc xml:space="preserve">The number of bytes pending for the current frame</doc>
  3668. <type name="gsize" c:type="gsize"/>
  3669. </return-value>
  3670. <parameters>
  3671. <instance-parameter name="decoder" transfer-ownership="none">
  3672. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3673. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3674. </instance-parameter>
  3675. </parameters>
  3676. </method>
  3677. <method name="get_qos_proportion"
  3678. c:identifier="gst_video_decoder_get_qos_proportion"
  3679. version="1.0.3">
  3680. <return-value transfer-ownership="none">
  3681. <doc xml:space="preserve">The current QoS proportion.</doc>
  3682. <type name="gdouble" c:type="gdouble"/>
  3683. </return-value>
  3684. <parameters>
  3685. <instance-parameter name="decoder" transfer-ownership="none">
  3686. <doc xml:space="preserve">a #GstVideoDecoder
  3687. current QoS proportion, or %NULL</doc>
  3688. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3689. </instance-parameter>
  3690. </parameters>
  3691. </method>
  3692. <method name="have_frame" c:identifier="gst_video_decoder_have_frame">
  3693. <doc xml:space="preserve">Gathers all data collected for currently parsed frame, gathers corresponding
  3694. metadata and passes it along for further processing, i.e. @handle_frame.</doc>
  3695. <return-value transfer-ownership="none">
  3696. <doc xml:space="preserve">a #GstFlowReturn</doc>
  3697. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  3698. </return-value>
  3699. <parameters>
  3700. <instance-parameter name="decoder" transfer-ownership="none">
  3701. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3702. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3703. </instance-parameter>
  3704. </parameters>
  3705. </method>
  3706. <method name="merge_tags" c:identifier="gst_video_decoder_merge_tags">
  3707. <doc xml:space="preserve">Sets the audio decoder tags and how they should be merged with any
  3708. upstream stream tags. This will override any tags previously-set
  3709. with gst_audio_decoder_merge_tags().
  3710. Note that this is provided for convenience, and the subclass is
  3711. not required to use this and can still do tag handling on its own.
  3712. MT safe.</doc>
  3713. <return-value transfer-ownership="none">
  3714. <type name="none" c:type="void"/>
  3715. </return-value>
  3716. <parameters>
  3717. <instance-parameter name="decoder" transfer-ownership="none">
  3718. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3719. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3720. </instance-parameter>
  3721. <parameter name="tags"
  3722. transfer-ownership="none"
  3723. nullable="1"
  3724. allow-none="1">
  3725. <doc xml:space="preserve">a #GstTagList to merge, or NULL to unset
  3726. previously-set tags</doc>
  3727. <type name="Gst.TagList" c:type="const GstTagList*"/>
  3728. </parameter>
  3729. <parameter name="mode" transfer-ownership="none">
  3730. <doc xml:space="preserve">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc>
  3731. <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/>
  3732. </parameter>
  3733. </parameters>
  3734. </method>
  3735. <method name="negotiate" c:identifier="gst_video_decoder_negotiate">
  3736. <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
  3737. Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
  3738. negotiate fails.</doc>
  3739. <return-value transfer-ownership="none">
  3740. <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
  3741. <type name="gboolean" c:type="gboolean"/>
  3742. </return-value>
  3743. <parameters>
  3744. <instance-parameter name="decoder" transfer-ownership="none">
  3745. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3746. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3747. </instance-parameter>
  3748. </parameters>
  3749. </method>
  3750. <method name="proxy_getcaps"
  3751. c:identifier="gst_video_decoder_proxy_getcaps"
  3752. version="1.6">
  3753. <doc xml:space="preserve">Returns caps that express @caps (or sink template caps if @caps == NULL)
  3754. restricted to resolution/format/... combinations supported by downstream
  3755. elements.</doc>
  3756. <return-value transfer-ownership="full">
  3757. <doc xml:space="preserve">a #GstCaps owned by caller</doc>
  3758. <type name="Gst.Caps" c:type="GstCaps*"/>
  3759. </return-value>
  3760. <parameters>
  3761. <instance-parameter name="decoder" transfer-ownership="none">
  3762. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3763. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3764. </instance-parameter>
  3765. <parameter name="caps"
  3766. transfer-ownership="none"
  3767. nullable="1"
  3768. allow-none="1">
  3769. <doc xml:space="preserve">initial caps</doc>
  3770. <type name="Gst.Caps" c:type="GstCaps*"/>
  3771. </parameter>
  3772. <parameter name="filter"
  3773. transfer-ownership="none"
  3774. nullable="1"
  3775. allow-none="1">
  3776. <doc xml:space="preserve">filter caps</doc>
  3777. <type name="Gst.Caps" c:type="GstCaps*"/>
  3778. </parameter>
  3779. </parameters>
  3780. </method>
  3781. <method name="release_frame"
  3782. c:identifier="gst_video_decoder_release_frame"
  3783. version="1.2.2">
  3784. <doc xml:space="preserve">Similar to gst_video_decoder_drop_frame(), but simply releases @frame
  3785. without any processing other than removing it from list of pending frames,
  3786. after which it is considered finished and released.</doc>
  3787. <return-value transfer-ownership="none">
  3788. <type name="none" c:type="void"/>
  3789. </return-value>
  3790. <parameters>
  3791. <instance-parameter name="dec" transfer-ownership="none">
  3792. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3793. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3794. </instance-parameter>
  3795. <parameter name="frame" transfer-ownership="full">
  3796. <doc xml:space="preserve">the #GstVideoCodecFrame to release</doc>
  3797. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  3798. </parameter>
  3799. </parameters>
  3800. </method>
  3801. <method name="set_estimate_rate"
  3802. c:identifier="gst_video_decoder_set_estimate_rate">
  3803. <doc xml:space="preserve">Allows baseclass to perform byte to time estimated conversion.</doc>
  3804. <return-value transfer-ownership="none">
  3805. <type name="none" c:type="void"/>
  3806. </return-value>
  3807. <parameters>
  3808. <instance-parameter name="dec" transfer-ownership="none">
  3809. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3810. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3811. </instance-parameter>
  3812. <parameter name="enabled" transfer-ownership="none">
  3813. <doc xml:space="preserve">whether to enable byte to time conversion</doc>
  3814. <type name="gboolean" c:type="gboolean"/>
  3815. </parameter>
  3816. </parameters>
  3817. </method>
  3818. <method name="set_latency" c:identifier="gst_video_decoder_set_latency">
  3819. <doc xml:space="preserve">Lets #GstVideoDecoder sub-classes tell the baseclass what the decoder
  3820. latency is. Will also post a LATENCY message on the bus so the pipeline
  3821. can reconfigure its global latency.</doc>
  3822. <return-value transfer-ownership="none">
  3823. <type name="none" c:type="void"/>
  3824. </return-value>
  3825. <parameters>
  3826. <instance-parameter name="decoder" transfer-ownership="none">
  3827. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3828. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3829. </instance-parameter>
  3830. <parameter name="min_latency" transfer-ownership="none">
  3831. <doc xml:space="preserve">minimum latency</doc>
  3832. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  3833. </parameter>
  3834. <parameter name="max_latency" transfer-ownership="none">
  3835. <doc xml:space="preserve">maximum latency</doc>
  3836. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  3837. </parameter>
  3838. </parameters>
  3839. </method>
  3840. <method name="set_max_errors"
  3841. c:identifier="gst_video_decoder_set_max_errors">
  3842. <doc xml:space="preserve">Sets numbers of tolerated decoder errors, where a tolerated one is then only
  3843. warned about, but more than tolerated will lead to fatal error. You can set
  3844. -1 for never returning fatal errors. Default is set to
  3845. GST_VIDEO_DECODER_MAX_ERRORS.
  3846. The '-1' option was added in 1.4</doc>
  3847. <return-value transfer-ownership="none">
  3848. <type name="none" c:type="void"/>
  3849. </return-value>
  3850. <parameters>
  3851. <instance-parameter name="dec" transfer-ownership="none">
  3852. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3853. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3854. </instance-parameter>
  3855. <parameter name="num" transfer-ownership="none">
  3856. <doc xml:space="preserve">max tolerated errors</doc>
  3857. <type name="gint" c:type="gint"/>
  3858. </parameter>
  3859. </parameters>
  3860. </method>
  3861. <method name="set_needs_format"
  3862. c:identifier="gst_video_decoder_set_needs_format"
  3863. version="1.4">
  3864. <doc xml:space="preserve">Configures decoder format needs. If enabled, subclass needs to be
  3865. negotiated with format caps before it can process any data. It will then
  3866. never be handed any data before it has been configured.
  3867. Otherwise, it might be handed data without having been configured and
  3868. is then expected being able to do so either by default
  3869. or based on the input data.</doc>
  3870. <return-value transfer-ownership="none">
  3871. <type name="none" c:type="void"/>
  3872. </return-value>
  3873. <parameters>
  3874. <instance-parameter name="dec" transfer-ownership="none">
  3875. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3876. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3877. </instance-parameter>
  3878. <parameter name="enabled" transfer-ownership="none">
  3879. <doc xml:space="preserve">new state</doc>
  3880. <type name="gboolean" c:type="gboolean"/>
  3881. </parameter>
  3882. </parameters>
  3883. </method>
  3884. <method name="set_output_state"
  3885. c:identifier="gst_video_decoder_set_output_state">
  3886. <doc xml:space="preserve">Creates a new #GstVideoCodecState with the specified @fmt, @width and @height
  3887. as the output state for the decoder.
  3888. Any previously set output state on @decoder will be replaced by the newly
  3889. created one.
  3890. If the subclass wishes to copy over existing fields (like pixel aspec ratio,
  3891. or framerate) from an existing #GstVideoCodecState, it can be provided as a
  3892. @reference.
  3893. If the subclass wishes to override some fields from the output state (like
  3894. pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.
  3895. The new output state will only take effect (set on pads and buffers) starting
  3896. from the next call to #gst_video_decoder_finish_frame().</doc>
  3897. <return-value transfer-ownership="full">
  3898. <doc xml:space="preserve">the newly configured output state.</doc>
  3899. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  3900. </return-value>
  3901. <parameters>
  3902. <instance-parameter name="decoder" transfer-ownership="none">
  3903. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3904. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3905. </instance-parameter>
  3906. <parameter name="fmt" transfer-ownership="none">
  3907. <doc xml:space="preserve">a #GstVideoFormat</doc>
  3908. <type name="VideoFormat" c:type="GstVideoFormat"/>
  3909. </parameter>
  3910. <parameter name="width" transfer-ownership="none">
  3911. <doc xml:space="preserve">The width in pixels</doc>
  3912. <type name="guint" c:type="guint"/>
  3913. </parameter>
  3914. <parameter name="height" transfer-ownership="none">
  3915. <doc xml:space="preserve">The height in pixels</doc>
  3916. <type name="guint" c:type="guint"/>
  3917. </parameter>
  3918. <parameter name="reference"
  3919. transfer-ownership="none"
  3920. nullable="1"
  3921. allow-none="1">
  3922. <doc xml:space="preserve">An optional reference #GstVideoCodecState</doc>
  3923. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  3924. </parameter>
  3925. </parameters>
  3926. </method>
  3927. <method name="set_packetized"
  3928. c:identifier="gst_video_decoder_set_packetized">
  3929. <doc xml:space="preserve">Allows baseclass to consider input data as packetized or not. If the
  3930. input is packetized, then the @parse method will not be called.</doc>
  3931. <return-value transfer-ownership="none">
  3932. <type name="none" c:type="void"/>
  3933. </return-value>
  3934. <parameters>
  3935. <instance-parameter name="decoder" transfer-ownership="none">
  3936. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3937. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3938. </instance-parameter>
  3939. <parameter name="packetized" transfer-ownership="none">
  3940. <doc xml:space="preserve">whether the input data should be considered as packetized.</doc>
  3941. <type name="gboolean" c:type="gboolean"/>
  3942. </parameter>
  3943. </parameters>
  3944. </method>
  3945. <method name="set_use_default_pad_acceptcaps"
  3946. c:identifier="gst_video_decoder_set_use_default_pad_acceptcaps"
  3947. version="1.6">
  3948. <doc xml:space="preserve">Lets #GstVideoDecoder sub-classes decide if they want the sink pad
  3949. to use the default pad query handler to reply to accept-caps queries.
  3950. By setting this to true it is possible to further customize the default
  3951. handler with %GST_PAD_SET_ACCEPT_INTERSECT and
  3952. %GST_PAD_SET_ACCEPT_TEMPLATE</doc>
  3953. <return-value transfer-ownership="none">
  3954. <type name="none" c:type="void"/>
  3955. </return-value>
  3956. <parameters>
  3957. <instance-parameter name="decoder" transfer-ownership="none">
  3958. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  3959. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  3960. </instance-parameter>
  3961. <parameter name="use" transfer-ownership="none">
  3962. <doc xml:space="preserve">if the default pad accept-caps query handling should be used</doc>
  3963. <type name="gboolean" c:type="gboolean"/>
  3964. </parameter>
  3965. </parameters>
  3966. </method>
  3967. <field name="element" readable="0" private="1">
  3968. <type name="Gst.Element" c:type="GstElement"/>
  3969. </field>
  3970. <field name="sinkpad" readable="0" private="1">
  3971. <type name="Gst.Pad" c:type="GstPad*"/>
  3972. </field>
  3973. <field name="srcpad" readable="0" private="1">
  3974. <type name="Gst.Pad" c:type="GstPad*"/>
  3975. </field>
  3976. <field name="stream_lock" readable="0" private="1">
  3977. <type name="GLib.RecMutex" c:type="GRecMutex"/>
  3978. </field>
  3979. <field name="input_segment" readable="0" private="1">
  3980. <type name="Gst.Segment" c:type="GstSegment"/>
  3981. </field>
  3982. <field name="output_segment" readable="0" private="1">
  3983. <type name="Gst.Segment" c:type="GstSegment"/>
  3984. </field>
  3985. <field name="priv" readable="0" private="1">
  3986. <type name="VideoDecoderPrivate" c:type="GstVideoDecoderPrivate*"/>
  3987. </field>
  3988. <field name="padding" readable="0" private="1">
  3989. <array zero-terminated="0" c:type="void" fixed-size="20">
  3990. <type name="gpointer" c:type="void*"/>
  3991. </array>
  3992. </field>
  3993. </class>
  3994. <record name="VideoDecoderClass"
  3995. c:type="GstVideoDecoderClass"
  3996. glib:is-gtype-struct-for="VideoDecoder">
  3997. <doc xml:space="preserve">Subclasses can override any of the available virtual methods or not, as
  3998. needed. At minimum @handle_frame needs to be overridden, and @set_format
  3999. and likely as well. If non-packetized input is supported or expected,
  4000. @parse needs to be overridden as well.</doc>
  4001. <field name="element_class" readable="0" private="1">
  4002. <type name="Gst.ElementClass" c:type="GstElementClass"/>
  4003. </field>
  4004. <field name="open">
  4005. <callback name="open">
  4006. <return-value transfer-ownership="none">
  4007. <type name="gboolean" c:type="gboolean"/>
  4008. </return-value>
  4009. <parameters>
  4010. <parameter name="decoder" transfer-ownership="none">
  4011. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4012. </parameter>
  4013. </parameters>
  4014. </callback>
  4015. </field>
  4016. <field name="close">
  4017. <callback name="close">
  4018. <return-value transfer-ownership="none">
  4019. <type name="gboolean" c:type="gboolean"/>
  4020. </return-value>
  4021. <parameters>
  4022. <parameter name="decoder" transfer-ownership="none">
  4023. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4024. </parameter>
  4025. </parameters>
  4026. </callback>
  4027. </field>
  4028. <field name="start">
  4029. <callback name="start">
  4030. <return-value transfer-ownership="none">
  4031. <type name="gboolean" c:type="gboolean"/>
  4032. </return-value>
  4033. <parameters>
  4034. <parameter name="decoder" transfer-ownership="none">
  4035. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4036. </parameter>
  4037. </parameters>
  4038. </callback>
  4039. </field>
  4040. <field name="stop">
  4041. <callback name="stop">
  4042. <return-value transfer-ownership="none">
  4043. <type name="gboolean" c:type="gboolean"/>
  4044. </return-value>
  4045. <parameters>
  4046. <parameter name="decoder" transfer-ownership="none">
  4047. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4048. </parameter>
  4049. </parameters>
  4050. </callback>
  4051. </field>
  4052. <field name="parse">
  4053. <callback name="parse">
  4054. <return-value transfer-ownership="none">
  4055. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4056. </return-value>
  4057. <parameters>
  4058. <parameter name="decoder" transfer-ownership="none">
  4059. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4060. </parameter>
  4061. <parameter name="frame" transfer-ownership="none">
  4062. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4063. </parameter>
  4064. <parameter name="adapter" transfer-ownership="none">
  4065. <type name="GstBase.Adapter" c:type="GstAdapter*"/>
  4066. </parameter>
  4067. <parameter name="at_eos" transfer-ownership="none">
  4068. <type name="gboolean" c:type="gboolean"/>
  4069. </parameter>
  4070. </parameters>
  4071. </callback>
  4072. </field>
  4073. <field name="set_format">
  4074. <callback name="set_format">
  4075. <return-value transfer-ownership="none">
  4076. <type name="gboolean" c:type="gboolean"/>
  4077. </return-value>
  4078. <parameters>
  4079. <parameter name="decoder" transfer-ownership="none">
  4080. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4081. </parameter>
  4082. <parameter name="state" transfer-ownership="none">
  4083. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  4084. </parameter>
  4085. </parameters>
  4086. </callback>
  4087. </field>
  4088. <field name="reset">
  4089. <callback name="reset">
  4090. <return-value transfer-ownership="none">
  4091. <type name="gboolean" c:type="gboolean"/>
  4092. </return-value>
  4093. <parameters>
  4094. <parameter name="decoder" transfer-ownership="none">
  4095. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4096. </parameter>
  4097. <parameter name="hard" transfer-ownership="none">
  4098. <type name="gboolean" c:type="gboolean"/>
  4099. </parameter>
  4100. </parameters>
  4101. </callback>
  4102. </field>
  4103. <field name="finish">
  4104. <callback name="finish">
  4105. <return-value transfer-ownership="none">
  4106. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4107. </return-value>
  4108. <parameters>
  4109. <parameter name="decoder" transfer-ownership="none">
  4110. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4111. </parameter>
  4112. </parameters>
  4113. </callback>
  4114. </field>
  4115. <field name="handle_frame">
  4116. <callback name="handle_frame">
  4117. <return-value transfer-ownership="none">
  4118. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4119. </return-value>
  4120. <parameters>
  4121. <parameter name="decoder" transfer-ownership="none">
  4122. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4123. </parameter>
  4124. <parameter name="frame" transfer-ownership="none">
  4125. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4126. </parameter>
  4127. </parameters>
  4128. </callback>
  4129. </field>
  4130. <field name="sink_event">
  4131. <callback name="sink_event">
  4132. <return-value transfer-ownership="none">
  4133. <type name="gboolean" c:type="gboolean"/>
  4134. </return-value>
  4135. <parameters>
  4136. <parameter name="decoder" transfer-ownership="none">
  4137. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4138. </parameter>
  4139. <parameter name="event" transfer-ownership="none">
  4140. <type name="Gst.Event" c:type="GstEvent*"/>
  4141. </parameter>
  4142. </parameters>
  4143. </callback>
  4144. </field>
  4145. <field name="src_event">
  4146. <callback name="src_event">
  4147. <return-value transfer-ownership="none">
  4148. <type name="gboolean" c:type="gboolean"/>
  4149. </return-value>
  4150. <parameters>
  4151. <parameter name="decoder" transfer-ownership="none">
  4152. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4153. </parameter>
  4154. <parameter name="event" transfer-ownership="none">
  4155. <type name="Gst.Event" c:type="GstEvent*"/>
  4156. </parameter>
  4157. </parameters>
  4158. </callback>
  4159. </field>
  4160. <field name="negotiate">
  4161. <callback name="negotiate">
  4162. <return-value transfer-ownership="none">
  4163. <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
  4164. <type name="gboolean" c:type="gboolean"/>
  4165. </return-value>
  4166. <parameters>
  4167. <parameter name="decoder" transfer-ownership="none">
  4168. <doc xml:space="preserve">a #GstVideoDecoder</doc>
  4169. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4170. </parameter>
  4171. </parameters>
  4172. </callback>
  4173. </field>
  4174. <field name="decide_allocation">
  4175. <callback name="decide_allocation">
  4176. <return-value transfer-ownership="none">
  4177. <type name="gboolean" c:type="gboolean"/>
  4178. </return-value>
  4179. <parameters>
  4180. <parameter name="decoder" transfer-ownership="none">
  4181. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4182. </parameter>
  4183. <parameter name="query" transfer-ownership="none">
  4184. <type name="Gst.Query" c:type="GstQuery*"/>
  4185. </parameter>
  4186. </parameters>
  4187. </callback>
  4188. </field>
  4189. <field name="propose_allocation">
  4190. <callback name="propose_allocation">
  4191. <return-value transfer-ownership="none">
  4192. <type name="gboolean" c:type="gboolean"/>
  4193. </return-value>
  4194. <parameters>
  4195. <parameter name="decoder" transfer-ownership="none">
  4196. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4197. </parameter>
  4198. <parameter name="query" transfer-ownership="none">
  4199. <type name="Gst.Query" c:type="GstQuery*"/>
  4200. </parameter>
  4201. </parameters>
  4202. </callback>
  4203. </field>
  4204. <field name="flush">
  4205. <callback name="flush">
  4206. <return-value transfer-ownership="none">
  4207. <type name="gboolean" c:type="gboolean"/>
  4208. </return-value>
  4209. <parameters>
  4210. <parameter name="decoder" transfer-ownership="none">
  4211. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4212. </parameter>
  4213. </parameters>
  4214. </callback>
  4215. </field>
  4216. <field name="sink_query">
  4217. <callback name="sink_query">
  4218. <return-value transfer-ownership="none">
  4219. <type name="gboolean" c:type="gboolean"/>
  4220. </return-value>
  4221. <parameters>
  4222. <parameter name="decoder" transfer-ownership="none">
  4223. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4224. </parameter>
  4225. <parameter name="query" transfer-ownership="none">
  4226. <type name="Gst.Query" c:type="GstQuery*"/>
  4227. </parameter>
  4228. </parameters>
  4229. </callback>
  4230. </field>
  4231. <field name="src_query">
  4232. <callback name="src_query">
  4233. <return-value transfer-ownership="none">
  4234. <type name="gboolean" c:type="gboolean"/>
  4235. </return-value>
  4236. <parameters>
  4237. <parameter name="decoder" transfer-ownership="none">
  4238. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4239. </parameter>
  4240. <parameter name="query" transfer-ownership="none">
  4241. <type name="Gst.Query" c:type="GstQuery*"/>
  4242. </parameter>
  4243. </parameters>
  4244. </callback>
  4245. </field>
  4246. <field name="getcaps">
  4247. <callback name="getcaps">
  4248. <return-value transfer-ownership="full">
  4249. <type name="Gst.Caps" c:type="GstCaps*"/>
  4250. </return-value>
  4251. <parameters>
  4252. <parameter name="decoder" transfer-ownership="none">
  4253. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4254. </parameter>
  4255. <parameter name="filter" transfer-ownership="none">
  4256. <type name="Gst.Caps" c:type="GstCaps*"/>
  4257. </parameter>
  4258. </parameters>
  4259. </callback>
  4260. </field>
  4261. <field name="drain">
  4262. <callback name="drain">
  4263. <return-value transfer-ownership="none">
  4264. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4265. </return-value>
  4266. <parameters>
  4267. <parameter name="decoder" transfer-ownership="none">
  4268. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4269. </parameter>
  4270. </parameters>
  4271. </callback>
  4272. </field>
  4273. <field name="transform_meta">
  4274. <callback name="transform_meta">
  4275. <return-value transfer-ownership="none">
  4276. <type name="gboolean" c:type="gboolean"/>
  4277. </return-value>
  4278. <parameters>
  4279. <parameter name="decoder" transfer-ownership="none">
  4280. <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
  4281. </parameter>
  4282. <parameter name="frame" transfer-ownership="none">
  4283. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4284. </parameter>
  4285. <parameter name="meta" transfer-ownership="none">
  4286. <type name="Gst.Meta" c:type="GstMeta*"/>
  4287. </parameter>
  4288. </parameters>
  4289. </callback>
  4290. </field>
  4291. <field name="padding" readable="0" private="1">
  4292. <array zero-terminated="0" c:type="void" fixed-size="14">
  4293. <type name="gpointer" c:type="void*"/>
  4294. </array>
  4295. </field>
  4296. </record>
  4297. <record name="VideoDecoderPrivate"
  4298. c:type="GstVideoDecoderPrivate"
  4299. disguised="1">
  4300. </record>
  4301. <record name="VideoDither" c:type="GstVideoDither" disguised="1">
  4302. <doc xml:space="preserve">GstVideoDither provides implementations of several dithering algorithms
  4303. that can be applied to lines of video pixels to quantize and dither them.</doc>
  4304. <method name="free" c:identifier="gst_video_dither_free">
  4305. <doc xml:space="preserve">Free @dither</doc>
  4306. <return-value transfer-ownership="none">
  4307. <type name="none" c:type="void"/>
  4308. </return-value>
  4309. <parameters>
  4310. <instance-parameter name="dither" transfer-ownership="none">
  4311. <doc xml:space="preserve">a #GstVideoDither</doc>
  4312. <type name="VideoDither" c:type="GstVideoDither*"/>
  4313. </instance-parameter>
  4314. </parameters>
  4315. </method>
  4316. <method name="line" c:identifier="gst_video_dither_line">
  4317. <doc xml:space="preserve">Dither @width pixels starting from offset @x in @line using @dither.
  4318. @y is the line number of @line in the output image.</doc>
  4319. <return-value transfer-ownership="none">
  4320. <type name="none" c:type="void"/>
  4321. </return-value>
  4322. <parameters>
  4323. <instance-parameter name="dither" transfer-ownership="none">
  4324. <doc xml:space="preserve">a #GstVideoDither</doc>
  4325. <type name="VideoDither" c:type="GstVideoDither*"/>
  4326. </instance-parameter>
  4327. <parameter name="line"
  4328. transfer-ownership="none"
  4329. nullable="1"
  4330. allow-none="1">
  4331. <doc xml:space="preserve">pointer to the pixels of the line</doc>
  4332. <type name="gpointer" c:type="gpointer"/>
  4333. </parameter>
  4334. <parameter name="x" transfer-ownership="none">
  4335. <doc xml:space="preserve">x coordinate</doc>
  4336. <type name="guint" c:type="guint"/>
  4337. </parameter>
  4338. <parameter name="y" transfer-ownership="none">
  4339. <doc xml:space="preserve">y coordinate</doc>
  4340. <type name="guint" c:type="guint"/>
  4341. </parameter>
  4342. <parameter name="width" transfer-ownership="none">
  4343. <doc xml:space="preserve">the width</doc>
  4344. <type name="guint" c:type="guint"/>
  4345. </parameter>
  4346. </parameters>
  4347. </method>
  4348. <function name="new"
  4349. c:identifier="gst_video_dither_new"
  4350. introspectable="0">
  4351. <doc xml:space="preserve">Make a new dither object for dithering lines of @format using the
  4352. algorithm described by @method.
  4353. Each component will be quantized to a multiple of @quantizer. Better
  4354. performance is achived when @quantizer is a power of 2.
  4355. @width is the width of the lines that this ditherer will handle.</doc>
  4356. <return-value>
  4357. <doc xml:space="preserve">a new #GstVideoDither</doc>
  4358. <type name="VideoDither" c:type="GstVideoDither*"/>
  4359. </return-value>
  4360. <parameters>
  4361. <parameter name="method" transfer-ownership="none">
  4362. <doc xml:space="preserve">a #GstVideoDitherMethod</doc>
  4363. <type name="VideoDitherMethod" c:type="GstVideoDitherMethod"/>
  4364. </parameter>
  4365. <parameter name="flags" transfer-ownership="none">
  4366. <doc xml:space="preserve">a #GstVideoDitherFlags</doc>
  4367. <type name="VideoDitherFlags" c:type="GstVideoDitherFlags"/>
  4368. </parameter>
  4369. <parameter name="format" transfer-ownership="none">
  4370. <doc xml:space="preserve">a #GstVideoFormat</doc>
  4371. <type name="VideoFormat" c:type="GstVideoFormat"/>
  4372. </parameter>
  4373. <parameter name="quantizer" transfer-ownership="none">
  4374. <doc xml:space="preserve">quantizer</doc>
  4375. <type name="guint" c:type="guint"/>
  4376. </parameter>
  4377. <parameter name="width" transfer-ownership="none">
  4378. <doc xml:space="preserve">the width of the lines</doc>
  4379. <type name="guint" c:type="guint"/>
  4380. </parameter>
  4381. </parameters>
  4382. </function>
  4383. </record>
  4384. <bitfield name="VideoDitherFlags"
  4385. glib:type-name="GstVideoDitherFlags"
  4386. glib:get-type="gst_video_dither_flags_get_type"
  4387. c:type="GstVideoDitherFlags">
  4388. <doc xml:space="preserve">Extra flags that influence the result from gst_video_chroma_resample_new().</doc>
  4389. <member name="none"
  4390. value="0"
  4391. c:identifier="GST_VIDEO_DITHER_FLAG_NONE"
  4392. glib:nick="none">
  4393. <doc xml:space="preserve">no flags</doc>
  4394. </member>
  4395. <member name="interlaced"
  4396. value="1"
  4397. c:identifier="GST_VIDEO_DITHER_FLAG_INTERLACED"
  4398. glib:nick="interlaced">
  4399. <doc xml:space="preserve">the input is interlaced</doc>
  4400. </member>
  4401. <member name="quantize"
  4402. value="2"
  4403. c:identifier="GST_VIDEO_DITHER_FLAG_QUANTIZE"
  4404. glib:nick="quantize">
  4405. <doc xml:space="preserve">quantize values in addition to adding dither.</doc>
  4406. </member>
  4407. </bitfield>
  4408. <enumeration name="VideoDitherMethod"
  4409. glib:type-name="GstVideoDitherMethod"
  4410. glib:get-type="gst_video_dither_method_get_type"
  4411. c:type="GstVideoDitherMethod">
  4412. <doc xml:space="preserve">Different dithering methods to use.</doc>
  4413. <member name="none"
  4414. value="0"
  4415. c:identifier="GST_VIDEO_DITHER_NONE"
  4416. glib:nick="none">
  4417. <doc xml:space="preserve">no dithering</doc>
  4418. </member>
  4419. <member name="verterr"
  4420. value="1"
  4421. c:identifier="GST_VIDEO_DITHER_VERTERR"
  4422. glib:nick="verterr">
  4423. <doc xml:space="preserve">propagate rounding errors downwards</doc>
  4424. </member>
  4425. <member name="floyd_steinberg"
  4426. value="2"
  4427. c:identifier="GST_VIDEO_DITHER_FLOYD_STEINBERG"
  4428. glib:nick="floyd-steinberg">
  4429. <doc xml:space="preserve">Dither with floyd-steinberg error diffusion</doc>
  4430. </member>
  4431. <member name="sierra_lite"
  4432. value="3"
  4433. c:identifier="GST_VIDEO_DITHER_SIERRA_LITE"
  4434. glib:nick="sierra-lite">
  4435. <doc xml:space="preserve">Dither with Sierra Lite error diffusion</doc>
  4436. </member>
  4437. <member name="bayer"
  4438. value="4"
  4439. c:identifier="GST_VIDEO_DITHER_BAYER"
  4440. glib:nick="bayer">
  4441. <doc xml:space="preserve">ordered dither using a bayer pattern</doc>
  4442. </member>
  4443. </enumeration>
  4444. <class name="VideoEncoder"
  4445. c:symbol-prefix="video_encoder"
  4446. c:type="GstVideoEncoder"
  4447. parent="Gst.Element"
  4448. abstract="1"
  4449. glib:type-name="GstVideoEncoder"
  4450. glib:get-type="gst_video_encoder_get_type"
  4451. glib:type-struct="VideoEncoderClass">
  4452. <doc xml:space="preserve">This base class is for video encoders turning raw video into
  4453. encoded video data.
  4454. GstVideoEncoder and subclass should cooperate as follows.
  4455. &lt;orderedlist&gt;
  4456. &lt;listitem&gt;
  4457. &lt;itemizedlist&gt;&lt;title&gt;Configuration&lt;/title&gt;
  4458. &lt;listitem&gt;&lt;para&gt;
  4459. Initially, GstVideoEncoder calls @start when the encoder element
  4460. is activated, which allows subclass to perform any global setup.
  4461. &lt;/para&gt;&lt;/listitem&gt;
  4462. &lt;listitem&gt;&lt;para&gt;
  4463. GstVideoEncoder calls @set_format to inform subclass of the format
  4464. of input video data that it is about to receive. Subclass should
  4465. setup for encoding and configure base class as appropriate
  4466. (e.g. latency). While unlikely, it might be called more than once,
  4467. if changing input parameters require reconfiguration. Baseclass
  4468. will ensure that processing of current configuration is finished.
  4469. &lt;/para&gt;&lt;/listitem&gt;
  4470. &lt;listitem&gt;&lt;para&gt;
  4471. GstVideoEncoder calls @stop at end of all processing.
  4472. &lt;/para&gt;&lt;/listitem&gt;
  4473. &lt;/itemizedlist&gt;
  4474. &lt;/listitem&gt;
  4475. &lt;listitem&gt;
  4476. &lt;itemizedlist&gt;
  4477. &lt;title&gt;Data processing&lt;/title&gt;
  4478. &lt;listitem&gt;&lt;para&gt;
  4479. Base class collects input data and metadata into a frame and hands
  4480. this to subclass' @handle_frame.
  4481. &lt;/para&gt;&lt;/listitem&gt;
  4482. &lt;listitem&gt;&lt;para&gt;
  4483. If codec processing results in encoded data, subclass should call
  4484. @gst_video_encoder_finish_frame to have encoded data pushed
  4485. downstream.
  4486. &lt;/para&gt;&lt;/listitem&gt;
  4487. &lt;listitem&gt;&lt;para&gt;
  4488. If implemented, baseclass calls subclass @pre_push just prior to
  4489. pushing to allow subclasses to modify some metadata on the buffer.
  4490. If it returns GST_FLOW_OK, the buffer is pushed downstream.
  4491. &lt;/para&gt;&lt;/listitem&gt;
  4492. &lt;listitem&gt;&lt;para&gt;
  4493. GstVideoEncoderClass will handle both srcpad and sinkpad events.
  4494. Sink events will be passed to subclass if @event callback has been
  4495. provided.
  4496. &lt;/para&gt;&lt;/listitem&gt;
  4497. &lt;/itemizedlist&gt;
  4498. &lt;/listitem&gt;
  4499. &lt;listitem&gt;
  4500. &lt;itemizedlist&gt;&lt;title&gt;Shutdown phase&lt;/title&gt;
  4501. &lt;listitem&gt;&lt;para&gt;
  4502. GstVideoEncoder class calls @stop to inform the subclass that data
  4503. parsing will be stopped.
  4504. &lt;/para&gt;&lt;/listitem&gt;
  4505. &lt;/itemizedlist&gt;
  4506. &lt;/listitem&gt;
  4507. &lt;/orderedlist&gt;
  4508. Subclass is responsible for providing pad template caps for
  4509. source and sink pads. The pads need to be named "sink" and "src". It should
  4510. also be able to provide fixed src pad caps in @getcaps by the time it calls
  4511. @gst_video_encoder_finish_frame.
  4512. Things that subclass need to take care of:
  4513. &lt;itemizedlist&gt;
  4514. &lt;listitem&gt;&lt;para&gt;Provide pad templates&lt;/para&gt;&lt;/listitem&gt;
  4515. &lt;listitem&gt;&lt;para&gt;
  4516. Provide source pad caps before pushing the first buffer
  4517. &lt;/para&gt;&lt;/listitem&gt;
  4518. &lt;listitem&gt;&lt;para&gt;
  4519. Accept data in @handle_frame and provide encoded results to
  4520. @gst_video_encoder_finish_frame.
  4521. &lt;/para&gt;&lt;/listitem&gt;
  4522. &lt;/itemizedlist&gt;</doc>
  4523. <implements name="Gst.Preset"/>
  4524. <virtual-method name="close">
  4525. <return-value transfer-ownership="none">
  4526. <type name="gboolean" c:type="gboolean"/>
  4527. </return-value>
  4528. <parameters>
  4529. <instance-parameter name="encoder" transfer-ownership="none">
  4530. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4531. </instance-parameter>
  4532. </parameters>
  4533. </virtual-method>
  4534. <virtual-method name="decide_allocation">
  4535. <return-value transfer-ownership="none">
  4536. <type name="gboolean" c:type="gboolean"/>
  4537. </return-value>
  4538. <parameters>
  4539. <instance-parameter name="encoder" transfer-ownership="none">
  4540. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4541. </instance-parameter>
  4542. <parameter name="query" transfer-ownership="none">
  4543. <type name="Gst.Query" c:type="GstQuery*"/>
  4544. </parameter>
  4545. </parameters>
  4546. </virtual-method>
  4547. <virtual-method name="finish">
  4548. <return-value transfer-ownership="none">
  4549. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4550. </return-value>
  4551. <parameters>
  4552. <instance-parameter name="encoder" transfer-ownership="none">
  4553. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4554. </instance-parameter>
  4555. </parameters>
  4556. </virtual-method>
  4557. <virtual-method name="flush">
  4558. <return-value transfer-ownership="none">
  4559. <type name="gboolean" c:type="gboolean"/>
  4560. </return-value>
  4561. <parameters>
  4562. <instance-parameter name="encoder" transfer-ownership="none">
  4563. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4564. </instance-parameter>
  4565. </parameters>
  4566. </virtual-method>
  4567. <virtual-method name="getcaps">
  4568. <return-value transfer-ownership="full">
  4569. <type name="Gst.Caps" c:type="GstCaps*"/>
  4570. </return-value>
  4571. <parameters>
  4572. <instance-parameter name="enc" transfer-ownership="none">
  4573. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4574. </instance-parameter>
  4575. <parameter name="filter" transfer-ownership="none">
  4576. <type name="Gst.Caps" c:type="GstCaps*"/>
  4577. </parameter>
  4578. </parameters>
  4579. </virtual-method>
  4580. <virtual-method name="handle_frame">
  4581. <return-value transfer-ownership="none">
  4582. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4583. </return-value>
  4584. <parameters>
  4585. <instance-parameter name="encoder" transfer-ownership="none">
  4586. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4587. </instance-parameter>
  4588. <parameter name="frame" transfer-ownership="none">
  4589. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4590. </parameter>
  4591. </parameters>
  4592. </virtual-method>
  4593. <virtual-method name="negotiate" invoker="negotiate">
  4594. <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
  4595. Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
  4596. negotiate fails.</doc>
  4597. <return-value transfer-ownership="none">
  4598. <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
  4599. <type name="gboolean" c:type="gboolean"/>
  4600. </return-value>
  4601. <parameters>
  4602. <instance-parameter name="encoder" transfer-ownership="none">
  4603. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4604. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4605. </instance-parameter>
  4606. </parameters>
  4607. </virtual-method>
  4608. <virtual-method name="open">
  4609. <return-value transfer-ownership="none">
  4610. <type name="gboolean" c:type="gboolean"/>
  4611. </return-value>
  4612. <parameters>
  4613. <instance-parameter name="encoder" transfer-ownership="none">
  4614. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4615. </instance-parameter>
  4616. </parameters>
  4617. </virtual-method>
  4618. <virtual-method name="pre_push">
  4619. <return-value transfer-ownership="none">
  4620. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4621. </return-value>
  4622. <parameters>
  4623. <instance-parameter name="encoder" transfer-ownership="none">
  4624. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4625. </instance-parameter>
  4626. <parameter name="frame" transfer-ownership="none">
  4627. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4628. </parameter>
  4629. </parameters>
  4630. </virtual-method>
  4631. <virtual-method name="propose_allocation">
  4632. <return-value transfer-ownership="none">
  4633. <type name="gboolean" c:type="gboolean"/>
  4634. </return-value>
  4635. <parameters>
  4636. <instance-parameter name="encoder" transfer-ownership="none">
  4637. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4638. </instance-parameter>
  4639. <parameter name="query" transfer-ownership="none">
  4640. <type name="Gst.Query" c:type="GstQuery*"/>
  4641. </parameter>
  4642. </parameters>
  4643. </virtual-method>
  4644. <virtual-method name="reset">
  4645. <return-value transfer-ownership="none">
  4646. <type name="gboolean" c:type="gboolean"/>
  4647. </return-value>
  4648. <parameters>
  4649. <instance-parameter name="encoder" transfer-ownership="none">
  4650. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4651. </instance-parameter>
  4652. <parameter name="hard" transfer-ownership="none">
  4653. <type name="gboolean" c:type="gboolean"/>
  4654. </parameter>
  4655. </parameters>
  4656. </virtual-method>
  4657. <virtual-method name="set_format">
  4658. <return-value transfer-ownership="none">
  4659. <type name="gboolean" c:type="gboolean"/>
  4660. </return-value>
  4661. <parameters>
  4662. <instance-parameter name="encoder" transfer-ownership="none">
  4663. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4664. </instance-parameter>
  4665. <parameter name="state" transfer-ownership="none">
  4666. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  4667. </parameter>
  4668. </parameters>
  4669. </virtual-method>
  4670. <virtual-method name="sink_event">
  4671. <return-value transfer-ownership="none">
  4672. <type name="gboolean" c:type="gboolean"/>
  4673. </return-value>
  4674. <parameters>
  4675. <instance-parameter name="encoder" transfer-ownership="none">
  4676. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4677. </instance-parameter>
  4678. <parameter name="event" transfer-ownership="none">
  4679. <type name="Gst.Event" c:type="GstEvent*"/>
  4680. </parameter>
  4681. </parameters>
  4682. </virtual-method>
  4683. <virtual-method name="sink_query">
  4684. <return-value transfer-ownership="none">
  4685. <type name="gboolean" c:type="gboolean"/>
  4686. </return-value>
  4687. <parameters>
  4688. <instance-parameter name="encoder" transfer-ownership="none">
  4689. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4690. </instance-parameter>
  4691. <parameter name="query" transfer-ownership="none">
  4692. <type name="Gst.Query" c:type="GstQuery*"/>
  4693. </parameter>
  4694. </parameters>
  4695. </virtual-method>
  4696. <virtual-method name="src_event">
  4697. <return-value transfer-ownership="none">
  4698. <type name="gboolean" c:type="gboolean"/>
  4699. </return-value>
  4700. <parameters>
  4701. <instance-parameter name="encoder" transfer-ownership="none">
  4702. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4703. </instance-parameter>
  4704. <parameter name="event" transfer-ownership="none">
  4705. <type name="Gst.Event" c:type="GstEvent*"/>
  4706. </parameter>
  4707. </parameters>
  4708. </virtual-method>
  4709. <virtual-method name="src_query">
  4710. <return-value transfer-ownership="none">
  4711. <type name="gboolean" c:type="gboolean"/>
  4712. </return-value>
  4713. <parameters>
  4714. <instance-parameter name="encoder" transfer-ownership="none">
  4715. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4716. </instance-parameter>
  4717. <parameter name="query" transfer-ownership="none">
  4718. <type name="Gst.Query" c:type="GstQuery*"/>
  4719. </parameter>
  4720. </parameters>
  4721. </virtual-method>
  4722. <virtual-method name="start">
  4723. <return-value transfer-ownership="none">
  4724. <type name="gboolean" c:type="gboolean"/>
  4725. </return-value>
  4726. <parameters>
  4727. <instance-parameter name="encoder" transfer-ownership="none">
  4728. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4729. </instance-parameter>
  4730. </parameters>
  4731. </virtual-method>
  4732. <virtual-method name="stop">
  4733. <return-value transfer-ownership="none">
  4734. <type name="gboolean" c:type="gboolean"/>
  4735. </return-value>
  4736. <parameters>
  4737. <instance-parameter name="encoder" transfer-ownership="none">
  4738. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4739. </instance-parameter>
  4740. </parameters>
  4741. </virtual-method>
  4742. <virtual-method name="transform_meta">
  4743. <return-value transfer-ownership="none">
  4744. <type name="gboolean" c:type="gboolean"/>
  4745. </return-value>
  4746. <parameters>
  4747. <instance-parameter name="encoder" transfer-ownership="none">
  4748. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4749. </instance-parameter>
  4750. <parameter name="frame" transfer-ownership="none">
  4751. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4752. </parameter>
  4753. <parameter name="meta" transfer-ownership="none">
  4754. <type name="Gst.Meta" c:type="GstMeta*"/>
  4755. </parameter>
  4756. </parameters>
  4757. </virtual-method>
  4758. <method name="allocate_output_buffer"
  4759. c:identifier="gst_video_encoder_allocate_output_buffer">
  4760. <doc xml:space="preserve">Helper function that allocates a buffer to hold an encoded video frame
  4761. for @encoder's current #GstVideoCodecState.</doc>
  4762. <return-value transfer-ownership="full">
  4763. <doc xml:space="preserve">allocated buffer</doc>
  4764. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  4765. </return-value>
  4766. <parameters>
  4767. <instance-parameter name="encoder" transfer-ownership="none">
  4768. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4769. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4770. </instance-parameter>
  4771. <parameter name="size" transfer-ownership="none">
  4772. <doc xml:space="preserve">size of the buffer</doc>
  4773. <type name="gsize" c:type="gsize"/>
  4774. </parameter>
  4775. </parameters>
  4776. </method>
  4777. <method name="allocate_output_frame"
  4778. c:identifier="gst_video_encoder_allocate_output_frame">
  4779. <doc xml:space="preserve">Helper function that allocates a buffer to hold an encoded video frame for @encoder's
  4780. current #GstVideoCodecState. Subclass should already have configured video
  4781. state and set src pad caps.
  4782. The buffer allocated here is owned by the frame and you should only
  4783. keep references to the frame, not the buffer.</doc>
  4784. <return-value transfer-ownership="none">
  4785. <doc xml:space="preserve">%GST_FLOW_OK if an output buffer could be allocated</doc>
  4786. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4787. </return-value>
  4788. <parameters>
  4789. <instance-parameter name="encoder" transfer-ownership="none">
  4790. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4791. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4792. </instance-parameter>
  4793. <parameter name="frame" transfer-ownership="none">
  4794. <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
  4795. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4796. </parameter>
  4797. <parameter name="size" transfer-ownership="none">
  4798. <doc xml:space="preserve">size of the buffer</doc>
  4799. <type name="gsize" c:type="gsize"/>
  4800. </parameter>
  4801. </parameters>
  4802. </method>
  4803. <method name="finish_frame"
  4804. c:identifier="gst_video_encoder_finish_frame">
  4805. <doc xml:space="preserve">@frame must have a valid encoded data buffer, whose metadata fields
  4806. are then appropriately set according to frame data or no buffer at
  4807. all if the frame should be dropped.
  4808. It is subsequently pushed downstream or provided to @pre_push.
  4809. In any case, the frame is considered finished and released.
  4810. After calling this function the output buffer of the frame is to be
  4811. considered read-only. This function will also change the metadata
  4812. of the buffer.</doc>
  4813. <return-value transfer-ownership="none">
  4814. <doc xml:space="preserve">a #GstFlowReturn resulting from sending data downstream</doc>
  4815. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  4816. </return-value>
  4817. <parameters>
  4818. <instance-parameter name="encoder" transfer-ownership="none">
  4819. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4820. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4821. </instance-parameter>
  4822. <parameter name="frame" transfer-ownership="full">
  4823. <doc xml:space="preserve">an encoded #GstVideoCodecFrame</doc>
  4824. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4825. </parameter>
  4826. </parameters>
  4827. </method>
  4828. <method name="get_allocator"
  4829. c:identifier="gst_video_encoder_get_allocator">
  4830. <doc xml:space="preserve">Lets #GstVideoEncoder sub-classes to know the memory @allocator
  4831. used by the base class and its @params.
  4832. Unref the @allocator after use it.</doc>
  4833. <return-value transfer-ownership="none">
  4834. <type name="none" c:type="void"/>
  4835. </return-value>
  4836. <parameters>
  4837. <instance-parameter name="encoder" transfer-ownership="none">
  4838. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4839. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4840. </instance-parameter>
  4841. <parameter name="allocator"
  4842. direction="out"
  4843. caller-allocates="0"
  4844. transfer-ownership="full"
  4845. optional="1"
  4846. allow-none="1">
  4847. <doc xml:space="preserve">the #GstAllocator
  4848. used</doc>
  4849. <type name="Gst.Allocator" c:type="GstAllocator**"/>
  4850. </parameter>
  4851. <parameter name="params"
  4852. direction="out"
  4853. caller-allocates="1"
  4854. transfer-ownership="full"
  4855. optional="1"
  4856. allow-none="1">
  4857. <doc xml:space="preserve">the
  4858. #GstAllocatorParams of @allocator</doc>
  4859. <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
  4860. </parameter>
  4861. </parameters>
  4862. </method>
  4863. <method name="get_frame" c:identifier="gst_video_encoder_get_frame">
  4864. <doc xml:space="preserve">Get a pending unfinished #GstVideoCodecFrame</doc>
  4865. <return-value transfer-ownership="full">
  4866. <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame identified by @frame_number.</doc>
  4867. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4868. </return-value>
  4869. <parameters>
  4870. <instance-parameter name="encoder" transfer-ownership="none">
  4871. <doc xml:space="preserve">a #GstVideoEnccoder</doc>
  4872. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4873. </instance-parameter>
  4874. <parameter name="frame_number" transfer-ownership="none">
  4875. <doc xml:space="preserve">system_frame_number of a frame</doc>
  4876. <type name="gint" c:type="int"/>
  4877. </parameter>
  4878. </parameters>
  4879. </method>
  4880. <method name="get_frames" c:identifier="gst_video_encoder_get_frames">
  4881. <doc xml:space="preserve">Get all pending unfinished #GstVideoCodecFrame</doc>
  4882. <return-value transfer-ownership="full">
  4883. <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame.</doc>
  4884. <type name="GLib.List" c:type="GList*">
  4885. <type name="VideoCodecFrame"/>
  4886. </type>
  4887. </return-value>
  4888. <parameters>
  4889. <instance-parameter name="encoder" transfer-ownership="none">
  4890. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4891. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4892. </instance-parameter>
  4893. </parameters>
  4894. </method>
  4895. <method name="get_latency" c:identifier="gst_video_encoder_get_latency">
  4896. <doc xml:space="preserve">Query the configured encoding latency. Results will be returned via
  4897. @min_latency and @max_latency.</doc>
  4898. <return-value transfer-ownership="none">
  4899. <type name="none" c:type="void"/>
  4900. </return-value>
  4901. <parameters>
  4902. <instance-parameter name="encoder" transfer-ownership="none">
  4903. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4904. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4905. </instance-parameter>
  4906. <parameter name="min_latency"
  4907. direction="out"
  4908. caller-allocates="0"
  4909. transfer-ownership="full"
  4910. optional="1"
  4911. allow-none="1">
  4912. <doc xml:space="preserve">address of variable in which to store the
  4913. configured minimum latency, or %NULL</doc>
  4914. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  4915. </parameter>
  4916. <parameter name="max_latency"
  4917. direction="out"
  4918. caller-allocates="0"
  4919. transfer-ownership="full"
  4920. optional="1"
  4921. allow-none="1">
  4922. <doc xml:space="preserve">address of variable in which to store the
  4923. configured maximum latency, or %NULL</doc>
  4924. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  4925. </parameter>
  4926. </parameters>
  4927. </method>
  4928. <method name="get_oldest_frame"
  4929. c:identifier="gst_video_encoder_get_oldest_frame">
  4930. <doc xml:space="preserve">Get the oldest unfinished pending #GstVideoCodecFrame</doc>
  4931. <return-value transfer-ownership="full">
  4932. <doc xml:space="preserve">oldest unfinished pending #GstVideoCodecFrame</doc>
  4933. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  4934. </return-value>
  4935. <parameters>
  4936. <instance-parameter name="encoder" transfer-ownership="none">
  4937. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4938. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4939. </instance-parameter>
  4940. </parameters>
  4941. </method>
  4942. <method name="get_output_state"
  4943. c:identifier="gst_video_encoder_get_output_state">
  4944. <doc xml:space="preserve">Get the current #GstVideoCodecState</doc>
  4945. <return-value transfer-ownership="full">
  4946. <doc xml:space="preserve">#GstVideoCodecState describing format of video data.</doc>
  4947. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  4948. </return-value>
  4949. <parameters>
  4950. <instance-parameter name="encoder" transfer-ownership="none">
  4951. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4952. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4953. </instance-parameter>
  4954. </parameters>
  4955. </method>
  4956. <method name="merge_tags" c:identifier="gst_video_encoder_merge_tags">
  4957. <doc xml:space="preserve">Sets the video encoder tags and how they should be merged with any
  4958. upstream stream tags. This will override any tags previously-set
  4959. with gst_video_encoder_merge_tags().
  4960. Note that this is provided for convenience, and the subclass is
  4961. not required to use this and can still do tag handling on its own.
  4962. MT safe.</doc>
  4963. <return-value transfer-ownership="none">
  4964. <type name="none" c:type="void"/>
  4965. </return-value>
  4966. <parameters>
  4967. <instance-parameter name="encoder" transfer-ownership="none">
  4968. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4969. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4970. </instance-parameter>
  4971. <parameter name="tags"
  4972. transfer-ownership="none"
  4973. nullable="1"
  4974. allow-none="1">
  4975. <doc xml:space="preserve">a #GstTagList to merge, or NULL to unset
  4976. previously-set tags</doc>
  4977. <type name="Gst.TagList" c:type="const GstTagList*"/>
  4978. </parameter>
  4979. <parameter name="mode" transfer-ownership="none">
  4980. <doc xml:space="preserve">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc>
  4981. <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/>
  4982. </parameter>
  4983. </parameters>
  4984. </method>
  4985. <method name="negotiate" c:identifier="gst_video_encoder_negotiate">
  4986. <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
  4987. Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
  4988. negotiate fails.</doc>
  4989. <return-value transfer-ownership="none">
  4990. <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
  4991. <type name="gboolean" c:type="gboolean"/>
  4992. </return-value>
  4993. <parameters>
  4994. <instance-parameter name="encoder" transfer-ownership="none">
  4995. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  4996. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  4997. </instance-parameter>
  4998. </parameters>
  4999. </method>
  5000. <method name="proxy_getcaps"
  5001. c:identifier="gst_video_encoder_proxy_getcaps">
  5002. <doc xml:space="preserve">Returns caps that express @caps (or sink template caps if @caps == NULL)
  5003. restricted to resolution/format/... combinations supported by downstream
  5004. elements (e.g. muxers).</doc>
  5005. <return-value transfer-ownership="full">
  5006. <doc xml:space="preserve">a #GstCaps owned by caller</doc>
  5007. <type name="Gst.Caps" c:type="GstCaps*"/>
  5008. </return-value>
  5009. <parameters>
  5010. <instance-parameter name="enc" transfer-ownership="none">
  5011. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  5012. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5013. </instance-parameter>
  5014. <parameter name="caps"
  5015. transfer-ownership="none"
  5016. nullable="1"
  5017. allow-none="1">
  5018. <doc xml:space="preserve">initial caps</doc>
  5019. <type name="Gst.Caps" c:type="GstCaps*"/>
  5020. </parameter>
  5021. <parameter name="filter"
  5022. transfer-ownership="none"
  5023. nullable="1"
  5024. allow-none="1">
  5025. <doc xml:space="preserve">filter caps</doc>
  5026. <type name="Gst.Caps" c:type="GstCaps*"/>
  5027. </parameter>
  5028. </parameters>
  5029. </method>
  5030. <method name="set_headers" c:identifier="gst_video_encoder_set_headers">
  5031. <doc xml:space="preserve">Set the codec headers to be sent downstream whenever requested.</doc>
  5032. <return-value transfer-ownership="none">
  5033. <type name="none" c:type="void"/>
  5034. </return-value>
  5035. <parameters>
  5036. <instance-parameter name="encoder" transfer-ownership="none">
  5037. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  5038. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5039. </instance-parameter>
  5040. <parameter name="headers" transfer-ownership="full">
  5041. <doc xml:space="preserve">a list of #GstBuffer containing the codec header</doc>
  5042. <type name="GLib.List" c:type="GList*">
  5043. <type name="Gst.Buffer"/>
  5044. </type>
  5045. </parameter>
  5046. </parameters>
  5047. </method>
  5048. <method name="set_latency" c:identifier="gst_video_encoder_set_latency">
  5049. <doc xml:space="preserve">Informs baseclass of encoding latency.</doc>
  5050. <return-value transfer-ownership="none">
  5051. <type name="none" c:type="void"/>
  5052. </return-value>
  5053. <parameters>
  5054. <instance-parameter name="encoder" transfer-ownership="none">
  5055. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  5056. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5057. </instance-parameter>
  5058. <parameter name="min_latency" transfer-ownership="none">
  5059. <doc xml:space="preserve">minimum latency</doc>
  5060. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  5061. </parameter>
  5062. <parameter name="max_latency" transfer-ownership="none">
  5063. <doc xml:space="preserve">maximum latency</doc>
  5064. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  5065. </parameter>
  5066. </parameters>
  5067. </method>
  5068. <method name="set_min_pts" c:identifier="gst_video_encoder_set_min_pts">
  5069. <doc xml:space="preserve">Request minimal value for PTS passed to handle_frame.
  5070. For streams with reordered frames this can be used to ensure that there
  5071. is enough time to accomodate first DTS, which may be less than first PTS
  5072. Since 1.6</doc>
  5073. <return-value transfer-ownership="none">
  5074. <type name="none" c:type="void"/>
  5075. </return-value>
  5076. <parameters>
  5077. <instance-parameter name="encoder" transfer-ownership="none">
  5078. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  5079. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5080. </instance-parameter>
  5081. <parameter name="min_pts" transfer-ownership="none">
  5082. <doc xml:space="preserve">minimal PTS that will be passed to handle_frame</doc>
  5083. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  5084. </parameter>
  5085. </parameters>
  5086. </method>
  5087. <method name="set_output_state"
  5088. c:identifier="gst_video_encoder_set_output_state">
  5089. <doc xml:space="preserve">Creates a new #GstVideoCodecState with the specified caps as the output state
  5090. for the encoder.
  5091. Any previously set output state on @encoder will be replaced by the newly
  5092. created one.
  5093. The specified @caps should not contain any resolution, pixel-aspect-ratio,
  5094. framerate, codec-data, .... Those should be specified instead in the returned
  5095. #GstVideoCodecState.
  5096. If the subclass wishes to copy over existing fields (like pixel aspect ratio,
  5097. or framerate) from an existing #GstVideoCodecState, it can be provided as a
  5098. @reference.
  5099. If the subclass wishes to override some fields from the output state (like
  5100. pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.
  5101. The new output state will only take effect (set on pads and buffers) starting
  5102. from the next call to #gst_video_encoder_finish_frame().</doc>
  5103. <return-value transfer-ownership="full">
  5104. <doc xml:space="preserve">the newly configured output state.</doc>
  5105. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  5106. </return-value>
  5107. <parameters>
  5108. <instance-parameter name="encoder" transfer-ownership="none">
  5109. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  5110. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5111. </instance-parameter>
  5112. <parameter name="caps" transfer-ownership="full">
  5113. <doc xml:space="preserve">the #GstCaps to use for the output</doc>
  5114. <type name="Gst.Caps" c:type="GstCaps*"/>
  5115. </parameter>
  5116. <parameter name="reference"
  5117. transfer-ownership="none"
  5118. nullable="1"
  5119. allow-none="1">
  5120. <doc xml:space="preserve">An optional reference @GstVideoCodecState</doc>
  5121. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  5122. </parameter>
  5123. </parameters>
  5124. </method>
  5125. <field name="element" readable="0" private="1">
  5126. <type name="Gst.Element" c:type="GstElement"/>
  5127. </field>
  5128. <field name="sinkpad" readable="0" private="1">
  5129. <type name="Gst.Pad" c:type="GstPad*"/>
  5130. </field>
  5131. <field name="srcpad" readable="0" private="1">
  5132. <type name="Gst.Pad" c:type="GstPad*"/>
  5133. </field>
  5134. <field name="stream_lock" readable="0" private="1">
  5135. <type name="GLib.RecMutex" c:type="GRecMutex"/>
  5136. </field>
  5137. <field name="input_segment" readable="0" private="1">
  5138. <type name="Gst.Segment" c:type="GstSegment"/>
  5139. </field>
  5140. <field name="output_segment" readable="0" private="1">
  5141. <type name="Gst.Segment" c:type="GstSegment"/>
  5142. </field>
  5143. <field name="priv" readable="0" private="1">
  5144. <type name="VideoEncoderPrivate" c:type="GstVideoEncoderPrivate*"/>
  5145. </field>
  5146. <field name="padding" readable="0" private="1">
  5147. <array zero-terminated="0" c:type="void" fixed-size="20">
  5148. <type name="gpointer" c:type="void*"/>
  5149. </array>
  5150. </field>
  5151. </class>
  5152. <record name="VideoEncoderClass"
  5153. c:type="GstVideoEncoderClass"
  5154. glib:is-gtype-struct-for="VideoEncoder">
  5155. <doc xml:space="preserve">Subclasses can override any of the available virtual methods or not, as
  5156. needed. At minimum @handle_frame needs to be overridden, and @set_format
  5157. and @get_caps are likely needed as well.</doc>
  5158. <field name="element_class" readable="0" private="1">
  5159. <type name="Gst.ElementClass" c:type="GstElementClass"/>
  5160. </field>
  5161. <field name="open">
  5162. <callback name="open">
  5163. <return-value transfer-ownership="none">
  5164. <type name="gboolean" c:type="gboolean"/>
  5165. </return-value>
  5166. <parameters>
  5167. <parameter name="encoder" transfer-ownership="none">
  5168. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5169. </parameter>
  5170. </parameters>
  5171. </callback>
  5172. </field>
  5173. <field name="close">
  5174. <callback name="close">
  5175. <return-value transfer-ownership="none">
  5176. <type name="gboolean" c:type="gboolean"/>
  5177. </return-value>
  5178. <parameters>
  5179. <parameter name="encoder" transfer-ownership="none">
  5180. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5181. </parameter>
  5182. </parameters>
  5183. </callback>
  5184. </field>
  5185. <field name="start">
  5186. <callback name="start">
  5187. <return-value transfer-ownership="none">
  5188. <type name="gboolean" c:type="gboolean"/>
  5189. </return-value>
  5190. <parameters>
  5191. <parameter name="encoder" transfer-ownership="none">
  5192. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5193. </parameter>
  5194. </parameters>
  5195. </callback>
  5196. </field>
  5197. <field name="stop">
  5198. <callback name="stop">
  5199. <return-value transfer-ownership="none">
  5200. <type name="gboolean" c:type="gboolean"/>
  5201. </return-value>
  5202. <parameters>
  5203. <parameter name="encoder" transfer-ownership="none">
  5204. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5205. </parameter>
  5206. </parameters>
  5207. </callback>
  5208. </field>
  5209. <field name="set_format">
  5210. <callback name="set_format">
  5211. <return-value transfer-ownership="none">
  5212. <type name="gboolean" c:type="gboolean"/>
  5213. </return-value>
  5214. <parameters>
  5215. <parameter name="encoder" transfer-ownership="none">
  5216. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5217. </parameter>
  5218. <parameter name="state" transfer-ownership="none">
  5219. <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
  5220. </parameter>
  5221. </parameters>
  5222. </callback>
  5223. </field>
  5224. <field name="handle_frame">
  5225. <callback name="handle_frame">
  5226. <return-value transfer-ownership="none">
  5227. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5228. </return-value>
  5229. <parameters>
  5230. <parameter name="encoder" transfer-ownership="none">
  5231. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5232. </parameter>
  5233. <parameter name="frame" transfer-ownership="none">
  5234. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  5235. </parameter>
  5236. </parameters>
  5237. </callback>
  5238. </field>
  5239. <field name="reset">
  5240. <callback name="reset">
  5241. <return-value transfer-ownership="none">
  5242. <type name="gboolean" c:type="gboolean"/>
  5243. </return-value>
  5244. <parameters>
  5245. <parameter name="encoder" transfer-ownership="none">
  5246. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5247. </parameter>
  5248. <parameter name="hard" transfer-ownership="none">
  5249. <type name="gboolean" c:type="gboolean"/>
  5250. </parameter>
  5251. </parameters>
  5252. </callback>
  5253. </field>
  5254. <field name="finish">
  5255. <callback name="finish">
  5256. <return-value transfer-ownership="none">
  5257. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5258. </return-value>
  5259. <parameters>
  5260. <parameter name="encoder" transfer-ownership="none">
  5261. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5262. </parameter>
  5263. </parameters>
  5264. </callback>
  5265. </field>
  5266. <field name="pre_push">
  5267. <callback name="pre_push">
  5268. <return-value transfer-ownership="none">
  5269. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5270. </return-value>
  5271. <parameters>
  5272. <parameter name="encoder" transfer-ownership="none">
  5273. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5274. </parameter>
  5275. <parameter name="frame" transfer-ownership="none">
  5276. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  5277. </parameter>
  5278. </parameters>
  5279. </callback>
  5280. </field>
  5281. <field name="getcaps">
  5282. <callback name="getcaps">
  5283. <return-value transfer-ownership="full">
  5284. <type name="Gst.Caps" c:type="GstCaps*"/>
  5285. </return-value>
  5286. <parameters>
  5287. <parameter name="enc" transfer-ownership="none">
  5288. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5289. </parameter>
  5290. <parameter name="filter" transfer-ownership="none">
  5291. <type name="Gst.Caps" c:type="GstCaps*"/>
  5292. </parameter>
  5293. </parameters>
  5294. </callback>
  5295. </field>
  5296. <field name="sink_event">
  5297. <callback name="sink_event">
  5298. <return-value transfer-ownership="none">
  5299. <type name="gboolean" c:type="gboolean"/>
  5300. </return-value>
  5301. <parameters>
  5302. <parameter name="encoder" transfer-ownership="none">
  5303. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5304. </parameter>
  5305. <parameter name="event" transfer-ownership="none">
  5306. <type name="Gst.Event" c:type="GstEvent*"/>
  5307. </parameter>
  5308. </parameters>
  5309. </callback>
  5310. </field>
  5311. <field name="src_event">
  5312. <callback name="src_event">
  5313. <return-value transfer-ownership="none">
  5314. <type name="gboolean" c:type="gboolean"/>
  5315. </return-value>
  5316. <parameters>
  5317. <parameter name="encoder" transfer-ownership="none">
  5318. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5319. </parameter>
  5320. <parameter name="event" transfer-ownership="none">
  5321. <type name="Gst.Event" c:type="GstEvent*"/>
  5322. </parameter>
  5323. </parameters>
  5324. </callback>
  5325. </field>
  5326. <field name="negotiate">
  5327. <callback name="negotiate">
  5328. <return-value transfer-ownership="none">
  5329. <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
  5330. <type name="gboolean" c:type="gboolean"/>
  5331. </return-value>
  5332. <parameters>
  5333. <parameter name="encoder" transfer-ownership="none">
  5334. <doc xml:space="preserve">a #GstVideoEncoder</doc>
  5335. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5336. </parameter>
  5337. </parameters>
  5338. </callback>
  5339. </field>
  5340. <field name="decide_allocation">
  5341. <callback name="decide_allocation">
  5342. <return-value transfer-ownership="none">
  5343. <type name="gboolean" c:type="gboolean"/>
  5344. </return-value>
  5345. <parameters>
  5346. <parameter name="encoder" transfer-ownership="none">
  5347. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5348. </parameter>
  5349. <parameter name="query" transfer-ownership="none">
  5350. <type name="Gst.Query" c:type="GstQuery*"/>
  5351. </parameter>
  5352. </parameters>
  5353. </callback>
  5354. </field>
  5355. <field name="propose_allocation">
  5356. <callback name="propose_allocation">
  5357. <return-value transfer-ownership="none">
  5358. <type name="gboolean" c:type="gboolean"/>
  5359. </return-value>
  5360. <parameters>
  5361. <parameter name="encoder" transfer-ownership="none">
  5362. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5363. </parameter>
  5364. <parameter name="query" transfer-ownership="none">
  5365. <type name="Gst.Query" c:type="GstQuery*"/>
  5366. </parameter>
  5367. </parameters>
  5368. </callback>
  5369. </field>
  5370. <field name="flush">
  5371. <callback name="flush">
  5372. <return-value transfer-ownership="none">
  5373. <type name="gboolean" c:type="gboolean"/>
  5374. </return-value>
  5375. <parameters>
  5376. <parameter name="encoder" transfer-ownership="none">
  5377. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5378. </parameter>
  5379. </parameters>
  5380. </callback>
  5381. </field>
  5382. <field name="sink_query">
  5383. <callback name="sink_query">
  5384. <return-value transfer-ownership="none">
  5385. <type name="gboolean" c:type="gboolean"/>
  5386. </return-value>
  5387. <parameters>
  5388. <parameter name="encoder" transfer-ownership="none">
  5389. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5390. </parameter>
  5391. <parameter name="query" transfer-ownership="none">
  5392. <type name="Gst.Query" c:type="GstQuery*"/>
  5393. </parameter>
  5394. </parameters>
  5395. </callback>
  5396. </field>
  5397. <field name="src_query">
  5398. <callback name="src_query">
  5399. <return-value transfer-ownership="none">
  5400. <type name="gboolean" c:type="gboolean"/>
  5401. </return-value>
  5402. <parameters>
  5403. <parameter name="encoder" transfer-ownership="none">
  5404. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5405. </parameter>
  5406. <parameter name="query" transfer-ownership="none">
  5407. <type name="Gst.Query" c:type="GstQuery*"/>
  5408. </parameter>
  5409. </parameters>
  5410. </callback>
  5411. </field>
  5412. <field name="transform_meta">
  5413. <callback name="transform_meta">
  5414. <return-value transfer-ownership="none">
  5415. <type name="gboolean" c:type="gboolean"/>
  5416. </return-value>
  5417. <parameters>
  5418. <parameter name="encoder" transfer-ownership="none">
  5419. <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
  5420. </parameter>
  5421. <parameter name="frame" transfer-ownership="none">
  5422. <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
  5423. </parameter>
  5424. <parameter name="meta" transfer-ownership="none">
  5425. <type name="Gst.Meta" c:type="GstMeta*"/>
  5426. </parameter>
  5427. </parameters>
  5428. </callback>
  5429. </field>
  5430. <field name="_gst_reserved" readable="0" private="1">
  5431. <array zero-terminated="0" c:type="gpointer" fixed-size="16">
  5432. <type name="gpointer" c:type="gpointer"/>
  5433. </array>
  5434. </field>
  5435. </record>
  5436. <record name="VideoEncoderPrivate"
  5437. c:type="GstVideoEncoderPrivate"
  5438. disguised="1">
  5439. </record>
  5440. <class name="VideoFilter"
  5441. c:symbol-prefix="video_filter"
  5442. c:type="GstVideoFilter"
  5443. parent="GstBase.BaseTransform"
  5444. abstract="1"
  5445. glib:type-name="GstVideoFilter"
  5446. glib:get-type="gst_video_filter_get_type"
  5447. glib:type-struct="VideoFilterClass">
  5448. <doc xml:space="preserve">&lt;refsect2&gt;
  5449. &lt;para&gt;
  5450. Provides useful functions and a base class for video filters.
  5451. &lt;/para&gt;
  5452. &lt;para&gt;
  5453. The videofilter will by default enable QoS on the parent GstBaseTransform
  5454. to implement frame dropping.
  5455. &lt;/para&gt;
  5456. &lt;/refsect2&gt;</doc>
  5457. <virtual-method name="set_info">
  5458. <return-value transfer-ownership="none">
  5459. <type name="gboolean" c:type="gboolean"/>
  5460. </return-value>
  5461. <parameters>
  5462. <instance-parameter name="filter" transfer-ownership="none">
  5463. <type name="VideoFilter" c:type="GstVideoFilter*"/>
  5464. </instance-parameter>
  5465. <parameter name="incaps" transfer-ownership="none">
  5466. <type name="Gst.Caps" c:type="GstCaps*"/>
  5467. </parameter>
  5468. <parameter name="in_info" transfer-ownership="none">
  5469. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  5470. </parameter>
  5471. <parameter name="outcaps" transfer-ownership="none">
  5472. <type name="Gst.Caps" c:type="GstCaps*"/>
  5473. </parameter>
  5474. <parameter name="out_info" transfer-ownership="none">
  5475. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  5476. </parameter>
  5477. </parameters>
  5478. </virtual-method>
  5479. <virtual-method name="transform_frame">
  5480. <return-value transfer-ownership="none">
  5481. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5482. </return-value>
  5483. <parameters>
  5484. <instance-parameter name="filter" transfer-ownership="none">
  5485. <type name="VideoFilter" c:type="GstVideoFilter*"/>
  5486. </instance-parameter>
  5487. <parameter name="inframe" transfer-ownership="none">
  5488. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  5489. </parameter>
  5490. <parameter name="outframe" transfer-ownership="none">
  5491. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  5492. </parameter>
  5493. </parameters>
  5494. </virtual-method>
  5495. <virtual-method name="transform_frame_ip">
  5496. <return-value transfer-ownership="none">
  5497. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5498. </return-value>
  5499. <parameters>
  5500. <instance-parameter name="trans" transfer-ownership="none">
  5501. <type name="VideoFilter" c:type="GstVideoFilter*"/>
  5502. </instance-parameter>
  5503. <parameter name="frame" transfer-ownership="none">
  5504. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  5505. </parameter>
  5506. </parameters>
  5507. </virtual-method>
  5508. <field name="element">
  5509. <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
  5510. </field>
  5511. <field name="negotiated">
  5512. <type name="gboolean" c:type="gboolean"/>
  5513. </field>
  5514. <field name="in_info">
  5515. <type name="VideoInfo" c:type="GstVideoInfo"/>
  5516. </field>
  5517. <field name="out_info">
  5518. <type name="VideoInfo" c:type="GstVideoInfo"/>
  5519. </field>
  5520. <field name="_gst_reserved" readable="0" private="1">
  5521. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  5522. <type name="gpointer" c:type="gpointer"/>
  5523. </array>
  5524. </field>
  5525. </class>
  5526. <record name="VideoFilterClass"
  5527. c:type="GstVideoFilterClass"
  5528. glib:is-gtype-struct-for="VideoFilter">
  5529. <doc xml:space="preserve">The video filter class structure.</doc>
  5530. <field name="parent_class">
  5531. <doc xml:space="preserve">the parent class structure</doc>
  5532. <type name="GstBase.BaseTransformClass"
  5533. c:type="GstBaseTransformClass"/>
  5534. </field>
  5535. <field name="set_info">
  5536. <callback name="set_info">
  5537. <return-value transfer-ownership="none">
  5538. <type name="gboolean" c:type="gboolean"/>
  5539. </return-value>
  5540. <parameters>
  5541. <parameter name="filter" transfer-ownership="none">
  5542. <type name="VideoFilter" c:type="GstVideoFilter*"/>
  5543. </parameter>
  5544. <parameter name="incaps" transfer-ownership="none">
  5545. <type name="Gst.Caps" c:type="GstCaps*"/>
  5546. </parameter>
  5547. <parameter name="in_info" transfer-ownership="none">
  5548. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  5549. </parameter>
  5550. <parameter name="outcaps" transfer-ownership="none">
  5551. <type name="Gst.Caps" c:type="GstCaps*"/>
  5552. </parameter>
  5553. <parameter name="out_info" transfer-ownership="none">
  5554. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  5555. </parameter>
  5556. </parameters>
  5557. </callback>
  5558. </field>
  5559. <field name="transform_frame">
  5560. <callback name="transform_frame">
  5561. <return-value transfer-ownership="none">
  5562. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5563. </return-value>
  5564. <parameters>
  5565. <parameter name="filter" transfer-ownership="none">
  5566. <type name="VideoFilter" c:type="GstVideoFilter*"/>
  5567. </parameter>
  5568. <parameter name="inframe" transfer-ownership="none">
  5569. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  5570. </parameter>
  5571. <parameter name="outframe" transfer-ownership="none">
  5572. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  5573. </parameter>
  5574. </parameters>
  5575. </callback>
  5576. </field>
  5577. <field name="transform_frame_ip">
  5578. <callback name="transform_frame_ip">
  5579. <return-value transfer-ownership="none">
  5580. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  5581. </return-value>
  5582. <parameters>
  5583. <parameter name="trans" transfer-ownership="none">
  5584. <type name="VideoFilter" c:type="GstVideoFilter*"/>
  5585. </parameter>
  5586. <parameter name="frame" transfer-ownership="none">
  5587. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  5588. </parameter>
  5589. </parameters>
  5590. </callback>
  5591. </field>
  5592. <field name="_gst_reserved" readable="0" private="1">
  5593. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  5594. <type name="gpointer" c:type="gpointer"/>
  5595. </array>
  5596. </field>
  5597. </record>
  5598. <bitfield name="VideoFlags"
  5599. glib:type-name="GstVideoFlags"
  5600. glib:get-type="gst_video_flags_get_type"
  5601. c:type="GstVideoFlags">
  5602. <doc xml:space="preserve">Extra video flags</doc>
  5603. <member name="none"
  5604. value="0"
  5605. c:identifier="GST_VIDEO_FLAG_NONE"
  5606. glib:nick="none">
  5607. <doc xml:space="preserve">no flags</doc>
  5608. </member>
  5609. <member name="variable_fps"
  5610. value="1"
  5611. c:identifier="GST_VIDEO_FLAG_VARIABLE_FPS"
  5612. glib:nick="variable-fps">
  5613. <doc xml:space="preserve">a variable fps is selected, fps_n and fps_d
  5614. denote the maximum fps of the video</doc>
  5615. </member>
  5616. <member name="premultiplied_alpha"
  5617. value="2"
  5618. c:identifier="GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA"
  5619. glib:nick="premultiplied-alpha">
  5620. <doc xml:space="preserve">Each color has been scaled by the alpha
  5621. value.</doc>
  5622. </member>
  5623. </bitfield>
  5624. <enumeration name="VideoFormat"
  5625. glib:type-name="GstVideoFormat"
  5626. glib:get-type="gst_video_format_get_type"
  5627. c:type="GstVideoFormat">
  5628. <doc xml:space="preserve">Enum value describing the most common video formats.</doc>
  5629. <member name="unknown"
  5630. value="0"
  5631. c:identifier="GST_VIDEO_FORMAT_UNKNOWN"
  5632. glib:nick="unknown">
  5633. <doc xml:space="preserve">Unknown or unset video format id</doc>
  5634. </member>
  5635. <member name="encoded"
  5636. value="1"
  5637. c:identifier="GST_VIDEO_FORMAT_ENCODED"
  5638. glib:nick="encoded">
  5639. <doc xml:space="preserve">Encoded video format. Only ever use that in caps for
  5640. special video formats in combination with non-system
  5641. memory GstCapsFeatures where it does not make sense
  5642. to specify a real video format.</doc>
  5643. </member>
  5644. <member name="i420"
  5645. value="2"
  5646. c:identifier="GST_VIDEO_FORMAT_I420"
  5647. glib:nick="i420">
  5648. <doc xml:space="preserve">planar 4:2:0 YUV</doc>
  5649. </member>
  5650. <member name="yv12"
  5651. value="3"
  5652. c:identifier="GST_VIDEO_FORMAT_YV12"
  5653. glib:nick="yv12">
  5654. <doc xml:space="preserve">planar 4:2:0 YVU (like I420 but UV planes swapped)</doc>
  5655. </member>
  5656. <member name="yuy2"
  5657. value="4"
  5658. c:identifier="GST_VIDEO_FORMAT_YUY2"
  5659. glib:nick="yuy2">
  5660. <doc xml:space="preserve">packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)</doc>
  5661. </member>
  5662. <member name="uyvy"
  5663. value="5"
  5664. c:identifier="GST_VIDEO_FORMAT_UYVY"
  5665. glib:nick="uyvy">
  5666. <doc xml:space="preserve">packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)</doc>
  5667. </member>
  5668. <member name="ayuv"
  5669. value="6"
  5670. c:identifier="GST_VIDEO_FORMAT_AYUV"
  5671. glib:nick="ayuv">
  5672. <doc xml:space="preserve">packed 4:4:4 YUV with alpha channel (A0-Y0-U0-V0 ...)</doc>
  5673. </member>
  5674. <member name="rgbx"
  5675. value="7"
  5676. c:identifier="GST_VIDEO_FORMAT_RGBx"
  5677. glib:nick="rgbx">
  5678. <doc xml:space="preserve">sparse rgb packed into 32 bit, space last</doc>
  5679. </member>
  5680. <member name="bgrx"
  5681. value="8"
  5682. c:identifier="GST_VIDEO_FORMAT_BGRx"
  5683. glib:nick="bgrx">
  5684. <doc xml:space="preserve">sparse reverse rgb packed into 32 bit, space last</doc>
  5685. </member>
  5686. <member name="xrgb"
  5687. value="9"
  5688. c:identifier="GST_VIDEO_FORMAT_xRGB"
  5689. glib:nick="xrgb">
  5690. <doc xml:space="preserve">sparse rgb packed into 32 bit, space first</doc>
  5691. </member>
  5692. <member name="xbgr"
  5693. value="10"
  5694. c:identifier="GST_VIDEO_FORMAT_xBGR"
  5695. glib:nick="xbgr">
  5696. <doc xml:space="preserve">sparse reverse rgb packed into 32 bit, space first</doc>
  5697. </member>
  5698. <member name="rgba"
  5699. value="11"
  5700. c:identifier="GST_VIDEO_FORMAT_RGBA"
  5701. glib:nick="rgba">
  5702. <doc xml:space="preserve">rgb with alpha channel last</doc>
  5703. </member>
  5704. <member name="bgra"
  5705. value="12"
  5706. c:identifier="GST_VIDEO_FORMAT_BGRA"
  5707. glib:nick="bgra">
  5708. <doc xml:space="preserve">reverse rgb with alpha channel last</doc>
  5709. </member>
  5710. <member name="argb"
  5711. value="13"
  5712. c:identifier="GST_VIDEO_FORMAT_ARGB"
  5713. glib:nick="argb">
  5714. <doc xml:space="preserve">rgb with alpha channel first</doc>
  5715. </member>
  5716. <member name="abgr"
  5717. value="14"
  5718. c:identifier="GST_VIDEO_FORMAT_ABGR"
  5719. glib:nick="abgr">
  5720. <doc xml:space="preserve">reverse rgb with alpha channel first</doc>
  5721. </member>
  5722. <member name="rgb"
  5723. value="15"
  5724. c:identifier="GST_VIDEO_FORMAT_RGB"
  5725. glib:nick="rgb">
  5726. <doc xml:space="preserve">rgb</doc>
  5727. </member>
  5728. <member name="bgr"
  5729. value="16"
  5730. c:identifier="GST_VIDEO_FORMAT_BGR"
  5731. glib:nick="bgr">
  5732. <doc xml:space="preserve">reverse rgb</doc>
  5733. </member>
  5734. <member name="y41b"
  5735. value="17"
  5736. c:identifier="GST_VIDEO_FORMAT_Y41B"
  5737. glib:nick="y41b">
  5738. <doc xml:space="preserve">planar 4:1:1 YUV</doc>
  5739. </member>
  5740. <member name="y42b"
  5741. value="18"
  5742. c:identifier="GST_VIDEO_FORMAT_Y42B"
  5743. glib:nick="y42b">
  5744. <doc xml:space="preserve">planar 4:2:2 YUV</doc>
  5745. </member>
  5746. <member name="yvyu"
  5747. value="19"
  5748. c:identifier="GST_VIDEO_FORMAT_YVYU"
  5749. glib:nick="yvyu">
  5750. <doc xml:space="preserve">packed 4:2:2 YUV (Y0-V0-Y1-U0 Y2-V2-Y3-U2 Y4 ...)</doc>
  5751. </member>
  5752. <member name="y444"
  5753. value="20"
  5754. c:identifier="GST_VIDEO_FORMAT_Y444"
  5755. glib:nick="y444">
  5756. <doc xml:space="preserve">planar 4:4:4 YUV</doc>
  5757. </member>
  5758. <member name="v210"
  5759. value="21"
  5760. c:identifier="GST_VIDEO_FORMAT_v210"
  5761. glib:nick="v210">
  5762. <doc xml:space="preserve">packed 4:2:2 10-bit YUV, complex format</doc>
  5763. </member>
  5764. <member name="v216"
  5765. value="22"
  5766. c:identifier="GST_VIDEO_FORMAT_v216"
  5767. glib:nick="v216">
  5768. <doc xml:space="preserve">packed 4:2:2 16-bit YUV, Y0-U0-Y1-V1 order</doc>
  5769. </member>
  5770. <member name="nv12"
  5771. value="23"
  5772. c:identifier="GST_VIDEO_FORMAT_NV12"
  5773. glib:nick="nv12">
  5774. <doc xml:space="preserve">planar 4:2:0 YUV with interleaved UV plane</doc>
  5775. </member>
  5776. <member name="nv21"
  5777. value="24"
  5778. c:identifier="GST_VIDEO_FORMAT_NV21"
  5779. glib:nick="nv21">
  5780. <doc xml:space="preserve">planar 4:2:0 YUV with interleaved VU plane</doc>
  5781. </member>
  5782. <member name="gray8"
  5783. value="25"
  5784. c:identifier="GST_VIDEO_FORMAT_GRAY8"
  5785. glib:nick="gray8">
  5786. <doc xml:space="preserve">8-bit grayscale</doc>
  5787. </member>
  5788. <member name="gray16_be"
  5789. value="26"
  5790. c:identifier="GST_VIDEO_FORMAT_GRAY16_BE"
  5791. glib:nick="gray16-be">
  5792. <doc xml:space="preserve">16-bit grayscale, most significant byte first</doc>
  5793. </member>
  5794. <member name="gray16_le"
  5795. value="27"
  5796. c:identifier="GST_VIDEO_FORMAT_GRAY16_LE"
  5797. glib:nick="gray16-le">
  5798. <doc xml:space="preserve">16-bit grayscale, least significant byte first</doc>
  5799. </member>
  5800. <member name="v308"
  5801. value="28"
  5802. c:identifier="GST_VIDEO_FORMAT_v308"
  5803. glib:nick="v308">
  5804. <doc xml:space="preserve">packed 4:4:4 YUV</doc>
  5805. </member>
  5806. <member name="rgb16"
  5807. value="29"
  5808. c:identifier="GST_VIDEO_FORMAT_RGB16"
  5809. glib:nick="rgb16">
  5810. <doc xml:space="preserve">rgb 5-6-5 bits per component</doc>
  5811. </member>
  5812. <member name="bgr16"
  5813. value="30"
  5814. c:identifier="GST_VIDEO_FORMAT_BGR16"
  5815. glib:nick="bgr16">
  5816. <doc xml:space="preserve">reverse rgb 5-6-5 bits per component</doc>
  5817. </member>
  5818. <member name="rgb15"
  5819. value="31"
  5820. c:identifier="GST_VIDEO_FORMAT_RGB15"
  5821. glib:nick="rgb15">
  5822. <doc xml:space="preserve">rgb 5-5-5 bits per component</doc>
  5823. </member>
  5824. <member name="bgr15"
  5825. value="32"
  5826. c:identifier="GST_VIDEO_FORMAT_BGR15"
  5827. glib:nick="bgr15">
  5828. <doc xml:space="preserve">reverse rgb 5-5-5 bits per component</doc>
  5829. </member>
  5830. <member name="uyvp"
  5831. value="33"
  5832. c:identifier="GST_VIDEO_FORMAT_UYVP"
  5833. glib:nick="uyvp">
  5834. <doc xml:space="preserve">packed 10-bit 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)</doc>
  5835. </member>
  5836. <member name="a420"
  5837. value="34"
  5838. c:identifier="GST_VIDEO_FORMAT_A420"
  5839. glib:nick="a420">
  5840. <doc xml:space="preserve">planar 4:4:2:0 AYUV</doc>
  5841. </member>
  5842. <member name="rgb8p"
  5843. value="35"
  5844. c:identifier="GST_VIDEO_FORMAT_RGB8P"
  5845. glib:nick="rgb8p">
  5846. <doc xml:space="preserve">8-bit paletted RGB</doc>
  5847. </member>
  5848. <member name="yuv9"
  5849. value="36"
  5850. c:identifier="GST_VIDEO_FORMAT_YUV9"
  5851. glib:nick="yuv9">
  5852. <doc xml:space="preserve">planar 4:1:0 YUV</doc>
  5853. </member>
  5854. <member name="yvu9"
  5855. value="37"
  5856. c:identifier="GST_VIDEO_FORMAT_YVU9"
  5857. glib:nick="yvu9">
  5858. <doc xml:space="preserve">planar 4:1:0 YUV (like YUV9 but UV planes swapped)</doc>
  5859. </member>
  5860. <member name="iyu1"
  5861. value="38"
  5862. c:identifier="GST_VIDEO_FORMAT_IYU1"
  5863. glib:nick="iyu1">
  5864. <doc xml:space="preserve">packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...)</doc>
  5865. </member>
  5866. <member name="argb64"
  5867. value="39"
  5868. c:identifier="GST_VIDEO_FORMAT_ARGB64"
  5869. glib:nick="argb64">
  5870. <doc xml:space="preserve">rgb with alpha channel first, 16 bits per channel</doc>
  5871. </member>
  5872. <member name="ayuv64"
  5873. value="40"
  5874. c:identifier="GST_VIDEO_FORMAT_AYUV64"
  5875. glib:nick="ayuv64">
  5876. <doc xml:space="preserve">packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...)</doc>
  5877. </member>
  5878. <member name="r210"
  5879. value="41"
  5880. c:identifier="GST_VIDEO_FORMAT_r210"
  5881. glib:nick="r210">
  5882. <doc xml:space="preserve">packed 4:4:4 RGB, 10 bits per channel</doc>
  5883. </member>
  5884. <member name="i420_10be"
  5885. value="42"
  5886. c:identifier="GST_VIDEO_FORMAT_I420_10BE"
  5887. glib:nick="i420-10be">
  5888. <doc xml:space="preserve">planar 4:2:0 YUV, 10 bits per channel</doc>
  5889. </member>
  5890. <member name="i420_10le"
  5891. value="43"
  5892. c:identifier="GST_VIDEO_FORMAT_I420_10LE"
  5893. glib:nick="i420-10le">
  5894. <doc xml:space="preserve">planar 4:2:0 YUV, 10 bits per channel</doc>
  5895. </member>
  5896. <member name="i422_10be"
  5897. value="44"
  5898. c:identifier="GST_VIDEO_FORMAT_I422_10BE"
  5899. glib:nick="i422-10be">
  5900. <doc xml:space="preserve">planar 4:2:2 YUV, 10 bits per channel</doc>
  5901. </member>
  5902. <member name="i422_10le"
  5903. value="45"
  5904. c:identifier="GST_VIDEO_FORMAT_I422_10LE"
  5905. glib:nick="i422-10le">
  5906. <doc xml:space="preserve">planar 4:2:2 YUV, 10 bits per channel</doc>
  5907. </member>
  5908. <member name="y444_10be"
  5909. value="46"
  5910. c:identifier="GST_VIDEO_FORMAT_Y444_10BE"
  5911. glib:nick="y444-10be">
  5912. <doc xml:space="preserve">planar 4:4:4 YUV, 10 bits per channel</doc>
  5913. </member>
  5914. <member name="y444_10le"
  5915. value="47"
  5916. c:identifier="GST_VIDEO_FORMAT_Y444_10LE"
  5917. glib:nick="y444-10le">
  5918. <doc xml:space="preserve">planar 4:4:4 YUV, 10 bits per channel</doc>
  5919. </member>
  5920. <member name="gbr"
  5921. value="48"
  5922. c:identifier="GST_VIDEO_FORMAT_GBR"
  5923. glib:nick="gbr">
  5924. <doc xml:space="preserve">planar 4:4:4 RGB, 8 bits per channel</doc>
  5925. </member>
  5926. <member name="gbr_10be"
  5927. value="49"
  5928. c:identifier="GST_VIDEO_FORMAT_GBR_10BE"
  5929. glib:nick="gbr-10be">
  5930. <doc xml:space="preserve">planar 4:4:4 RGB, 10 bits per channel</doc>
  5931. </member>
  5932. <member name="gbr_10le"
  5933. value="50"
  5934. c:identifier="GST_VIDEO_FORMAT_GBR_10LE"
  5935. glib:nick="gbr-10le">
  5936. <doc xml:space="preserve">planar 4:4:4 RGB, 10 bits per channel</doc>
  5937. </member>
  5938. <member name="nv16"
  5939. value="51"
  5940. c:identifier="GST_VIDEO_FORMAT_NV16"
  5941. glib:nick="nv16">
  5942. <doc xml:space="preserve">planar 4:2:2 YUV with interleaved UV plane</doc>
  5943. </member>
  5944. <member name="nv24"
  5945. value="52"
  5946. c:identifier="GST_VIDEO_FORMAT_NV24"
  5947. glib:nick="nv24">
  5948. <doc xml:space="preserve">planar 4:4:4 YUV with interleaved UV plane</doc>
  5949. </member>
  5950. <member name="nv12_64z32"
  5951. value="53"
  5952. c:identifier="GST_VIDEO_FORMAT_NV12_64Z32"
  5953. glib:nick="nv12-64z32">
  5954. <doc xml:space="preserve">NV12 with 64x32 tiling in zigzag pattern</doc>
  5955. </member>
  5956. <member name="a420_10be"
  5957. value="54"
  5958. c:identifier="GST_VIDEO_FORMAT_A420_10BE"
  5959. glib:nick="a420-10be">
  5960. <doc xml:space="preserve">planar 4:4:2:0 YUV, 10 bits per channel</doc>
  5961. </member>
  5962. <member name="a420_10le"
  5963. value="55"
  5964. c:identifier="GST_VIDEO_FORMAT_A420_10LE"
  5965. glib:nick="a420-10le">
  5966. <doc xml:space="preserve">planar 4:4:2:0 YUV, 10 bits per channel</doc>
  5967. </member>
  5968. <member name="a422_10be"
  5969. value="56"
  5970. c:identifier="GST_VIDEO_FORMAT_A422_10BE"
  5971. glib:nick="a422-10be">
  5972. <doc xml:space="preserve">planar 4:4:2:2 YUV, 10 bits per channel</doc>
  5973. </member>
  5974. <member name="a422_10le"
  5975. value="57"
  5976. c:identifier="GST_VIDEO_FORMAT_A422_10LE"
  5977. glib:nick="a422-10le">
  5978. <doc xml:space="preserve">planar 4:4:2:2 YUV, 10 bits per channel</doc>
  5979. </member>
  5980. <member name="a444_10be"
  5981. value="58"
  5982. c:identifier="GST_VIDEO_FORMAT_A444_10BE"
  5983. glib:nick="a444-10be">
  5984. <doc xml:space="preserve">planar 4:4:4:4 YUV, 10 bits per channel</doc>
  5985. </member>
  5986. <member name="a444_10le"
  5987. value="59"
  5988. c:identifier="GST_VIDEO_FORMAT_A444_10LE"
  5989. glib:nick="a444-10le">
  5990. <doc xml:space="preserve">planar 4:4:4:4 YUV, 10 bits per channel</doc>
  5991. </member>
  5992. <member name="nv61"
  5993. value="60"
  5994. c:identifier="GST_VIDEO_FORMAT_NV61"
  5995. glib:nick="nv61">
  5996. <doc xml:space="preserve">planar 4:2:2 YUV with interleaved VU plane (Since 1.6)</doc>
  5997. </member>
  5998. <function name="from_fourcc" c:identifier="gst_video_format_from_fourcc">
  5999. <doc xml:space="preserve">Converts a FOURCC value into the corresponding #GstVideoFormat.
  6000. If the FOURCC cannot be represented by #GstVideoFormat,
  6001. #GST_VIDEO_FORMAT_UNKNOWN is returned.</doc>
  6002. <return-value transfer-ownership="none">
  6003. <doc xml:space="preserve">the #GstVideoFormat describing the FOURCC value</doc>
  6004. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6005. </return-value>
  6006. <parameters>
  6007. <parameter name="fourcc" transfer-ownership="none">
  6008. <doc xml:space="preserve">a FOURCC value representing raw YUV video</doc>
  6009. <type name="guint32" c:type="guint32"/>
  6010. </parameter>
  6011. </parameters>
  6012. </function>
  6013. <function name="from_masks" c:identifier="gst_video_format_from_masks">
  6014. <doc xml:space="preserve">Find the #GstVideoFormat for the given parameters.</doc>
  6015. <return-value transfer-ownership="none">
  6016. <doc xml:space="preserve">a #GstVideoFormat or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
  6017. not specify a known format.</doc>
  6018. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6019. </return-value>
  6020. <parameters>
  6021. <parameter name="depth" transfer-ownership="none">
  6022. <doc xml:space="preserve">the amount of bits used for a pixel</doc>
  6023. <type name="gint" c:type="gint"/>
  6024. </parameter>
  6025. <parameter name="bpp" transfer-ownership="none">
  6026. <doc xml:space="preserve">the amount of bits used to store a pixel. This value is bigger than
  6027. @depth</doc>
  6028. <type name="gint" c:type="gint"/>
  6029. </parameter>
  6030. <parameter name="endianness" transfer-ownership="none">
  6031. <doc xml:space="preserve">the endianness of the masks, #G_LITTLE_ENDIAN or #G_BIG_ENDIAN</doc>
  6032. <type name="gint" c:type="gint"/>
  6033. </parameter>
  6034. <parameter name="red_mask" transfer-ownership="none">
  6035. <doc xml:space="preserve">the red mask</doc>
  6036. <type name="guint" c:type="guint"/>
  6037. </parameter>
  6038. <parameter name="green_mask" transfer-ownership="none">
  6039. <doc xml:space="preserve">the green mask</doc>
  6040. <type name="guint" c:type="guint"/>
  6041. </parameter>
  6042. <parameter name="blue_mask" transfer-ownership="none">
  6043. <doc xml:space="preserve">the blue mask</doc>
  6044. <type name="guint" c:type="guint"/>
  6045. </parameter>
  6046. <parameter name="alpha_mask" transfer-ownership="none">
  6047. <doc xml:space="preserve">the alpha mask, or 0 if no alpha mask</doc>
  6048. <type name="guint" c:type="guint"/>
  6049. </parameter>
  6050. </parameters>
  6051. </function>
  6052. <function name="from_string" c:identifier="gst_video_format_from_string">
  6053. <doc xml:space="preserve">Convert the @format string to its #GstVideoFormat.</doc>
  6054. <return-value transfer-ownership="none">
  6055. <doc xml:space="preserve">the #GstVideoFormat for @format or GST_VIDEO_FORMAT_UNKNOWN when the
  6056. string is not a known format.</doc>
  6057. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6058. </return-value>
  6059. <parameters>
  6060. <parameter name="format" transfer-ownership="none">
  6061. <doc xml:space="preserve">a format string</doc>
  6062. <type name="utf8" c:type="const gchar*"/>
  6063. </parameter>
  6064. </parameters>
  6065. </function>
  6066. <function name="get_info" c:identifier="gst_video_format_get_info">
  6067. <doc xml:space="preserve">Get the #GstVideoFormatInfo for @format</doc>
  6068. <return-value transfer-ownership="none">
  6069. <doc xml:space="preserve">The #GstVideoFormatInfo for @format.</doc>
  6070. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  6071. </return-value>
  6072. <parameters>
  6073. <parameter name="format" transfer-ownership="none">
  6074. <doc xml:space="preserve">a #GstVideoFormat</doc>
  6075. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6076. </parameter>
  6077. </parameters>
  6078. </function>
  6079. <function name="get_palette"
  6080. c:identifier="gst_video_format_get_palette"
  6081. version="1.2">
  6082. <doc xml:space="preserve">Get the default palette of @format. This the palette used in the pack
  6083. function for paletted formats.</doc>
  6084. <return-value transfer-ownership="none" nullable="1">
  6085. <doc xml:space="preserve">the default palette of @format or %NULL when
  6086. @format does not have a palette.</doc>
  6087. <type name="gpointer" c:type="gconstpointer"/>
  6088. </return-value>
  6089. <parameters>
  6090. <parameter name="format" transfer-ownership="none">
  6091. <doc xml:space="preserve">a #GstVideoFormat</doc>
  6092. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6093. </parameter>
  6094. <parameter name="size"
  6095. direction="out"
  6096. caller-allocates="0"
  6097. transfer-ownership="full">
  6098. <doc xml:space="preserve">size of the palette in bytes</doc>
  6099. <type name="gsize" c:type="gsize*"/>
  6100. </parameter>
  6101. </parameters>
  6102. </function>
  6103. <function name="to_fourcc" c:identifier="gst_video_format_to_fourcc">
  6104. <doc xml:space="preserve">Converts a #GstVideoFormat value into the corresponding FOURCC. Only
  6105. a few YUV formats have corresponding FOURCC values. If @format has
  6106. no corresponding FOURCC value, 0 is returned.</doc>
  6107. <return-value transfer-ownership="none">
  6108. <doc xml:space="preserve">the FOURCC corresponding to @format</doc>
  6109. <type name="guint32" c:type="guint32"/>
  6110. </return-value>
  6111. <parameters>
  6112. <parameter name="format" transfer-ownership="none">
  6113. <doc xml:space="preserve">a #GstVideoFormat video format</doc>
  6114. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6115. </parameter>
  6116. </parameters>
  6117. </function>
  6118. <function name="to_string" c:identifier="gst_video_format_to_string">
  6119. <doc xml:space="preserve">Returns a string containing a descriptive name for
  6120. the #GstVideoFormat if there is one, or NULL otherwise.</doc>
  6121. <return-value transfer-ownership="none">
  6122. <doc xml:space="preserve">the name corresponding to @format</doc>
  6123. <type name="utf8" c:type="const gchar*"/>
  6124. </return-value>
  6125. <parameters>
  6126. <parameter name="format" transfer-ownership="none">
  6127. <doc xml:space="preserve">a #GstVideoFormat video format</doc>
  6128. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6129. </parameter>
  6130. </parameters>
  6131. </function>
  6132. </enumeration>
  6133. <bitfield name="VideoFormatFlags"
  6134. glib:type-name="GstVideoFormatFlags"
  6135. glib:get-type="gst_video_format_flags_get_type"
  6136. c:type="GstVideoFormatFlags">
  6137. <doc xml:space="preserve">The different video flags that a format info can have.</doc>
  6138. <member name="yuv"
  6139. value="1"
  6140. c:identifier="GST_VIDEO_FORMAT_FLAG_YUV"
  6141. glib:nick="yuv">
  6142. <doc xml:space="preserve">The video format is YUV, components are numbered
  6143. 0=Y, 1=U, 2=V.</doc>
  6144. </member>
  6145. <member name="rgb"
  6146. value="2"
  6147. c:identifier="GST_VIDEO_FORMAT_FLAG_RGB"
  6148. glib:nick="rgb">
  6149. <doc xml:space="preserve">The video format is RGB, components are numbered
  6150. 0=R, 1=G, 2=B.</doc>
  6151. </member>
  6152. <member name="gray"
  6153. value="4"
  6154. c:identifier="GST_VIDEO_FORMAT_FLAG_GRAY"
  6155. glib:nick="gray">
  6156. <doc xml:space="preserve">The video is gray, there is one gray component
  6157. with index 0.</doc>
  6158. </member>
  6159. <member name="alpha"
  6160. value="8"
  6161. c:identifier="GST_VIDEO_FORMAT_FLAG_ALPHA"
  6162. glib:nick="alpha">
  6163. <doc xml:space="preserve">The video format has an alpha components with
  6164. the number 3.</doc>
  6165. </member>
  6166. <member name="le"
  6167. value="16"
  6168. c:identifier="GST_VIDEO_FORMAT_FLAG_LE"
  6169. glib:nick="le">
  6170. <doc xml:space="preserve">The video format has data stored in little
  6171. endianness.</doc>
  6172. </member>
  6173. <member name="palette"
  6174. value="32"
  6175. c:identifier="GST_VIDEO_FORMAT_FLAG_PALETTE"
  6176. glib:nick="palette">
  6177. <doc xml:space="preserve">The video format has a palette. The palette
  6178. is stored in the second plane and indexes are stored in the first plane.</doc>
  6179. </member>
  6180. <member name="complex"
  6181. value="64"
  6182. c:identifier="GST_VIDEO_FORMAT_FLAG_COMPLEX"
  6183. glib:nick="complex">
  6184. <doc xml:space="preserve">The video format has a complex layout that
  6185. can't be described with the usual information in the #GstVideoFormatInfo.</doc>
  6186. </member>
  6187. <member name="unpack"
  6188. value="128"
  6189. c:identifier="GST_VIDEO_FORMAT_FLAG_UNPACK"
  6190. glib:nick="unpack">
  6191. <doc xml:space="preserve">This format can be used in a
  6192. #GstVideoFormatUnpack and #GstVideoFormatPack function.</doc>
  6193. </member>
  6194. <member name="tiled"
  6195. value="256"
  6196. c:identifier="GST_VIDEO_FORMAT_FLAG_TILED"
  6197. glib:nick="tiled">
  6198. <doc xml:space="preserve">The format is tiled, there is tiling information
  6199. in the last plane.</doc>
  6200. </member>
  6201. </bitfield>
  6202. <record name="VideoFormatInfo" c:type="GstVideoFormatInfo">
  6203. <doc xml:space="preserve">Information for a video format.</doc>
  6204. <field name="format" writable="1">
  6205. <doc xml:space="preserve">#GstVideoFormat</doc>
  6206. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6207. </field>
  6208. <field name="name" writable="1">
  6209. <doc xml:space="preserve">string representation of the format</doc>
  6210. <type name="utf8" c:type="const gchar*"/>
  6211. </field>
  6212. <field name="description" writable="1">
  6213. <doc xml:space="preserve">use readable description of the format</doc>
  6214. <type name="utf8" c:type="const gchar*"/>
  6215. </field>
  6216. <field name="flags" writable="1">
  6217. <doc xml:space="preserve">#GstVideoFormatFlags</doc>
  6218. <type name="VideoFormatFlags" c:type="GstVideoFormatFlags"/>
  6219. </field>
  6220. <field name="bits" writable="1">
  6221. <doc xml:space="preserve">The number of bits used to pack data items. This can be less than 8
  6222. when multiple pixels are stored in a byte. for values &gt; 8 multiple bytes
  6223. should be read according to the endianness flag before applying the shift
  6224. and mask.</doc>
  6225. <type name="guint" c:type="guint"/>
  6226. </field>
  6227. <field name="n_components" writable="1">
  6228. <doc xml:space="preserve">the number of components in the video format.</doc>
  6229. <type name="guint" c:type="guint"/>
  6230. </field>
  6231. <field name="shift" writable="1">
  6232. <doc xml:space="preserve">the number of bits to shift away to get the component data</doc>
  6233. <array zero-terminated="0" c:type="guint" fixed-size="4">
  6234. <type name="guint" c:type="guint"/>
  6235. </array>
  6236. </field>
  6237. <field name="depth" writable="1">
  6238. <doc xml:space="preserve">the depth in bits for each component</doc>
  6239. <array zero-terminated="0" c:type="guint" fixed-size="4">
  6240. <type name="guint" c:type="guint"/>
  6241. </array>
  6242. </field>
  6243. <field name="pixel_stride" writable="1">
  6244. <doc xml:space="preserve">the pixel stride of each component. This is the amount of
  6245. bytes to the pixel immediately to the right. When bits &lt; 8, the stride is
  6246. expressed in bits. For 24-bit RGB, this would be 3 bytes, for example,
  6247. while it would be 4 bytes for RGBx or ARGB.</doc>
  6248. <array zero-terminated="0" c:type="gint" fixed-size="4">
  6249. <type name="gint" c:type="gint"/>
  6250. </array>
  6251. </field>
  6252. <field name="n_planes" writable="1">
  6253. <doc xml:space="preserve">the number of planes for this format. The number of planes can be
  6254. less than the amount of components when multiple components are packed into
  6255. one plane.</doc>
  6256. <type name="guint" c:type="guint"/>
  6257. </field>
  6258. <field name="plane" writable="1">
  6259. <doc xml:space="preserve">the plane number where a component can be found</doc>
  6260. <array zero-terminated="0" c:type="guint" fixed-size="4">
  6261. <type name="guint" c:type="guint"/>
  6262. </array>
  6263. </field>
  6264. <field name="poffset" writable="1">
  6265. <doc xml:space="preserve">the offset in the plane where the first pixel of the components
  6266. can be found.</doc>
  6267. <array zero-terminated="0" c:type="guint" fixed-size="4">
  6268. <type name="guint" c:type="guint"/>
  6269. </array>
  6270. </field>
  6271. <field name="w_sub" writable="1">
  6272. <doc xml:space="preserve">subsampling factor of the width for the component. Use
  6273. GST_VIDEO_SUB_SCALE to scale a width.</doc>
  6274. <array zero-terminated="0" c:type="guint" fixed-size="4">
  6275. <type name="guint" c:type="guint"/>
  6276. </array>
  6277. </field>
  6278. <field name="h_sub" writable="1">
  6279. <doc xml:space="preserve">subsampling factor of the height for the component. Use
  6280. GST_VIDEO_SUB_SCALE to scale a height.</doc>
  6281. <array zero-terminated="0" c:type="guint" fixed-size="4">
  6282. <type name="guint" c:type="guint"/>
  6283. </array>
  6284. </field>
  6285. <field name="unpack_format" writable="1">
  6286. <doc xml:space="preserve">the format of the unpacked pixels. This format must have the
  6287. #GST_VIDEO_FORMAT_FLAG_UNPACK flag set.</doc>
  6288. <type name="VideoFormat" c:type="GstVideoFormat"/>
  6289. </field>
  6290. <field name="unpack_func" writable="1">
  6291. <doc xml:space="preserve">an unpack function for this format</doc>
  6292. <type name="VideoFormatUnpack" c:type="GstVideoFormatUnpack"/>
  6293. </field>
  6294. <field name="pack_lines" writable="1">
  6295. <doc xml:space="preserve">the amount of lines that will be packed</doc>
  6296. <type name="gint" c:type="gint"/>
  6297. </field>
  6298. <field name="pack_func" writable="1">
  6299. <doc xml:space="preserve">an pack function for this format</doc>
  6300. <type name="VideoFormatPack" c:type="GstVideoFormatPack"/>
  6301. </field>
  6302. <field name="tile_mode" writable="1">
  6303. <doc xml:space="preserve">The tiling mode</doc>
  6304. <type name="VideoTileMode" c:type="GstVideoTileMode"/>
  6305. </field>
  6306. <field name="tile_ws" writable="1">
  6307. <doc xml:space="preserve">The width of a tile, in bytes, represented as a shift</doc>
  6308. <type name="guint" c:type="guint"/>
  6309. </field>
  6310. <field name="tile_hs" writable="1">
  6311. <doc xml:space="preserve">The height of a tile, in bytes, represented as a shift</doc>
  6312. <type name="guint" c:type="guint"/>
  6313. </field>
  6314. <field name="_gst_reserved" readable="0" private="1">
  6315. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  6316. <type name="gpointer" c:type="gpointer"/>
  6317. </array>
  6318. </field>
  6319. </record>
  6320. <callback name="VideoFormatPack" c:type="GstVideoFormatPack">
  6321. <doc xml:space="preserve">Packs @width pixels from @src to the given planes and strides in the
  6322. format @info. The pixels from source have each component interleaved
  6323. and will be packed into the planes in @data.
  6324. This function operates on pack_lines lines, meaning that @src should
  6325. contain at least pack_lines lines with a stride of @sstride and @y
  6326. should be a multiple of pack_lines.
  6327. Subsampled formats will use the horizontally and vertically cosited
  6328. component from the source. Subsampling should be performed before
  6329. packing.
  6330. Because this function does not have a x coordinate, it is not possible to
  6331. pack pixels starting from an unaligned position. For tiled images this
  6332. means that packing should start from a tile coordinate. For subsampled
  6333. formats this means that a complete pixel needs to be packed.</doc>
  6334. <return-value transfer-ownership="none">
  6335. <type name="none" c:type="void"/>
  6336. </return-value>
  6337. <parameters>
  6338. <parameter name="info" transfer-ownership="none">
  6339. <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
  6340. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  6341. </parameter>
  6342. <parameter name="flags" transfer-ownership="none">
  6343. <doc xml:space="preserve">flags to control the packing</doc>
  6344. <type name="VideoPackFlags" c:type="GstVideoPackFlags"/>
  6345. </parameter>
  6346. <parameter name="src"
  6347. transfer-ownership="none"
  6348. nullable="1"
  6349. allow-none="1">
  6350. <doc xml:space="preserve">a source array</doc>
  6351. <type name="gpointer" c:type="const gpointer"/>
  6352. </parameter>
  6353. <parameter name="sstride" transfer-ownership="none">
  6354. <doc xml:space="preserve">the source array stride</doc>
  6355. <type name="gint" c:type="gint"/>
  6356. </parameter>
  6357. <parameter name="data"
  6358. transfer-ownership="none"
  6359. nullable="1"
  6360. allow-none="1">
  6361. <doc xml:space="preserve">pointers to the destination data planes</doc>
  6362. <type name="gpointer" c:type="gpointer"/>
  6363. </parameter>
  6364. <parameter name="stride" transfer-ownership="none">
  6365. <doc xml:space="preserve">strides of the destination planes</doc>
  6366. <type name="gint" c:type="const gint"/>
  6367. </parameter>
  6368. <parameter name="chroma_site" transfer-ownership="none">
  6369. <doc xml:space="preserve">the chroma siting of the target when subsampled (not used)</doc>
  6370. <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
  6371. </parameter>
  6372. <parameter name="y" transfer-ownership="none">
  6373. <doc xml:space="preserve">the y position in the image to pack to</doc>
  6374. <type name="gint" c:type="gint"/>
  6375. </parameter>
  6376. <parameter name="width" transfer-ownership="none">
  6377. <doc xml:space="preserve">the amount of pixels to pack.</doc>
  6378. <type name="gint" c:type="gint"/>
  6379. </parameter>
  6380. </parameters>
  6381. </callback>
  6382. <callback name="VideoFormatUnpack" c:type="GstVideoFormatUnpack">
  6383. <doc xml:space="preserve">Unpacks @width pixels from the given planes and strides containing data of
  6384. format @info. The pixels will be unpacked into @dest with each component
  6385. interleaved as per @info's unpack_format, which will usually be one of
  6386. #GST_VIDEO_FORMAT_ARGB, #GST_VIDEO_FORMAT_AYUV, #GST_VIDEO_FORMAT_ARGB64 or
  6387. #GST_VIDEO_FORMAT_AYUV64 depending on the format to unpack.
  6388. @dest should at least be big enough to hold @width * bytes_per_pixel bytes
  6389. where bytes_per_pixel relates to the unpack format and will usually be
  6390. either 4 or 8 depending on the unpack format. bytes_per_pixel will be
  6391. the same as the pixel stride for plane 0 for the above formats.
  6392. For subsampled formats, the components will be duplicated in the destination
  6393. array. Reconstruction of the missing components can be performed in a
  6394. separate step after unpacking.</doc>
  6395. <return-value transfer-ownership="none">
  6396. <type name="none" c:type="void"/>
  6397. </return-value>
  6398. <parameters>
  6399. <parameter name="info" transfer-ownership="none">
  6400. <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
  6401. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  6402. </parameter>
  6403. <parameter name="flags" transfer-ownership="none">
  6404. <doc xml:space="preserve">flags to control the unpacking</doc>
  6405. <type name="VideoPackFlags" c:type="GstVideoPackFlags"/>
  6406. </parameter>
  6407. <parameter name="dest"
  6408. transfer-ownership="none"
  6409. nullable="1"
  6410. allow-none="1">
  6411. <doc xml:space="preserve">a destination array</doc>
  6412. <type name="gpointer" c:type="gpointer"/>
  6413. </parameter>
  6414. <parameter name="data"
  6415. transfer-ownership="none"
  6416. nullable="1"
  6417. allow-none="1">
  6418. <doc xml:space="preserve">pointers to the data planes</doc>
  6419. <type name="gpointer" c:type="const gpointer"/>
  6420. </parameter>
  6421. <parameter name="stride" transfer-ownership="none">
  6422. <doc xml:space="preserve">strides of the planes</doc>
  6423. <type name="gint" c:type="const gint"/>
  6424. </parameter>
  6425. <parameter name="x" transfer-ownership="none">
  6426. <doc xml:space="preserve">the x position in the image to start from</doc>
  6427. <type name="gint" c:type="gint"/>
  6428. </parameter>
  6429. <parameter name="y" transfer-ownership="none">
  6430. <doc xml:space="preserve">the y position in the image to start from</doc>
  6431. <type name="gint" c:type="gint"/>
  6432. </parameter>
  6433. <parameter name="width" transfer-ownership="none">
  6434. <doc xml:space="preserve">the amount of pixels to unpack.</doc>
  6435. <type name="gint" c:type="gint"/>
  6436. </parameter>
  6437. </parameters>
  6438. </callback>
  6439. <record name="VideoFrame" c:type="GstVideoFrame">
  6440. <doc xml:space="preserve">A video frame obtained from gst_video_frame_map()</doc>
  6441. <field name="info" writable="1">
  6442. <doc xml:space="preserve">the #GstVideoInfo</doc>
  6443. <type name="VideoInfo" c:type="GstVideoInfo"/>
  6444. </field>
  6445. <field name="flags" writable="1">
  6446. <doc xml:space="preserve">#GstVideoFrameFlags for the frame</doc>
  6447. <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
  6448. </field>
  6449. <field name="buffer" writable="1">
  6450. <doc xml:space="preserve">the mapped buffer</doc>
  6451. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  6452. </field>
  6453. <field name="meta" writable="1">
  6454. <doc xml:space="preserve">pointer to metadata if any</doc>
  6455. <type name="gpointer" c:type="gpointer"/>
  6456. </field>
  6457. <field name="id" writable="1">
  6458. <doc xml:space="preserve">id of the mapped frame. the id can for example be used to
  6459. indentify the frame in case of multiview video.</doc>
  6460. <type name="gint" c:type="gint"/>
  6461. </field>
  6462. <field name="data" writable="1">
  6463. <doc xml:space="preserve">pointers to the plane data</doc>
  6464. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  6465. <type name="gpointer" c:type="gpointer"/>
  6466. </array>
  6467. </field>
  6468. <field name="map" writable="1">
  6469. <doc xml:space="preserve">mappings of the planes</doc>
  6470. <array zero-terminated="0" c:type="GstMapInfo" fixed-size="4">
  6471. <type name="Gst.MapInfo" c:type="GstMapInfo"/>
  6472. </array>
  6473. </field>
  6474. <field name="_gst_reserved" readable="0" private="1">
  6475. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  6476. <type name="gpointer" c:type="gpointer"/>
  6477. </array>
  6478. </field>
  6479. <method name="copy" c:identifier="gst_video_frame_copy">
  6480. <doc xml:space="preserve">Copy the contents from @src to @dest.</doc>
  6481. <return-value transfer-ownership="none">
  6482. <doc xml:space="preserve">TRUE if the contents could be copied.</doc>
  6483. <type name="gboolean" c:type="gboolean"/>
  6484. </return-value>
  6485. <parameters>
  6486. <instance-parameter name="dest" transfer-ownership="none">
  6487. <doc xml:space="preserve">a #GstVideoFrame</doc>
  6488. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  6489. </instance-parameter>
  6490. <parameter name="src" transfer-ownership="none">
  6491. <doc xml:space="preserve">a #GstVideoFrame</doc>
  6492. <type name="VideoFrame" c:type="const GstVideoFrame*"/>
  6493. </parameter>
  6494. </parameters>
  6495. </method>
  6496. <method name="copy_plane" c:identifier="gst_video_frame_copy_plane">
  6497. <doc xml:space="preserve">Copy the plane with index @plane from @src to @dest.</doc>
  6498. <return-value transfer-ownership="none">
  6499. <doc xml:space="preserve">TRUE if the contents could be copied.</doc>
  6500. <type name="gboolean" c:type="gboolean"/>
  6501. </return-value>
  6502. <parameters>
  6503. <instance-parameter name="dest" transfer-ownership="none">
  6504. <doc xml:space="preserve">a #GstVideoFrame</doc>
  6505. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  6506. </instance-parameter>
  6507. <parameter name="src" transfer-ownership="none">
  6508. <doc xml:space="preserve">a #GstVideoFrame</doc>
  6509. <type name="VideoFrame" c:type="const GstVideoFrame*"/>
  6510. </parameter>
  6511. <parameter name="plane" transfer-ownership="none">
  6512. <doc xml:space="preserve">a plane</doc>
  6513. <type name="guint" c:type="guint"/>
  6514. </parameter>
  6515. </parameters>
  6516. </method>
  6517. <method name="map" c:identifier="gst_video_frame_map">
  6518. <doc xml:space="preserve">Use @info and @buffer to fill in the values of @frame. @frame is usually
  6519. allocated on the stack, and you will pass the address to the #GstVideoFrame
  6520. structure allocated on the stack; gst_video_frame_map() will then fill in
  6521. the structures with the various video-specific information you need to access
  6522. the pixels of the video buffer. You can then use accessor macros such as
  6523. GST_VIDEO_FRAME_COMP_DATA(), GST_VIDEO_FRAME_PLANE_DATA(),
  6524. GST_VIDEO_FRAME_COMP_STRIDE(), GST_VIDEO_FRAME_PLANE_STRIDE() etc.
  6525. to get to the pixels.
  6526. |[&lt;!-- language="C" --&gt;
  6527. GstVideoFrame vframe;
  6528. ...
  6529. // set RGB pixels to black one at a time
  6530. if (gst_video_frame_map (&amp;amp;vframe, video_info, video_buffer)) {
  6531. guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);
  6532. guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);
  6533. guint pixel_stride = GST_VIDEO_FRAME_PLANE_PSTRIDE (vframe, 0);
  6534. for (h = 0; h &lt; height; ++h) {
  6535. for (w = 0; w &lt; width; ++w) {
  6536. guint8 *pixel = pixels + h * stride + w * pixel_stride;
  6537. memset (pixel, 0, pixel_stride);
  6538. }
  6539. }
  6540. }
  6541. ...
  6542. ]|
  6543. All video planes of @buffer will be mapped and the pointers will be set in
  6544. @frame-&gt;data.
  6545. The purpose of this function is to make it easy for you to get to the video
  6546. pixels in a generic way, without you having to worry too much about details
  6547. such as whether the video data is allocated in one contiguous memory chunk
  6548. or multiple memory chunks (e.g. one for each plane); or if custom strides
  6549. and custom plane offsets are used or not (as signalled by GstVideoMeta on
  6550. each buffer). This function will just fill the #GstVideoFrame structure
  6551. with the right values and if you use the accessor macros everything will
  6552. just work and you can access the data easily. It also maps the underlying
  6553. memory chunks for you.</doc>
  6554. <return-value transfer-ownership="none">
  6555. <doc xml:space="preserve">%TRUE on success.</doc>
  6556. <type name="gboolean" c:type="gboolean"/>
  6557. </return-value>
  6558. <parameters>
  6559. <instance-parameter name="frame" transfer-ownership="none">
  6560. <doc xml:space="preserve">pointer to #GstVideoFrame</doc>
  6561. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  6562. </instance-parameter>
  6563. <parameter name="info" transfer-ownership="none">
  6564. <doc xml:space="preserve">a #GstVideoInfo</doc>
  6565. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  6566. </parameter>
  6567. <parameter name="buffer" transfer-ownership="none">
  6568. <doc xml:space="preserve">the buffer to map</doc>
  6569. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  6570. </parameter>
  6571. <parameter name="flags" transfer-ownership="none">
  6572. <doc xml:space="preserve">#GstMapFlags</doc>
  6573. <type name="Gst.MapFlags" c:type="GstMapFlags"/>
  6574. </parameter>
  6575. </parameters>
  6576. </method>
  6577. <method name="map_id" c:identifier="gst_video_frame_map_id">
  6578. <doc xml:space="preserve">Use @info and @buffer to fill in the values of @frame with the video frame
  6579. information of frame @id.
  6580. When @id is -1, the default frame is mapped. When @id != -1, this function
  6581. will return %FALSE when there is no GstVideoMeta with that id.
  6582. All video planes of @buffer will be mapped and the pointers will be set in
  6583. @frame-&gt;data.</doc>
  6584. <return-value transfer-ownership="none">
  6585. <doc xml:space="preserve">%TRUE on success.</doc>
  6586. <type name="gboolean" c:type="gboolean"/>
  6587. </return-value>
  6588. <parameters>
  6589. <instance-parameter name="frame" transfer-ownership="none">
  6590. <doc xml:space="preserve">pointer to #GstVideoFrame</doc>
  6591. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  6592. </instance-parameter>
  6593. <parameter name="info" transfer-ownership="none">
  6594. <doc xml:space="preserve">a #GstVideoInfo</doc>
  6595. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  6596. </parameter>
  6597. <parameter name="buffer" transfer-ownership="none">
  6598. <doc xml:space="preserve">the buffer to map</doc>
  6599. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  6600. </parameter>
  6601. <parameter name="id" transfer-ownership="none">
  6602. <doc xml:space="preserve">the frame id to map</doc>
  6603. <type name="gint" c:type="gint"/>
  6604. </parameter>
  6605. <parameter name="flags" transfer-ownership="none">
  6606. <doc xml:space="preserve">#GstMapFlags</doc>
  6607. <type name="Gst.MapFlags" c:type="GstMapFlags"/>
  6608. </parameter>
  6609. </parameters>
  6610. </method>
  6611. <method name="unmap" c:identifier="gst_video_frame_unmap">
  6612. <doc xml:space="preserve">Unmap the memory previously mapped with gst_video_frame_map.</doc>
  6613. <return-value transfer-ownership="none">
  6614. <type name="none" c:type="void"/>
  6615. </return-value>
  6616. <parameters>
  6617. <instance-parameter name="frame" transfer-ownership="none">
  6618. <doc xml:space="preserve">a #GstVideoFrame</doc>
  6619. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  6620. </instance-parameter>
  6621. </parameters>
  6622. </method>
  6623. </record>
  6624. <bitfield name="VideoFrameFlags"
  6625. glib:type-name="GstVideoFrameFlags"
  6626. glib:get-type="gst_video_frame_flags_get_type"
  6627. c:type="GstVideoFrameFlags">
  6628. <doc xml:space="preserve">Extra video frame flags</doc>
  6629. <member name="none"
  6630. value="0"
  6631. c:identifier="GST_VIDEO_FRAME_FLAG_NONE"
  6632. glib:nick="none">
  6633. <doc xml:space="preserve">no flags</doc>
  6634. </member>
  6635. <member name="interlaced"
  6636. value="1"
  6637. c:identifier="GST_VIDEO_FRAME_FLAG_INTERLACED"
  6638. glib:nick="interlaced">
  6639. <doc xml:space="preserve">The video frame is interlaced. In mixed
  6640. interlace-mode, this flag specifies if the frame is interlaced or
  6641. progressive.</doc>
  6642. </member>
  6643. <member name="tff"
  6644. value="2"
  6645. c:identifier="GST_VIDEO_FRAME_FLAG_TFF"
  6646. glib:nick="tff">
  6647. <doc xml:space="preserve">The video frame has the top field first</doc>
  6648. </member>
  6649. <member name="rff"
  6650. value="4"
  6651. c:identifier="GST_VIDEO_FRAME_FLAG_RFF"
  6652. glib:nick="rff">
  6653. <doc xml:space="preserve">The video frame has the repeat flag</doc>
  6654. </member>
  6655. <member name="onefield"
  6656. value="8"
  6657. c:identifier="GST_VIDEO_FRAME_FLAG_ONEFIELD"
  6658. glib:nick="onefield">
  6659. <doc xml:space="preserve">The video frame has one field</doc>
  6660. </member>
  6661. <member name="multiple_view"
  6662. value="16"
  6663. c:identifier="GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW"
  6664. glib:nick="multiple-view">
  6665. <doc xml:space="preserve">The video contains one or
  6666. more non-mono views</doc>
  6667. </member>
  6668. <member name="first_in_bundle"
  6669. value="32"
  6670. c:identifier="GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE"
  6671. glib:nick="first-in-bundle">
  6672. <doc xml:space="preserve">The video frame is the first
  6673. in a set of corresponding views provided as sequential frames.</doc>
  6674. </member>
  6675. </bitfield>
  6676. <bitfield name="VideoFrameMapFlags"
  6677. version="1.6"
  6678. glib:type-name="GstVideoFrameMapFlags"
  6679. glib:get-type="gst_video_frame_map_flags_get_type"
  6680. c:type="GstVideoFrameMapFlags">
  6681. <doc xml:space="preserve">Additional mapping flags for gst_video_frame_map().</doc>
  6682. <member name="no_ref"
  6683. value="65536"
  6684. c:identifier="GST_VIDEO_FRAME_MAP_FLAG_NO_REF"
  6685. glib:nick="no-ref">
  6686. <doc xml:space="preserve">Don't take another reference of the buffer and store it in
  6687. the GstVideoFrame. This makes sure that the buffer stays
  6688. writable while the frame is mapped, but requires that the
  6689. buffer reference stays valid until the frame is unmapped again.</doc>
  6690. </member>
  6691. <member name="last"
  6692. value="16777216"
  6693. c:identifier="GST_VIDEO_FRAME_MAP_FLAG_LAST"
  6694. glib:nick="last">
  6695. <doc xml:space="preserve">Offset to define more flags</doc>
  6696. </member>
  6697. </bitfield>
  6698. <enumeration name="VideoGLTextureOrientation"
  6699. c:type="GstVideoGLTextureOrientation">
  6700. <doc xml:space="preserve">The orientation of the GL texture.</doc>
  6701. <member name="normal_y_normal"
  6702. value="0"
  6703. c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL">
  6704. <doc xml:space="preserve">Top line first in memory, left row first</doc>
  6705. </member>
  6706. <member name="normal_y_flip"
  6707. value="1"
  6708. c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_FLIP">
  6709. <doc xml:space="preserve">Bottom line first in memory, left row first</doc>
  6710. </member>
  6711. <member name="flip_y_normal"
  6712. value="2"
  6713. c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_NORMAL">
  6714. <doc xml:space="preserve">Top line first in memory, right row first</doc>
  6715. </member>
  6716. <member name="flip_y_flip"
  6717. value="3"
  6718. c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_FLIP">
  6719. <doc xml:space="preserve">Bottom line first in memory, right row first</doc>
  6720. </member>
  6721. </enumeration>
  6722. <enumeration name="VideoGLTextureType" c:type="GstVideoGLTextureType">
  6723. <doc xml:space="preserve">The GL texture type.</doc>
  6724. <member name="luminance"
  6725. value="0"
  6726. c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE">
  6727. <doc xml:space="preserve">Luminance texture, GL_LUMINANCE</doc>
  6728. </member>
  6729. <member name="luminance_alpha"
  6730. value="1"
  6731. c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA">
  6732. <doc xml:space="preserve">Luminance-alpha texture, GL_LUMINANCE_ALPHA</doc>
  6733. </member>
  6734. <member name="rgb16"
  6735. value="2"
  6736. c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RGB16">
  6737. <doc xml:space="preserve">RGB 565 texture, GL_RGB</doc>
  6738. </member>
  6739. <member name="rgb"
  6740. value="3"
  6741. c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RGB">
  6742. <doc xml:space="preserve">RGB texture, GL_RGB</doc>
  6743. </member>
  6744. <member name="rgba"
  6745. value="4"
  6746. c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RGBA">
  6747. <doc xml:space="preserve">RGBA texture, GL_RGBA</doc>
  6748. </member>
  6749. <member name="r" value="5" c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_R">
  6750. <doc xml:space="preserve">R texture, GL_RED_EXT</doc>
  6751. </member>
  6752. <member name="rg" value="6" c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RG">
  6753. <doc xml:space="preserve">RG texture, GL_RG_EXT</doc>
  6754. </member>
  6755. </enumeration>
  6756. <callback name="VideoGLTextureUpload" c:type="GstVideoGLTextureUpload">
  6757. <return-value transfer-ownership="none">
  6758. <type name="gboolean" c:type="gboolean"/>
  6759. </return-value>
  6760. <parameters>
  6761. <parameter name="meta" transfer-ownership="none">
  6762. <type name="VideoGLTextureUploadMeta"
  6763. c:type="GstVideoGLTextureUploadMeta*"/>
  6764. </parameter>
  6765. <parameter name="texture_id" transfer-ownership="none">
  6766. <type name="guint" c:type="guint"/>
  6767. </parameter>
  6768. </parameters>
  6769. </callback>
  6770. <record name="VideoGLTextureUploadMeta"
  6771. c:type="GstVideoGLTextureUploadMeta">
  6772. <doc xml:space="preserve">Extra buffer metadata for uploading a buffer to an OpenGL texture
  6773. ID. The caller of gst_video_gl_texture_upload_meta_upload() must
  6774. have OpenGL set up and call this from a thread where it is valid
  6775. to upload something to an OpenGL texture.</doc>
  6776. <field name="meta" writable="1">
  6777. <doc xml:space="preserve">parent #GstMeta</doc>
  6778. <type name="Gst.Meta" c:type="GstMeta"/>
  6779. </field>
  6780. <field name="texture_orientation" writable="1">
  6781. <doc xml:space="preserve">Orientation of the textures</doc>
  6782. <type name="VideoGLTextureOrientation"
  6783. c:type="GstVideoGLTextureOrientation"/>
  6784. </field>
  6785. <field name="n_textures" writable="1">
  6786. <doc xml:space="preserve">Number of textures that are generated</doc>
  6787. <type name="guint" c:type="guint"/>
  6788. </field>
  6789. <field name="texture_type" writable="1">
  6790. <doc xml:space="preserve">Type of each texture</doc>
  6791. <array zero-terminated="0"
  6792. c:type="GstVideoGLTextureType"
  6793. fixed-size="4">
  6794. <type name="VideoGLTextureType" c:type="GstVideoGLTextureType"/>
  6795. </array>
  6796. </field>
  6797. <field name="buffer" readable="0" private="1">
  6798. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  6799. </field>
  6800. <field name="upload" readable="0" private="1">
  6801. <type name="VideoGLTextureUpload" c:type="GstVideoGLTextureUpload"/>
  6802. </field>
  6803. <field name="user_data" readable="0" private="1">
  6804. <type name="gpointer" c:type="gpointer"/>
  6805. </field>
  6806. <field name="user_data_copy" readable="0" private="1">
  6807. <type name="GObject.BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
  6808. </field>
  6809. <field name="user_data_free" readable="0" private="1">
  6810. <type name="GObject.BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
  6811. </field>
  6812. <method name="upload"
  6813. c:identifier="gst_video_gl_texture_upload_meta_upload">
  6814. <doc xml:space="preserve">Uploads the buffer which owns the meta to a specific texture ID.</doc>
  6815. <return-value transfer-ownership="none">
  6816. <doc xml:space="preserve">%TRUE if uploading succeeded, %FALSE otherwise.</doc>
  6817. <type name="gboolean" c:type="gboolean"/>
  6818. </return-value>
  6819. <parameters>
  6820. <instance-parameter name="meta" transfer-ownership="none">
  6821. <doc xml:space="preserve">a #GstVideoGLTextureUploadMeta</doc>
  6822. <type name="VideoGLTextureUploadMeta"
  6823. c:type="GstVideoGLTextureUploadMeta*"/>
  6824. </instance-parameter>
  6825. <parameter name="texture_id" transfer-ownership="none">
  6826. <doc xml:space="preserve">the texture IDs to upload to</doc>
  6827. <type name="guint" c:type="guint"/>
  6828. </parameter>
  6829. </parameters>
  6830. </method>
  6831. <function name="get_info"
  6832. c:identifier="gst_video_gl_texture_upload_meta_get_info">
  6833. <return-value transfer-ownership="none">
  6834. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  6835. </return-value>
  6836. </function>
  6837. </record>
  6838. <enumeration name="VideoGammaMode"
  6839. version="1.6"
  6840. glib:type-name="GstVideoGammaMode"
  6841. glib:get-type="gst_video_gamma_mode_get_type"
  6842. c:type="GstVideoGammaMode">
  6843. <member name="none"
  6844. value="0"
  6845. c:identifier="GST_VIDEO_GAMMA_MODE_NONE"
  6846. glib:nick="none">
  6847. <doc xml:space="preserve">disable gamma handling</doc>
  6848. </member>
  6849. <member name="remap"
  6850. value="1"
  6851. c:identifier="GST_VIDEO_GAMMA_MODE_REMAP"
  6852. glib:nick="remap">
  6853. <doc xml:space="preserve">convert between input and output gamma
  6854. Different gamma conversion modes</doc>
  6855. </member>
  6856. </enumeration>
  6857. <record name="VideoInfo"
  6858. c:type="GstVideoInfo"
  6859. glib:type-name="GstVideoInfo"
  6860. glib:get-type="gst_video_info_get_type"
  6861. c:symbol-prefix="video_info">
  6862. <doc xml:space="preserve">Information describing image properties. This information can be filled
  6863. in from GstCaps with gst_video_info_from_caps(). The information is also used
  6864. to store the specific video info when mapping a video frame with
  6865. gst_video_frame_map().
  6866. Use the provided macros to access the info in this structure.</doc>
  6867. <field name="finfo" writable="1">
  6868. <doc xml:space="preserve">the format info of the video</doc>
  6869. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  6870. </field>
  6871. <field name="interlace_mode" writable="1">
  6872. <doc xml:space="preserve">the interlace mode</doc>
  6873. <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
  6874. </field>
  6875. <field name="flags" writable="1">
  6876. <doc xml:space="preserve">additional video flags</doc>
  6877. <type name="VideoFlags" c:type="GstVideoFlags"/>
  6878. </field>
  6879. <field name="width" writable="1">
  6880. <doc xml:space="preserve">the width of the video</doc>
  6881. <type name="gint" c:type="gint"/>
  6882. </field>
  6883. <field name="height" writable="1">
  6884. <doc xml:space="preserve">the height of the video</doc>
  6885. <type name="gint" c:type="gint"/>
  6886. </field>
  6887. <field name="size" writable="1">
  6888. <doc xml:space="preserve">the default size of one frame</doc>
  6889. <type name="gsize" c:type="gsize"/>
  6890. </field>
  6891. <field name="views" writable="1">
  6892. <doc xml:space="preserve">the number of views for multiview video</doc>
  6893. <type name="gint" c:type="gint"/>
  6894. </field>
  6895. <field name="chroma_site" writable="1">
  6896. <doc xml:space="preserve">a #GstVideoChromaSite.</doc>
  6897. <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
  6898. </field>
  6899. <field name="colorimetry" writable="1">
  6900. <doc xml:space="preserve">the colorimetry info</doc>
  6901. <type name="VideoColorimetry" c:type="GstVideoColorimetry"/>
  6902. </field>
  6903. <field name="par_n" writable="1">
  6904. <doc xml:space="preserve">the pixel-aspect-ratio numerator</doc>
  6905. <type name="gint" c:type="gint"/>
  6906. </field>
  6907. <field name="par_d" writable="1">
  6908. <doc xml:space="preserve">the pixel-aspect-ratio demnominator</doc>
  6909. <type name="gint" c:type="gint"/>
  6910. </field>
  6911. <field name="fps_n" writable="1">
  6912. <doc xml:space="preserve">the framerate numerator</doc>
  6913. <type name="gint" c:type="gint"/>
  6914. </field>
  6915. <field name="fps_d" writable="1">
  6916. <doc xml:space="preserve">the framerate demnominator</doc>
  6917. <type name="gint" c:type="gint"/>
  6918. </field>
  6919. <field name="offset" writable="1">
  6920. <doc xml:space="preserve">offsets of the planes</doc>
  6921. <array zero-terminated="0" c:type="gsize" fixed-size="4">
  6922. <type name="gsize" c:type="gsize"/>
  6923. </array>
  6924. </field>
  6925. <field name="stride" writable="1">
  6926. <doc xml:space="preserve">strides of the planes</doc>
  6927. <array zero-terminated="0" c:type="gint" fixed-size="4">
  6928. <type name="gint" c:type="gint"/>
  6929. </array>
  6930. </field>
  6931. <union name="ABI" c:type="ABI">
  6932. <record name="abi" c:type="abi">
  6933. <field name="multiview_mode" writable="1">
  6934. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  6935. </field>
  6936. <field name="multiview_flags" writable="1">
  6937. <type name="VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/>
  6938. </field>
  6939. </record>
  6940. <field name="_gst_reserved" readable="0" private="1">
  6941. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  6942. <type name="gpointer" c:type="gpointer"/>
  6943. </array>
  6944. </field>
  6945. </union>
  6946. <constructor name="new" c:identifier="gst_video_info_new" version="1.6">
  6947. <doc xml:space="preserve">Allocate a new #GstVideoInfo that is also initialized with
  6948. gst_video_info_init().</doc>
  6949. <return-value transfer-ownership="full">
  6950. <doc xml:space="preserve">a new #GstVideoInfo. free with gst_video_info_free().</doc>
  6951. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  6952. </return-value>
  6953. </constructor>
  6954. <method name="align" c:identifier="gst_video_info_align">
  6955. <doc xml:space="preserve">Adjust the offset and stride fields in @info so that the padding and
  6956. stride alignment in @align is respected.
  6957. Extra padding will be added to the right side when stride alignment padding
  6958. is required and @align will be updated with the new padding values.</doc>
  6959. <return-value transfer-ownership="none">
  6960. <type name="none" c:type="void"/>
  6961. </return-value>
  6962. <parameters>
  6963. <instance-parameter name="info" transfer-ownership="none">
  6964. <doc xml:space="preserve">a #GstVideoInfo</doc>
  6965. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  6966. </instance-parameter>
  6967. <parameter name="align" transfer-ownership="none">
  6968. <doc xml:space="preserve">alignment parameters</doc>
  6969. <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
  6970. </parameter>
  6971. </parameters>
  6972. </method>
  6973. <method name="convert" c:identifier="gst_video_info_convert">
  6974. <doc xml:space="preserve">Converts among various #GstFormat types. This function handles
  6975. GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For
  6976. raw video, GST_FORMAT_DEFAULT corresponds to video frames. This
  6977. function can be used to handle pad queries of the type GST_QUERY_CONVERT.</doc>
  6978. <return-value transfer-ownership="none">
  6979. <doc xml:space="preserve">TRUE if the conversion was successful.</doc>
  6980. <type name="gboolean" c:type="gboolean"/>
  6981. </return-value>
  6982. <parameters>
  6983. <instance-parameter name="info" transfer-ownership="none">
  6984. <doc xml:space="preserve">a #GstVideoInfo</doc>
  6985. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  6986. </instance-parameter>
  6987. <parameter name="src_format" transfer-ownership="none">
  6988. <doc xml:space="preserve">#GstFormat of the @src_value</doc>
  6989. <type name="Gst.Format" c:type="GstFormat"/>
  6990. </parameter>
  6991. <parameter name="src_value" transfer-ownership="none">
  6992. <doc xml:space="preserve">value to convert</doc>
  6993. <type name="gint64" c:type="gint64"/>
  6994. </parameter>
  6995. <parameter name="dest_format" transfer-ownership="none">
  6996. <doc xml:space="preserve">#GstFormat of the @dest_value</doc>
  6997. <type name="Gst.Format" c:type="GstFormat"/>
  6998. </parameter>
  6999. <parameter name="dest_value" transfer-ownership="none">
  7000. <doc xml:space="preserve">pointer to destination value</doc>
  7001. <type name="gint64" c:type="gint64*"/>
  7002. </parameter>
  7003. </parameters>
  7004. </method>
  7005. <method name="copy" c:identifier="gst_video_info_copy" version="1.6">
  7006. <doc xml:space="preserve">Copy a GstVideoInfo structure.</doc>
  7007. <return-value transfer-ownership="full">
  7008. <doc xml:space="preserve">a new #GstVideoInfo. free with gst_video_info_free.</doc>
  7009. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7010. </return-value>
  7011. <parameters>
  7012. <instance-parameter name="info" transfer-ownership="none">
  7013. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7014. <type name="VideoInfo" c:type="const GstVideoInfo*"/>
  7015. </instance-parameter>
  7016. </parameters>
  7017. </method>
  7018. <method name="free" c:identifier="gst_video_info_free" version="1.6">
  7019. <doc xml:space="preserve">Free a GstVideoInfo structure previously allocated with gst_video_info_new()
  7020. or gst_video_info_copy().</doc>
  7021. <return-value transfer-ownership="none">
  7022. <type name="none" c:type="void"/>
  7023. </return-value>
  7024. <parameters>
  7025. <instance-parameter name="info" transfer-ownership="none">
  7026. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7027. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7028. </instance-parameter>
  7029. </parameters>
  7030. </method>
  7031. <method name="from_caps" c:identifier="gst_video_info_from_caps">
  7032. <doc xml:space="preserve">Parse @caps and update @info.</doc>
  7033. <return-value transfer-ownership="none">
  7034. <doc xml:space="preserve">TRUE if @caps could be parsed</doc>
  7035. <type name="gboolean" c:type="gboolean"/>
  7036. </return-value>
  7037. <parameters>
  7038. <instance-parameter name="info" transfer-ownership="none">
  7039. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7040. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7041. </instance-parameter>
  7042. <parameter name="caps" transfer-ownership="none">
  7043. <doc xml:space="preserve">a #GstCaps</doc>
  7044. <type name="Gst.Caps" c:type="const GstCaps*"/>
  7045. </parameter>
  7046. </parameters>
  7047. </method>
  7048. <method name="init" c:identifier="gst_video_info_init">
  7049. <doc xml:space="preserve">Initialize @info with default values.</doc>
  7050. <return-value transfer-ownership="none">
  7051. <type name="none" c:type="void"/>
  7052. </return-value>
  7053. <parameters>
  7054. <instance-parameter name="info" transfer-ownership="none">
  7055. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7056. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7057. </instance-parameter>
  7058. </parameters>
  7059. </method>
  7060. <method name="is_equal" c:identifier="gst_video_info_is_equal">
  7061. <doc xml:space="preserve">Compares two #GstVideoInfo and returns whether they are equal or not</doc>
  7062. <return-value transfer-ownership="none">
  7063. <doc xml:space="preserve">%TRUE if @info and @other are equal, else %FALSE.</doc>
  7064. <type name="gboolean" c:type="gboolean"/>
  7065. </return-value>
  7066. <parameters>
  7067. <instance-parameter name="info" transfer-ownership="none">
  7068. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7069. <type name="VideoInfo" c:type="const GstVideoInfo*"/>
  7070. </instance-parameter>
  7071. <parameter name="other" transfer-ownership="none">
  7072. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7073. <type name="VideoInfo" c:type="const GstVideoInfo*"/>
  7074. </parameter>
  7075. </parameters>
  7076. </method>
  7077. <method name="set_format" c:identifier="gst_video_info_set_format">
  7078. <doc xml:space="preserve">Set the default info for a video frame of @format and @width and @height.
  7079. Note: This initializes @info first, no values are preserved. This function
  7080. does not set the offsets correctly for interlaced vertically
  7081. subsampled formats.</doc>
  7082. <return-value transfer-ownership="none">
  7083. <type name="none" c:type="void"/>
  7084. </return-value>
  7085. <parameters>
  7086. <instance-parameter name="info" transfer-ownership="none">
  7087. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7088. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7089. </instance-parameter>
  7090. <parameter name="format" transfer-ownership="none">
  7091. <doc xml:space="preserve">the format</doc>
  7092. <type name="VideoFormat" c:type="GstVideoFormat"/>
  7093. </parameter>
  7094. <parameter name="width" transfer-ownership="none">
  7095. <doc xml:space="preserve">a width</doc>
  7096. <type name="guint" c:type="guint"/>
  7097. </parameter>
  7098. <parameter name="height" transfer-ownership="none">
  7099. <doc xml:space="preserve">a height</doc>
  7100. <type name="guint" c:type="guint"/>
  7101. </parameter>
  7102. </parameters>
  7103. </method>
  7104. <method name="to_caps" c:identifier="gst_video_info_to_caps">
  7105. <doc xml:space="preserve">Convert the values of @info into a #GstCaps.</doc>
  7106. <return-value transfer-ownership="full">
  7107. <doc xml:space="preserve">a new #GstCaps containing the info of @info.</doc>
  7108. <type name="Gst.Caps" c:type="GstCaps*"/>
  7109. </return-value>
  7110. <parameters>
  7111. <instance-parameter name="info" transfer-ownership="none">
  7112. <doc xml:space="preserve">a #GstVideoInfo</doc>
  7113. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7114. </instance-parameter>
  7115. </parameters>
  7116. </method>
  7117. </record>
  7118. <enumeration name="VideoInterlaceMode"
  7119. glib:type-name="GstVideoInterlaceMode"
  7120. glib:get-type="gst_video_interlace_mode_get_type"
  7121. c:type="GstVideoInterlaceMode">
  7122. <doc xml:space="preserve">The possible values of the #GstVideoInterlaceMode describing the interlace
  7123. mode of the stream.</doc>
  7124. <member name="progressive"
  7125. value="0"
  7126. c:identifier="GST_VIDEO_INTERLACE_MODE_PROGRESSIVE"
  7127. glib:nick="progressive">
  7128. <doc xml:space="preserve">all frames are progressive</doc>
  7129. </member>
  7130. <member name="interleaved"
  7131. value="1"
  7132. c:identifier="GST_VIDEO_INTERLACE_MODE_INTERLEAVED"
  7133. glib:nick="interleaved">
  7134. <doc xml:space="preserve">2 fields are interleaved in one video
  7135. frame. Extra buffer flags describe the field order.</doc>
  7136. </member>
  7137. <member name="mixed"
  7138. value="2"
  7139. c:identifier="GST_VIDEO_INTERLACE_MODE_MIXED"
  7140. glib:nick="mixed">
  7141. <doc xml:space="preserve">frames contains both interlaced and
  7142. progressive video, the buffer flags describe the frame and fields.</doc>
  7143. </member>
  7144. <member name="fields"
  7145. value="3"
  7146. c:identifier="GST_VIDEO_INTERLACE_MODE_FIELDS"
  7147. glib:nick="fields">
  7148. <doc xml:space="preserve">2 fields are stored in one buffer, use the
  7149. frame ID to get access to the required field. For multiview (the
  7150. 'views' property &gt; 1) the fields of view N can be found at frame ID
  7151. (N * 2) and (N * 2) + 1.
  7152. Each field has only half the amount of lines as noted in the
  7153. height property. This mode requires multiple GstVideoMeta metadata
  7154. to describe the fields.</doc>
  7155. </member>
  7156. <function name="from_string"
  7157. c:identifier="gst_video_interlace_mode_from_string"
  7158. version="1.6">
  7159. <doc xml:space="preserve">Convert @mode to a #GstVideoInterlaceMode</doc>
  7160. <return-value transfer-ownership="none">
  7161. <doc xml:space="preserve">the #GstVideoInterlaceMode of @mode or
  7162. #GST_VIDEO_INTERLACE_MODE_PROGRESSIVE when @mode is not a valid
  7163. string representation for a #GstVideoInterlaceMode.</doc>
  7164. <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
  7165. </return-value>
  7166. <parameters>
  7167. <parameter name="mode" transfer-ownership="none">
  7168. <doc xml:space="preserve">a mode</doc>
  7169. <type name="utf8" c:type="const gchar*"/>
  7170. </parameter>
  7171. </parameters>
  7172. </function>
  7173. <function name="to_string"
  7174. c:identifier="gst_video_interlace_mode_to_string"
  7175. version="1.6">
  7176. <doc xml:space="preserve">Convert @mode to its string representation.</doc>
  7177. <return-value transfer-ownership="none">
  7178. <doc xml:space="preserve">@mode as a string or NULL if @mode in invalid.</doc>
  7179. <type name="utf8" c:type="const gchar*"/>
  7180. </return-value>
  7181. <parameters>
  7182. <parameter name="mode" transfer-ownership="none">
  7183. <doc xml:space="preserve">a #GstVideoInterlaceMode</doc>
  7184. <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
  7185. </parameter>
  7186. </parameters>
  7187. </function>
  7188. </enumeration>
  7189. <enumeration name="VideoMatrixMode"
  7190. version="1.6"
  7191. glib:type-name="GstVideoMatrixMode"
  7192. glib:get-type="gst_video_matrix_mode_get_type"
  7193. c:type="GstVideoMatrixMode">
  7194. <doc xml:space="preserve">Different color matrix conversion modes</doc>
  7195. <member name="full"
  7196. value="0"
  7197. c:identifier="GST_VIDEO_MATRIX_MODE_FULL"
  7198. glib:nick="full">
  7199. <doc xml:space="preserve">do conversion between color matrices</doc>
  7200. </member>
  7201. <member name="input_only"
  7202. value="1"
  7203. c:identifier="GST_VIDEO_MATRIX_MODE_INPUT_ONLY"
  7204. glib:nick="input-only">
  7205. <doc xml:space="preserve">use the input color matrix to convert
  7206. to and from R'G'B</doc>
  7207. </member>
  7208. <member name="output_only"
  7209. value="2"
  7210. c:identifier="GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY"
  7211. glib:nick="output-only">
  7212. <doc xml:space="preserve">use the output color matrix to convert
  7213. to and from R'G'B</doc>
  7214. </member>
  7215. <member name="none"
  7216. value="3"
  7217. c:identifier="GST_VIDEO_MATRIX_MODE_NONE"
  7218. glib:nick="none">
  7219. <doc xml:space="preserve">disable color matrix conversion.</doc>
  7220. </member>
  7221. </enumeration>
  7222. <record name="VideoMeta" c:type="GstVideoMeta">
  7223. <doc xml:space="preserve">Extra buffer metadata describing image properties</doc>
  7224. <field name="meta" writable="1">
  7225. <doc xml:space="preserve">parent #GstMeta</doc>
  7226. <type name="Gst.Meta" c:type="GstMeta"/>
  7227. </field>
  7228. <field name="buffer" writable="1">
  7229. <doc xml:space="preserve">the buffer this metadata belongs to</doc>
  7230. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  7231. </field>
  7232. <field name="flags" writable="1">
  7233. <doc xml:space="preserve">additional video flags</doc>
  7234. <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
  7235. </field>
  7236. <field name="format" writable="1">
  7237. <doc xml:space="preserve">the video format</doc>
  7238. <type name="VideoFormat" c:type="GstVideoFormat"/>
  7239. </field>
  7240. <field name="id" writable="1">
  7241. <doc xml:space="preserve">identifier of the frame</doc>
  7242. <type name="gint" c:type="gint"/>
  7243. </field>
  7244. <field name="width" writable="1">
  7245. <doc xml:space="preserve">the video width</doc>
  7246. <type name="guint" c:type="guint"/>
  7247. </field>
  7248. <field name="height" writable="1">
  7249. <doc xml:space="preserve">the video height</doc>
  7250. <type name="guint" c:type="guint"/>
  7251. </field>
  7252. <field name="n_planes" writable="1">
  7253. <doc xml:space="preserve">the number of planes in the image</doc>
  7254. <type name="guint" c:type="guint"/>
  7255. </field>
  7256. <field name="offset" writable="1">
  7257. <doc xml:space="preserve">array of offsets for the planes. This field might not always be
  7258. valid, it is used by the default implementation of @map.</doc>
  7259. <array zero-terminated="0" c:type="gsize" fixed-size="4">
  7260. <type name="gsize" c:type="gsize"/>
  7261. </array>
  7262. </field>
  7263. <field name="stride" writable="1">
  7264. <doc xml:space="preserve">array of strides for the planes. This field might not always be
  7265. valid, it is used by the default implementation of @map.</doc>
  7266. <array zero-terminated="0" c:type="gint" fixed-size="4">
  7267. <type name="gint" c:type="gint"/>
  7268. </array>
  7269. </field>
  7270. <field name="map">
  7271. <callback name="map">
  7272. <return-value transfer-ownership="none">
  7273. <type name="gboolean" c:type="gboolean"/>
  7274. </return-value>
  7275. <parameters>
  7276. <parameter name="meta" transfer-ownership="none">
  7277. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  7278. </parameter>
  7279. <parameter name="plane" transfer-ownership="none">
  7280. <type name="guint" c:type="guint"/>
  7281. </parameter>
  7282. <parameter name="info" transfer-ownership="none">
  7283. <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
  7284. </parameter>
  7285. <parameter name="data" transfer-ownership="none">
  7286. <type name="gpointer" c:type="gpointer*"/>
  7287. </parameter>
  7288. <parameter name="stride" transfer-ownership="none">
  7289. <type name="gint" c:type="gint*"/>
  7290. </parameter>
  7291. <parameter name="flags" transfer-ownership="none">
  7292. <type name="Gst.MapFlags" c:type="GstMapFlags"/>
  7293. </parameter>
  7294. </parameters>
  7295. </callback>
  7296. </field>
  7297. <field name="unmap">
  7298. <callback name="unmap">
  7299. <return-value transfer-ownership="none">
  7300. <type name="gboolean" c:type="gboolean"/>
  7301. </return-value>
  7302. <parameters>
  7303. <parameter name="meta" transfer-ownership="none">
  7304. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  7305. </parameter>
  7306. <parameter name="plane" transfer-ownership="none">
  7307. <type name="guint" c:type="guint"/>
  7308. </parameter>
  7309. <parameter name="info" transfer-ownership="none">
  7310. <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
  7311. </parameter>
  7312. </parameters>
  7313. </callback>
  7314. </field>
  7315. <method name="map" c:identifier="gst_video_meta_map">
  7316. <doc xml:space="preserve">Map the video plane with index @plane in @meta and return a pointer to the
  7317. first byte of the plane and the stride of the plane.</doc>
  7318. <return-value transfer-ownership="none">
  7319. <doc xml:space="preserve">TRUE if the map operation was successful.</doc>
  7320. <type name="gboolean" c:type="gboolean"/>
  7321. </return-value>
  7322. <parameters>
  7323. <instance-parameter name="meta" transfer-ownership="none">
  7324. <doc xml:space="preserve">a #GstVideoMeta</doc>
  7325. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  7326. </instance-parameter>
  7327. <parameter name="plane" transfer-ownership="none">
  7328. <doc xml:space="preserve">a plane</doc>
  7329. <type name="guint" c:type="guint"/>
  7330. </parameter>
  7331. <parameter name="info" transfer-ownership="none">
  7332. <doc xml:space="preserve">a #GstMapInfo</doc>
  7333. <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
  7334. </parameter>
  7335. <parameter name="data"
  7336. transfer-ownership="none"
  7337. nullable="1"
  7338. allow-none="1">
  7339. <doc xml:space="preserve">the data of @plane</doc>
  7340. <type name="gpointer" c:type="gpointer*"/>
  7341. </parameter>
  7342. <parameter name="stride" transfer-ownership="none">
  7343. <doc xml:space="preserve">the stride of @plane</doc>
  7344. <type name="gint" c:type="gint*"/>
  7345. </parameter>
  7346. <parameter name="flags" transfer-ownership="none">
  7347. <doc xml:space="preserve">@GstMapFlags</doc>
  7348. <type name="Gst.MapFlags" c:type="GstMapFlags"/>
  7349. </parameter>
  7350. </parameters>
  7351. </method>
  7352. <method name="unmap" c:identifier="gst_video_meta_unmap">
  7353. <doc xml:space="preserve">Unmap a previously mapped plane with gst_video_meta_map().</doc>
  7354. <return-value transfer-ownership="none">
  7355. <doc xml:space="preserve">TRUE if the memory was successfully unmapped.</doc>
  7356. <type name="gboolean" c:type="gboolean"/>
  7357. </return-value>
  7358. <parameters>
  7359. <instance-parameter name="meta" transfer-ownership="none">
  7360. <doc xml:space="preserve">a #GstVideoMeta</doc>
  7361. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  7362. </instance-parameter>
  7363. <parameter name="plane" transfer-ownership="none">
  7364. <doc xml:space="preserve">a plane</doc>
  7365. <type name="guint" c:type="guint"/>
  7366. </parameter>
  7367. <parameter name="info" transfer-ownership="none">
  7368. <doc xml:space="preserve">a #GstMapInfo</doc>
  7369. <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
  7370. </parameter>
  7371. </parameters>
  7372. </method>
  7373. <function name="get_info" c:identifier="gst_video_meta_get_info">
  7374. <return-value transfer-ownership="none">
  7375. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  7376. </return-value>
  7377. </function>
  7378. </record>
  7379. <record name="VideoMetaTransform" c:type="GstVideoMetaTransform">
  7380. <doc xml:space="preserve">Extra data passed to a video transform #GstMetaTransformFunction such as:
  7381. "gst-video-scale".</doc>
  7382. <field name="in_info" writable="1">
  7383. <doc xml:space="preserve">the input #GstVideoInfo</doc>
  7384. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7385. </field>
  7386. <field name="out_info" writable="1">
  7387. <doc xml:space="preserve">the output #GstVideoInfo</doc>
  7388. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  7389. </field>
  7390. <function name="scale_get_quark"
  7391. c:identifier="gst_video_meta_transform_scale_get_quark">
  7392. <doc xml:space="preserve">Get the #GQuark for the "gst-video-scale" metadata transform operation.</doc>
  7393. <return-value transfer-ownership="none">
  7394. <doc xml:space="preserve">a #GQuark</doc>
  7395. <type name="GLib.Quark" c:type="GQuark"/>
  7396. </return-value>
  7397. </function>
  7398. </record>
  7399. <bitfield name="VideoMultiviewFlags"
  7400. glib:type-name="GstVideoMultiviewFlags"
  7401. glib:get-type="gst_video_multiview_flags_get_type"
  7402. c:type="GstVideoMultiviewFlags">
  7403. <doc xml:space="preserve">GstVideoMultiviewFlags are used to indicate extra properties of a
  7404. stereo/multiview stream beyond the frame layout and buffer mapping
  7405. that is conveyed in the #GstMultiviewMode.</doc>
  7406. <member name="none"
  7407. value="0"
  7408. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_NONE"
  7409. glib:nick="none">
  7410. <doc xml:space="preserve">No flags</doc>
  7411. </member>
  7412. <member name="right_view_first"
  7413. value="1"
  7414. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST"
  7415. glib:nick="right-view-first">
  7416. <doc xml:space="preserve">For stereo streams, the
  7417. normal arrangement of left and right views is reversed.</doc>
  7418. </member>
  7419. <member name="left_flipped"
  7420. value="2"
  7421. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED"
  7422. glib:nick="left-flipped">
  7423. <doc xml:space="preserve">The left view is vertically
  7424. mirrored.</doc>
  7425. </member>
  7426. <member name="left_flopped"
  7427. value="4"
  7428. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED"
  7429. glib:nick="left-flopped">
  7430. <doc xml:space="preserve">The left view is horizontally
  7431. mirrored.</doc>
  7432. </member>
  7433. <member name="right_flipped"
  7434. value="8"
  7435. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED"
  7436. glib:nick="right-flipped">
  7437. <doc xml:space="preserve">The right view is
  7438. vertically mirrored.</doc>
  7439. </member>
  7440. <member name="right_flopped"
  7441. value="16"
  7442. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED"
  7443. glib:nick="right-flopped">
  7444. <doc xml:space="preserve">The right view is
  7445. horizontally mirrored.</doc>
  7446. </member>
  7447. <member name="half_aspect"
  7448. value="16384"
  7449. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT"
  7450. glib:nick="half-aspect">
  7451. <doc xml:space="preserve">For frame-packed
  7452. multiview modes, indicates that the individual
  7453. views have been encoded with half the true width or height
  7454. and should be scaled back up for display. This flag
  7455. is used for overriding input layout interpretation
  7456. by adjusting pixel-aspect-ratio.
  7457. For side-by-side, column interleaved or checkerboard packings, the
  7458. pixel width will be doubled. For row interleaved and top-bottom
  7459. encodings, pixel height will be doubled.</doc>
  7460. </member>
  7461. <member name="mixed_mono"
  7462. value="32768"
  7463. c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO"
  7464. glib:nick="mixed-mono">
  7465. <doc xml:space="preserve">The video stream contains both
  7466. mono and multiview portions, signalled on each buffer by the
  7467. absence or presence of the @GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW
  7468. buffer flag.</doc>
  7469. </member>
  7470. </bitfield>
  7471. <class name="VideoMultiviewFlagsSet"
  7472. c:symbol-prefix="video_multiview_flagset"
  7473. parent="Gst.FlagSet"
  7474. glib:type-name="GstVideoMultiviewFlagsSet"
  7475. glib:get-type="gst_video_multiview_flagset_get_type"
  7476. glib:fundamental="1">
  7477. </class>
  7478. <enumeration name="VideoMultiviewFramePacking"
  7479. glib:type-name="GstVideoMultiviewFramePacking"
  7480. glib:get-type="gst_video_multiview_frame_packing_get_type"
  7481. c:type="GstVideoMultiviewFramePacking">
  7482. <doc xml:space="preserve">#GstVideoMultiviewFramePacking represents the subset of #GstVideoMultiviewMode
  7483. values that can be applied to any video frame without needing extra metadata.
  7484. It can be used by elements that provide a property to override the
  7485. multiview interpretation of a video stream when the video doesn't contain
  7486. any markers.
  7487. This enum is used (for example) on playbin, to re-interpret a played
  7488. video stream as a stereoscopic video. The individual enum values are
  7489. equivalent to and have the same value as the matching #GstVideoMultiviewMode.</doc>
  7490. <member name="none"
  7491. value="-1"
  7492. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE"
  7493. glib:nick="none">
  7494. <doc xml:space="preserve">A special value indicating
  7495. no frame packing info.</doc>
  7496. </member>
  7497. <member name="mono"
  7498. value="0"
  7499. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO"
  7500. glib:nick="mono">
  7501. <doc xml:space="preserve">All frames are monoscopic.</doc>
  7502. </member>
  7503. <member name="left"
  7504. value="1"
  7505. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT"
  7506. glib:nick="left">
  7507. <doc xml:space="preserve">All frames represent a left-eye view.</doc>
  7508. </member>
  7509. <member name="right"
  7510. value="2"
  7511. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT"
  7512. glib:nick="right">
  7513. <doc xml:space="preserve">All frames represent a right-eye view.</doc>
  7514. </member>
  7515. <member name="side_by_side"
  7516. value="3"
  7517. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE"
  7518. glib:nick="side-by-side">
  7519. <doc xml:space="preserve">Left and right eye views are
  7520. provided in the left and right half of the frame respectively.</doc>
  7521. </member>
  7522. <member name="side_by_side_quincunx"
  7523. value="4"
  7524. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX"
  7525. glib:nick="side-by-side-quincunx">
  7526. <doc xml:space="preserve">Left and right eye
  7527. views are provided in the left and right half of the frame, but
  7528. have been sampled using quincunx method, with half-pixel offset
  7529. between the 2 views.</doc>
  7530. </member>
  7531. <member name="column_interleaved"
  7532. value="5"
  7533. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED"
  7534. glib:nick="column-interleaved">
  7535. <doc xml:space="preserve">Alternating vertical
  7536. columns of pixels represent the left and right eye view respectively.</doc>
  7537. </member>
  7538. <member name="row_interleaved"
  7539. value="6"
  7540. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED"
  7541. glib:nick="row-interleaved">
  7542. <doc xml:space="preserve">Alternating horizontal
  7543. rows of pixels represent the left and right eye view respectively.</doc>
  7544. </member>
  7545. <member name="top_bottom"
  7546. value="7"
  7547. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM"
  7548. glib:nick="top-bottom">
  7549. <doc xml:space="preserve">The top half of the frame
  7550. contains the left eye, and the bottom half the right eye.</doc>
  7551. </member>
  7552. <member name="checkerboard"
  7553. value="8"
  7554. c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD"
  7555. glib:nick="checkerboard">
  7556. <doc xml:space="preserve">Pixels are arranged with
  7557. alternating pixels representing left and right eye views in a
  7558. checkerboard fashion.</doc>
  7559. </member>
  7560. </enumeration>
  7561. <enumeration name="VideoMultiviewMode"
  7562. glib:type-name="GstVideoMultiviewMode"
  7563. glib:get-type="gst_video_multiview_mode_get_type"
  7564. c:type="GstVideoMultiviewMode">
  7565. <doc xml:space="preserve">All possible stereoscopic 3D and multiview representations.
  7566. In conjunction with #GstVideoMultiviewFlags, describes how
  7567. multiview content is being transported in the stream.</doc>
  7568. <member name="none"
  7569. value="-1"
  7570. c:identifier="GST_VIDEO_MULTIVIEW_MODE_NONE"
  7571. glib:nick="none">
  7572. <doc xml:space="preserve">A special value indicating
  7573. no multiview information. Used in GstVideoInfo and other places to
  7574. indicate that no specific multiview handling has been requested or
  7575. provided. This value is never carried on caps.</doc>
  7576. </member>
  7577. <member name="mono"
  7578. value="0"
  7579. c:identifier="GST_VIDEO_MULTIVIEW_MODE_MONO"
  7580. glib:nick="mono">
  7581. <doc xml:space="preserve">All frames are monoscopic.</doc>
  7582. </member>
  7583. <member name="left"
  7584. value="1"
  7585. c:identifier="GST_VIDEO_MULTIVIEW_MODE_LEFT"
  7586. glib:nick="left">
  7587. <doc xml:space="preserve">All frames represent a left-eye view.</doc>
  7588. </member>
  7589. <member name="right"
  7590. value="2"
  7591. c:identifier="GST_VIDEO_MULTIVIEW_MODE_RIGHT"
  7592. glib:nick="right">
  7593. <doc xml:space="preserve">All frames represent a right-eye view.</doc>
  7594. </member>
  7595. <member name="side_by_side"
  7596. value="3"
  7597. c:identifier="GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE"
  7598. glib:nick="side-by-side">
  7599. <doc xml:space="preserve">Left and right eye views are
  7600. provided in the left and right half of the frame respectively.</doc>
  7601. </member>
  7602. <member name="side_by_side_quincunx"
  7603. value="4"
  7604. c:identifier="GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX"
  7605. glib:nick="side-by-side-quincunx">
  7606. <doc xml:space="preserve">Left and right eye
  7607. views are provided in the left and right half of the frame, but
  7608. have been sampled using quincunx method, with half-pixel offset
  7609. between the 2 views.</doc>
  7610. </member>
  7611. <member name="column_interleaved"
  7612. value="5"
  7613. c:identifier="GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED"
  7614. glib:nick="column-interleaved">
  7615. <doc xml:space="preserve">Alternating vertical
  7616. columns of pixels represent the left and right eye view respectively.</doc>
  7617. </member>
  7618. <member name="row_interleaved"
  7619. value="6"
  7620. c:identifier="GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED"
  7621. glib:nick="row-interleaved">
  7622. <doc xml:space="preserve">Alternating horizontal
  7623. rows of pixels represent the left and right eye view respectively.</doc>
  7624. </member>
  7625. <member name="top_bottom"
  7626. value="7"
  7627. c:identifier="GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM"
  7628. glib:nick="top-bottom">
  7629. <doc xml:space="preserve">The top half of the frame
  7630. contains the left eye, and the bottom half the right eye.</doc>
  7631. </member>
  7632. <member name="checkerboard"
  7633. value="8"
  7634. c:identifier="GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD"
  7635. glib:nick="checkerboard">
  7636. <doc xml:space="preserve">Pixels are arranged with
  7637. alternating pixels representing left and right eye views in a
  7638. checkerboard fashion.</doc>
  7639. </member>
  7640. <member name="frame_by_frame"
  7641. value="32"
  7642. c:identifier="GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME"
  7643. glib:nick="frame-by-frame">
  7644. <doc xml:space="preserve">Left and right eye views
  7645. are provided in separate frames alternately.</doc>
  7646. </member>
  7647. <member name="multiview_frame_by_frame"
  7648. value="33"
  7649. c:identifier="GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME"
  7650. glib:nick="multiview-frame-by-frame">
  7651. <doc xml:space="preserve">Multiple
  7652. independent views are provided in separate frames in sequence.
  7653. This method only applies to raw video buffers at the moment.
  7654. Specific view identification is via the #GstVideoMultiviewMeta
  7655. and #GstVideoMeta(s) on raw video buffers.</doc>
  7656. </member>
  7657. <member name="separated"
  7658. value="34"
  7659. c:identifier="GST_VIDEO_MULTIVIEW_MODE_SEPARATED"
  7660. glib:nick="separated">
  7661. <doc xml:space="preserve">Multiple views are
  7662. provided as separate #GstMemory framebuffers attached to each
  7663. #GstBuffer, described by the #GstVideoMultiviewMeta
  7664. and #GstVideoMeta(s)</doc>
  7665. </member>
  7666. <function name="from_caps_string"
  7667. c:identifier="gst_video_multiview_mode_from_caps_string"
  7668. version="1.6">
  7669. <return-value transfer-ownership="none">
  7670. <doc xml:space="preserve">The #GstVideoMultiviewMode value
  7671. Given a string from a caps multiview-mode field,
  7672. output the corresponding #GstVideoMultiviewMode
  7673. or #GST_VIDEO_MULTIVIEW_MODE_NONE</doc>
  7674. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  7675. </return-value>
  7676. <parameters>
  7677. <parameter name="caps_mview_mode" transfer-ownership="none">
  7678. <doc xml:space="preserve">multiview-mode field string from caps</doc>
  7679. <type name="utf8" c:type="const gchar*"/>
  7680. </parameter>
  7681. </parameters>
  7682. </function>
  7683. <function name="to_caps_string"
  7684. c:identifier="gst_video_multiview_mode_to_caps_string"
  7685. version="1.6">
  7686. <return-value transfer-ownership="none">
  7687. <doc xml:space="preserve">The caps string representation of the mode, or NULL if invalid.
  7688. Given a #GstVideoMultiviewMode returns the multiview-mode caps string
  7689. for insertion into a caps structure</doc>
  7690. <type name="utf8" c:type="const gchar*"/>
  7691. </return-value>
  7692. <parameters>
  7693. <parameter name="mview_mode" transfer-ownership="none">
  7694. <doc xml:space="preserve">A #GstVideoMultiviewMode value</doc>
  7695. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  7696. </parameter>
  7697. </parameters>
  7698. </function>
  7699. </enumeration>
  7700. <interface name="VideoOrientation"
  7701. c:symbol-prefix="video_orientation"
  7702. c:type="GstVideoOrientation"
  7703. glib:type-name="GstVideoOrientation"
  7704. glib:get-type="gst_video_orientation_get_type"
  7705. glib:type-struct="VideoOrientationInterface">
  7706. <doc xml:space="preserve">The interface allows unified access to control flipping and autocenter
  7707. operation of video-sources or operators.</doc>
  7708. <virtual-method name="get_hcenter" invoker="get_hcenter">
  7709. <doc xml:space="preserve">Get the horizontal centering offset from the given object.</doc>
  7710. <return-value transfer-ownership="none">
  7711. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7712. <type name="gboolean" c:type="gboolean"/>
  7713. </return-value>
  7714. <parameters>
  7715. <instance-parameter name="video_orientation"
  7716. transfer-ownership="none">
  7717. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7718. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7719. </instance-parameter>
  7720. <parameter name="center" transfer-ownership="none">
  7721. <doc xml:space="preserve">return location for the result</doc>
  7722. <type name="gint" c:type="gint*"/>
  7723. </parameter>
  7724. </parameters>
  7725. </virtual-method>
  7726. <virtual-method name="get_hflip" invoker="get_hflip">
  7727. <doc xml:space="preserve">Get the horizontal flipping state (%TRUE for flipped) from the given object.</doc>
  7728. <return-value transfer-ownership="none">
  7729. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7730. <type name="gboolean" c:type="gboolean"/>
  7731. </return-value>
  7732. <parameters>
  7733. <instance-parameter name="video_orientation"
  7734. transfer-ownership="none">
  7735. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7736. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7737. </instance-parameter>
  7738. <parameter name="flip" transfer-ownership="none">
  7739. <doc xml:space="preserve">return location for the result</doc>
  7740. <type name="gboolean" c:type="gboolean*"/>
  7741. </parameter>
  7742. </parameters>
  7743. </virtual-method>
  7744. <virtual-method name="get_vcenter" invoker="get_vcenter">
  7745. <doc xml:space="preserve">Get the vertical centering offset from the given object.</doc>
  7746. <return-value transfer-ownership="none">
  7747. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7748. <type name="gboolean" c:type="gboolean"/>
  7749. </return-value>
  7750. <parameters>
  7751. <instance-parameter name="video_orientation"
  7752. transfer-ownership="none">
  7753. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7754. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7755. </instance-parameter>
  7756. <parameter name="center" transfer-ownership="none">
  7757. <doc xml:space="preserve">return location for the result</doc>
  7758. <type name="gint" c:type="gint*"/>
  7759. </parameter>
  7760. </parameters>
  7761. </virtual-method>
  7762. <virtual-method name="get_vflip" invoker="get_vflip">
  7763. <doc xml:space="preserve">Get the vertical flipping state (%TRUE for flipped) from the given object.</doc>
  7764. <return-value transfer-ownership="none">
  7765. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7766. <type name="gboolean" c:type="gboolean"/>
  7767. </return-value>
  7768. <parameters>
  7769. <instance-parameter name="video_orientation"
  7770. transfer-ownership="none">
  7771. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7772. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7773. </instance-parameter>
  7774. <parameter name="flip" transfer-ownership="none">
  7775. <doc xml:space="preserve">return location for the result</doc>
  7776. <type name="gboolean" c:type="gboolean*"/>
  7777. </parameter>
  7778. </parameters>
  7779. </virtual-method>
  7780. <virtual-method name="set_hcenter" invoker="set_hcenter">
  7781. <doc xml:space="preserve">Set the horizontal centering offset for the given object.</doc>
  7782. <return-value transfer-ownership="none">
  7783. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7784. <type name="gboolean" c:type="gboolean"/>
  7785. </return-value>
  7786. <parameters>
  7787. <instance-parameter name="video_orientation"
  7788. transfer-ownership="none">
  7789. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7790. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7791. </instance-parameter>
  7792. <parameter name="center" transfer-ownership="none">
  7793. <doc xml:space="preserve">centering offset</doc>
  7794. <type name="gint" c:type="gint"/>
  7795. </parameter>
  7796. </parameters>
  7797. </virtual-method>
  7798. <virtual-method name="set_hflip" invoker="set_hflip">
  7799. <doc xml:space="preserve">Set the horizontal flipping state (%TRUE for flipped) for the given object.</doc>
  7800. <return-value transfer-ownership="none">
  7801. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7802. <type name="gboolean" c:type="gboolean"/>
  7803. </return-value>
  7804. <parameters>
  7805. <instance-parameter name="video_orientation"
  7806. transfer-ownership="none">
  7807. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7808. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7809. </instance-parameter>
  7810. <parameter name="flip" transfer-ownership="none">
  7811. <doc xml:space="preserve">use flipping</doc>
  7812. <type name="gboolean" c:type="gboolean"/>
  7813. </parameter>
  7814. </parameters>
  7815. </virtual-method>
  7816. <virtual-method name="set_vcenter" invoker="set_vcenter">
  7817. <doc xml:space="preserve">Set the vertical centering offset for the given object.</doc>
  7818. <return-value transfer-ownership="none">
  7819. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7820. <type name="gboolean" c:type="gboolean"/>
  7821. </return-value>
  7822. <parameters>
  7823. <instance-parameter name="video_orientation"
  7824. transfer-ownership="none">
  7825. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7826. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7827. </instance-parameter>
  7828. <parameter name="center" transfer-ownership="none">
  7829. <doc xml:space="preserve">centering offset</doc>
  7830. <type name="gint" c:type="gint"/>
  7831. </parameter>
  7832. </parameters>
  7833. </virtual-method>
  7834. <virtual-method name="set_vflip" invoker="set_vflip">
  7835. <doc xml:space="preserve">Set the vertical flipping state (%TRUE for flipped) for the given object.</doc>
  7836. <return-value transfer-ownership="none">
  7837. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7838. <type name="gboolean" c:type="gboolean"/>
  7839. </return-value>
  7840. <parameters>
  7841. <instance-parameter name="video_orientation"
  7842. transfer-ownership="none">
  7843. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7844. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7845. </instance-parameter>
  7846. <parameter name="flip" transfer-ownership="none">
  7847. <doc xml:space="preserve">use flipping</doc>
  7848. <type name="gboolean" c:type="gboolean"/>
  7849. </parameter>
  7850. </parameters>
  7851. </virtual-method>
  7852. <method name="get_hcenter"
  7853. c:identifier="gst_video_orientation_get_hcenter">
  7854. <doc xml:space="preserve">Get the horizontal centering offset from the given object.</doc>
  7855. <return-value transfer-ownership="none">
  7856. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7857. <type name="gboolean" c:type="gboolean"/>
  7858. </return-value>
  7859. <parameters>
  7860. <instance-parameter name="video_orientation"
  7861. transfer-ownership="none">
  7862. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7863. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7864. </instance-parameter>
  7865. <parameter name="center" transfer-ownership="none">
  7866. <doc xml:space="preserve">return location for the result</doc>
  7867. <type name="gint" c:type="gint*"/>
  7868. </parameter>
  7869. </parameters>
  7870. </method>
  7871. <method name="get_hflip" c:identifier="gst_video_orientation_get_hflip">
  7872. <doc xml:space="preserve">Get the horizontal flipping state (%TRUE for flipped) from the given object.</doc>
  7873. <return-value transfer-ownership="none">
  7874. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7875. <type name="gboolean" c:type="gboolean"/>
  7876. </return-value>
  7877. <parameters>
  7878. <instance-parameter name="video_orientation"
  7879. transfer-ownership="none">
  7880. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7881. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7882. </instance-parameter>
  7883. <parameter name="flip" transfer-ownership="none">
  7884. <doc xml:space="preserve">return location for the result</doc>
  7885. <type name="gboolean" c:type="gboolean*"/>
  7886. </parameter>
  7887. </parameters>
  7888. </method>
  7889. <method name="get_vcenter"
  7890. c:identifier="gst_video_orientation_get_vcenter">
  7891. <doc xml:space="preserve">Get the vertical centering offset from the given object.</doc>
  7892. <return-value transfer-ownership="none">
  7893. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7894. <type name="gboolean" c:type="gboolean"/>
  7895. </return-value>
  7896. <parameters>
  7897. <instance-parameter name="video_orientation"
  7898. transfer-ownership="none">
  7899. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7900. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7901. </instance-parameter>
  7902. <parameter name="center" transfer-ownership="none">
  7903. <doc xml:space="preserve">return location for the result</doc>
  7904. <type name="gint" c:type="gint*"/>
  7905. </parameter>
  7906. </parameters>
  7907. </method>
  7908. <method name="get_vflip" c:identifier="gst_video_orientation_get_vflip">
  7909. <doc xml:space="preserve">Get the vertical flipping state (%TRUE for flipped) from the given object.</doc>
  7910. <return-value transfer-ownership="none">
  7911. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7912. <type name="gboolean" c:type="gboolean"/>
  7913. </return-value>
  7914. <parameters>
  7915. <instance-parameter name="video_orientation"
  7916. transfer-ownership="none">
  7917. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7918. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7919. </instance-parameter>
  7920. <parameter name="flip" transfer-ownership="none">
  7921. <doc xml:space="preserve">return location for the result</doc>
  7922. <type name="gboolean" c:type="gboolean*"/>
  7923. </parameter>
  7924. </parameters>
  7925. </method>
  7926. <method name="set_hcenter"
  7927. c:identifier="gst_video_orientation_set_hcenter">
  7928. <doc xml:space="preserve">Set the horizontal centering offset for the given object.</doc>
  7929. <return-value transfer-ownership="none">
  7930. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7931. <type name="gboolean" c:type="gboolean"/>
  7932. </return-value>
  7933. <parameters>
  7934. <instance-parameter name="video_orientation"
  7935. transfer-ownership="none">
  7936. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7937. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7938. </instance-parameter>
  7939. <parameter name="center" transfer-ownership="none">
  7940. <doc xml:space="preserve">centering offset</doc>
  7941. <type name="gint" c:type="gint"/>
  7942. </parameter>
  7943. </parameters>
  7944. </method>
  7945. <method name="set_hflip" c:identifier="gst_video_orientation_set_hflip">
  7946. <doc xml:space="preserve">Set the horizontal flipping state (%TRUE for flipped) for the given object.</doc>
  7947. <return-value transfer-ownership="none">
  7948. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7949. <type name="gboolean" c:type="gboolean"/>
  7950. </return-value>
  7951. <parameters>
  7952. <instance-parameter name="video_orientation"
  7953. transfer-ownership="none">
  7954. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7955. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7956. </instance-parameter>
  7957. <parameter name="flip" transfer-ownership="none">
  7958. <doc xml:space="preserve">use flipping</doc>
  7959. <type name="gboolean" c:type="gboolean"/>
  7960. </parameter>
  7961. </parameters>
  7962. </method>
  7963. <method name="set_vcenter"
  7964. c:identifier="gst_video_orientation_set_vcenter">
  7965. <doc xml:space="preserve">Set the vertical centering offset for the given object.</doc>
  7966. <return-value transfer-ownership="none">
  7967. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  7968. <type name="gboolean" c:type="gboolean"/>
  7969. </return-value>
  7970. <parameters>
  7971. <instance-parameter name="video_orientation"
  7972. transfer-ownership="none">
  7973. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7974. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7975. </instance-parameter>
  7976. <parameter name="center" transfer-ownership="none">
  7977. <doc xml:space="preserve">centering offset</doc>
  7978. <type name="gint" c:type="gint"/>
  7979. </parameter>
  7980. </parameters>
  7981. </method>
  7982. <method name="set_vflip" c:identifier="gst_video_orientation_set_vflip">
  7983. <doc xml:space="preserve">Set the vertical flipping state (%TRUE for flipped) for the given object.</doc>
  7984. <return-value transfer-ownership="none">
  7985. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  7986. <type name="gboolean" c:type="gboolean"/>
  7987. </return-value>
  7988. <parameters>
  7989. <instance-parameter name="video_orientation"
  7990. transfer-ownership="none">
  7991. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  7992. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  7993. </instance-parameter>
  7994. <parameter name="flip" transfer-ownership="none">
  7995. <doc xml:space="preserve">use flipping</doc>
  7996. <type name="gboolean" c:type="gboolean"/>
  7997. </parameter>
  7998. </parameters>
  7999. </method>
  8000. </interface>
  8001. <record name="VideoOrientationInterface"
  8002. c:type="GstVideoOrientationInterface"
  8003. glib:is-gtype-struct-for="VideoOrientation">
  8004. <doc xml:space="preserve">#GstVideoOrientationInterface interface.</doc>
  8005. <field name="iface">
  8006. <doc xml:space="preserve">parent interface type.</doc>
  8007. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  8008. </field>
  8009. <field name="get_hflip">
  8010. <callback name="get_hflip">
  8011. <return-value transfer-ownership="none">
  8012. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  8013. <type name="gboolean" c:type="gboolean"/>
  8014. </return-value>
  8015. <parameters>
  8016. <parameter name="video_orientation" transfer-ownership="none">
  8017. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8018. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8019. </parameter>
  8020. <parameter name="flip" transfer-ownership="none">
  8021. <doc xml:space="preserve">return location for the result</doc>
  8022. <type name="gboolean" c:type="gboolean*"/>
  8023. </parameter>
  8024. </parameters>
  8025. </callback>
  8026. </field>
  8027. <field name="get_vflip">
  8028. <callback name="get_vflip">
  8029. <return-value transfer-ownership="none">
  8030. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  8031. <type name="gboolean" c:type="gboolean"/>
  8032. </return-value>
  8033. <parameters>
  8034. <parameter name="video_orientation" transfer-ownership="none">
  8035. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8036. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8037. </parameter>
  8038. <parameter name="flip" transfer-ownership="none">
  8039. <doc xml:space="preserve">return location for the result</doc>
  8040. <type name="gboolean" c:type="gboolean*"/>
  8041. </parameter>
  8042. </parameters>
  8043. </callback>
  8044. </field>
  8045. <field name="get_hcenter">
  8046. <callback name="get_hcenter">
  8047. <return-value transfer-ownership="none">
  8048. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  8049. <type name="gboolean" c:type="gboolean"/>
  8050. </return-value>
  8051. <parameters>
  8052. <parameter name="video_orientation" transfer-ownership="none">
  8053. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8054. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8055. </parameter>
  8056. <parameter name="center" transfer-ownership="none">
  8057. <doc xml:space="preserve">return location for the result</doc>
  8058. <type name="gint" c:type="gint*"/>
  8059. </parameter>
  8060. </parameters>
  8061. </callback>
  8062. </field>
  8063. <field name="get_vcenter">
  8064. <callback name="get_vcenter">
  8065. <return-value transfer-ownership="none">
  8066. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  8067. <type name="gboolean" c:type="gboolean"/>
  8068. </return-value>
  8069. <parameters>
  8070. <parameter name="video_orientation" transfer-ownership="none">
  8071. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8072. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8073. </parameter>
  8074. <parameter name="center" transfer-ownership="none">
  8075. <doc xml:space="preserve">return location for the result</doc>
  8076. <type name="gint" c:type="gint*"/>
  8077. </parameter>
  8078. </parameters>
  8079. </callback>
  8080. </field>
  8081. <field name="set_hflip">
  8082. <callback name="set_hflip">
  8083. <return-value transfer-ownership="none">
  8084. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  8085. <type name="gboolean" c:type="gboolean"/>
  8086. </return-value>
  8087. <parameters>
  8088. <parameter name="video_orientation" transfer-ownership="none">
  8089. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8090. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8091. </parameter>
  8092. <parameter name="flip" transfer-ownership="none">
  8093. <doc xml:space="preserve">use flipping</doc>
  8094. <type name="gboolean" c:type="gboolean"/>
  8095. </parameter>
  8096. </parameters>
  8097. </callback>
  8098. </field>
  8099. <field name="set_vflip">
  8100. <callback name="set_vflip">
  8101. <return-value transfer-ownership="none">
  8102. <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
  8103. <type name="gboolean" c:type="gboolean"/>
  8104. </return-value>
  8105. <parameters>
  8106. <parameter name="video_orientation" transfer-ownership="none">
  8107. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8108. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8109. </parameter>
  8110. <parameter name="flip" transfer-ownership="none">
  8111. <doc xml:space="preserve">use flipping</doc>
  8112. <type name="gboolean" c:type="gboolean"/>
  8113. </parameter>
  8114. </parameters>
  8115. </callback>
  8116. </field>
  8117. <field name="set_hcenter">
  8118. <callback name="set_hcenter">
  8119. <return-value transfer-ownership="none">
  8120. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  8121. <type name="gboolean" c:type="gboolean"/>
  8122. </return-value>
  8123. <parameters>
  8124. <parameter name="video_orientation" transfer-ownership="none">
  8125. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8126. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8127. </parameter>
  8128. <parameter name="center" transfer-ownership="none">
  8129. <doc xml:space="preserve">centering offset</doc>
  8130. <type name="gint" c:type="gint"/>
  8131. </parameter>
  8132. </parameters>
  8133. </callback>
  8134. </field>
  8135. <field name="set_vcenter">
  8136. <callback name="set_vcenter">
  8137. <return-value transfer-ownership="none">
  8138. <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
  8139. <type name="gboolean" c:type="gboolean"/>
  8140. </return-value>
  8141. <parameters>
  8142. <parameter name="video_orientation" transfer-ownership="none">
  8143. <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
  8144. <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
  8145. </parameter>
  8146. <parameter name="center" transfer-ownership="none">
  8147. <doc xml:space="preserve">centering offset</doc>
  8148. <type name="gint" c:type="gint"/>
  8149. </parameter>
  8150. </parameters>
  8151. </callback>
  8152. </field>
  8153. </record>
  8154. <interface name="VideoOverlay"
  8155. c:symbol-prefix="video_overlay"
  8156. c:type="GstVideoOverlay"
  8157. glib:type-name="GstVideoOverlay"
  8158. glib:get-type="gst_video_overlay_get_type"
  8159. glib:type-struct="VideoOverlayInterface">
  8160. <doc xml:space="preserve">&lt;refsect2&gt;
  8161. &lt;para&gt;
  8162. The #GstVideoOverlay interface is used for 2 main purposes :
  8163. &lt;itemizedlist&gt;
  8164. &lt;listitem&gt;
  8165. &lt;para&gt;
  8166. To get a grab on the Window where the video sink element is going to render.
  8167. This is achieved by either being informed about the Window identifier that
  8168. the video sink element generated, or by forcing the video sink element to use
  8169. a specific Window identifier for rendering.
  8170. &lt;/para&gt;
  8171. &lt;/listitem&gt;
  8172. &lt;listitem&gt;
  8173. &lt;para&gt;
  8174. To force a redrawing of the latest video frame the video sink element
  8175. displayed on the Window. Indeed if the #GstPipeline is in #GST_STATE_PAUSED
  8176. state, moving the Window around will damage its content. Application
  8177. developers will want to handle the Expose events themselves and force the
  8178. video sink element to refresh the Window's content.
  8179. &lt;/para&gt;
  8180. &lt;/listitem&gt;
  8181. &lt;/itemizedlist&gt;
  8182. &lt;/para&gt;
  8183. &lt;para&gt;
  8184. Using the Window created by the video sink is probably the simplest scenario,
  8185. in some cases, though, it might not be flexible enough for application
  8186. developers if they need to catch events such as mouse moves and button
  8187. clicks.
  8188. &lt;/para&gt;
  8189. &lt;para&gt;
  8190. Setting a specific Window identifier on the video sink element is the most
  8191. flexible solution but it has some issues. Indeed the application needs to set
  8192. its Window identifier at the right time to avoid internal Window creation
  8193. from the video sink element. To solve this issue a #GstMessage is posted on
  8194. the bus to inform the application that it should set the Window identifier
  8195. immediately. Here is an example on how to do that correctly:
  8196. |[
  8197. static GstBusSyncReply
  8198. create_window (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
  8199. {
  8200. // ignore anything but 'prepare-window-handle' element messages
  8201. if (!gst_is_video_overlay_prepare_window_handle_message (message))
  8202. return GST_BUS_PASS;
  8203. win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0);
  8204. XSetWindowBackgroundPixmap (disp, win, None);
  8205. XMapRaised (disp, win);
  8206. XSync (disp, FALSE);
  8207. gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message)),
  8208. win);
  8209. gst_message_unref (message);
  8210. return GST_BUS_DROP;
  8211. }
  8212. ...
  8213. int
  8214. main (int argc, char **argv)
  8215. {
  8216. ...
  8217. bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
  8218. gst_bus_set_sync_handler (bus, (GstBusSyncHandler) create_window, pipeline,
  8219. NULL);
  8220. ...
  8221. }
  8222. ]|
  8223. &lt;/para&gt;
  8224. &lt;/refsect2&gt;
  8225. &lt;refsect2&gt;
  8226. &lt;title&gt;Two basic usage scenarios&lt;/title&gt;
  8227. &lt;para&gt;
  8228. There are two basic usage scenarios: in the simplest case, the application
  8229. uses #playbin or #plasink or knows exactly what particular element is used
  8230. for video output, which is usually the case when the application creates
  8231. the videosink to use (e.g. #xvimagesink, #ximagesink, etc.) itself; in this
  8232. case, the application can just create the videosink element, create and
  8233. realize the window to render the video on and then
  8234. call gst_video_overlay_set_window_handle() directly with the XID or native
  8235. window handle, before starting up the pipeline.
  8236. As #playbin and #playsink implement the video overlay interface and proxy
  8237. it transparently to the actual video sink even if it is created later, this
  8238. case also applies when using these elements.
  8239. &lt;/para&gt;
  8240. &lt;para&gt;
  8241. In the other and more common case, the application does not know in advance
  8242. what GStreamer video sink element will be used for video output. This is
  8243. usually the case when an element such as #autovideosink is used.
  8244. In this case, the video sink element itself is created
  8245. asynchronously from a GStreamer streaming thread some time after the
  8246. pipeline has been started up. When that happens, however, the video sink
  8247. will need to know right then whether to render onto an already existing
  8248. application window or whether to create its own window. This is when it
  8249. posts a prepare-window-handle message, and that is also why this message needs
  8250. to be handled in a sync bus handler which will be called from the streaming
  8251. thread directly (because the video sink will need an answer right then).
  8252. &lt;/para&gt;
  8253. &lt;para&gt;
  8254. As response to the prepare-window-handle element message in the bus sync
  8255. handler, the application may use gst_video_overlay_set_window_handle() to tell
  8256. the video sink to render onto an existing window surface. At this point the
  8257. application should already have obtained the window handle / XID, so it
  8258. just needs to set it. It is generally not advisable to call any GUI toolkit
  8259. functions or window system functions from the streaming thread in which the
  8260. prepare-window-handle message is handled, because most GUI toolkits and
  8261. windowing systems are not thread-safe at all and a lot of care would be
  8262. required to co-ordinate the toolkit and window system calls of the
  8263. different threads (Gtk+ users please note: prior to Gtk+ 2.18
  8264. GDK_WINDOW_XID() was just a simple structure access, so generally fine to do
  8265. within the bus sync handler; this macro was changed to a function call in
  8266. Gtk+ 2.18 and later, which is likely to cause problems when called from a
  8267. sync handler; see below for a better approach without GDK_WINDOW_XID()
  8268. used in the callback).
  8269. &lt;/para&gt;
  8270. &lt;/refsect2&gt;
  8271. &lt;refsect2&gt;
  8272. &lt;title&gt;GstVideoOverlay and Gtk+&lt;/title&gt;
  8273. &lt;para&gt;
  8274. |[
  8275. #include &amp;lt;gst/video/videooverlay.h&amp;gt;
  8276. #include &amp;lt;gtk/gtk.h&amp;gt;
  8277. #ifdef GDK_WINDOWING_X11
  8278. #include &amp;lt;gdk/gdkx.h&amp;gt; // for GDK_WINDOW_XID
  8279. #endif
  8280. #ifdef GDK_WINDOWING_WIN32
  8281. #include &amp;lt;gdk/gdkwin32.h&amp;gt; // for GDK_WINDOW_HWND
  8282. #endif
  8283. ...
  8284. static guintptr video_window_handle = 0;
  8285. ...
  8286. static GstBusSyncReply
  8287. bus_sync_handler (GstBus * bus, GstMessage * message, gpointer user_data)
  8288. {
  8289. // ignore anything but 'prepare-window-handle' element messages
  8290. if (!gst_is_video_overlay_prepare_window_handle_message (message))
  8291. return GST_BUS_PASS;
  8292. if (video_window_handle != 0) {
  8293. GstVideoOverlay *overlay;
  8294. // GST_MESSAGE_SRC (message) will be the video sink element
  8295. overlay = GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message));
  8296. gst_video_overlay_set_window_handle (overlay, video_window_handle);
  8297. } else {
  8298. g_warning ("Should have obtained video_window_handle by now!");
  8299. }
  8300. gst_message_unref (message);
  8301. return GST_BUS_DROP;
  8302. }
  8303. ...
  8304. static void
  8305. video_widget_realize_cb (GtkWidget * widget, gpointer data)
  8306. {
  8307. #if GTK_CHECK_VERSION(2,18,0)
  8308. // Tell Gtk+/Gdk to create a native window for this widget instead of
  8309. // drawing onto the parent widget.
  8310. // This is here just for pedagogical purposes, GDK_WINDOW_XID will call
  8311. // it as well in newer Gtk versions
  8312. if (!gdk_window_ensure_native (widget-&gt;window))
  8313. g_error ("Couldn't create native window needed for GstVideoOverlay!");
  8314. #endif
  8315. #ifdef GDK_WINDOWING_X11
  8316. {
  8317. gulong xid = GDK_WINDOW_XID (gtk_widget_get_window (video_window));
  8318. video_window_handle = xid;
  8319. }
  8320. #endif
  8321. #ifdef GDK_WINDOWING_WIN32
  8322. {
  8323. HWND wnd = GDK_WINDOW_HWND (gtk_widget_get_window (video_window));
  8324. video_window_handle = (guintptr) wnd;
  8325. }
  8326. #endif
  8327. }
  8328. ...
  8329. int
  8330. main (int argc, char **argv)
  8331. {
  8332. GtkWidget *video_window;
  8333. GtkWidget *app_window;
  8334. ...
  8335. app_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
  8336. ...
  8337. video_window = gtk_drawing_area_new ();
  8338. g_signal_connect (video_window, "realize",
  8339. G_CALLBACK (video_widget_realize_cb), NULL);
  8340. gtk_widget_set_double_buffered (video_window, FALSE);
  8341. ...
  8342. // usually the video_window will not be directly embedded into the
  8343. // application window like this, but there will be many other widgets
  8344. // and the video window will be embedded in one of them instead
  8345. gtk_container_add (GTK_CONTAINER (ap_window), video_window);
  8346. ...
  8347. // show the GUI
  8348. gtk_widget_show_all (app_window);
  8349. // realize window now so that the video window gets created and we can
  8350. // obtain its XID/HWND before the pipeline is started up and the videosink
  8351. // asks for the XID/HWND of the window to render onto
  8352. gtk_widget_realize (video_window);
  8353. // we should have the XID/HWND now
  8354. g_assert (video_window_handle != 0);
  8355. ...
  8356. // set up sync handler for setting the xid once the pipeline is started
  8357. bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
  8358. gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler, NULL,
  8359. NULL);
  8360. gst_object_unref (bus);
  8361. ...
  8362. gst_element_set_state (pipeline, GST_STATE_PLAYING);
  8363. ...
  8364. }
  8365. ]|
  8366. &lt;/para&gt;
  8367. &lt;/refsect2&gt;
  8368. &lt;refsect2&gt;
  8369. &lt;title&gt;GstVideoOverlay and Qt&lt;/title&gt;
  8370. &lt;para&gt;
  8371. |[
  8372. #include &amp;lt;glib.h&amp;gt;
  8373. #include &amp;lt;gst/gst.h&amp;gt;
  8374. #include &amp;lt;gst/video/videooverlay.h&amp;gt;
  8375. #include &amp;lt;QApplication&amp;gt;
  8376. #include &amp;lt;QTimer&amp;gt;
  8377. #include &amp;lt;QWidget&amp;gt;
  8378. int main(int argc, char *argv[])
  8379. {
  8380. if (!g_thread_supported ())
  8381. g_thread_init (NULL);
  8382. gst_init (&amp;argc, &amp;argv);
  8383. QApplication app(argc, argv);
  8384. app.connect(&amp;app, SIGNAL(lastWindowClosed()), &amp;app, SLOT(quit ()));
  8385. // prepare the pipeline
  8386. GstElement *pipeline = gst_pipeline_new ("xvoverlay");
  8387. GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
  8388. GstElement *sink = gst_element_factory_make ("xvimagesink", NULL);
  8389. gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL);
  8390. gst_element_link (src, sink);
  8391. // prepare the ui
  8392. QWidget window;
  8393. window.resize(320, 240);
  8394. window.show();
  8395. WId xwinid = window.winId();
  8396. gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (sink), xwinid);
  8397. // run the pipeline
  8398. GstStateChangeReturn sret = gst_element_set_state (pipeline,
  8399. GST_STATE_PLAYING);
  8400. if (sret == GST_STATE_CHANGE_FAILURE) {
  8401. gst_element_set_state (pipeline, GST_STATE_NULL);
  8402. gst_object_unref (pipeline);
  8403. // Exit application
  8404. QTimer::singleShot(0, QApplication::activeWindow(), SLOT(quit()));
  8405. }
  8406. int ret = app.exec();
  8407. window.hide();
  8408. gst_element_set_state (pipeline, GST_STATE_NULL);
  8409. gst_object_unref (pipeline);
  8410. return ret;
  8411. }
  8412. ]|
  8413. &lt;/para&gt;
  8414. &lt;/refsect2&gt;</doc>
  8415. <virtual-method name="expose" invoker="expose">
  8416. <doc xml:space="preserve">Tell an overlay that it has been exposed. This will redraw the current frame
  8417. in the drawable even if the pipeline is PAUSED.</doc>
  8418. <return-value transfer-ownership="none">
  8419. <type name="none" c:type="void"/>
  8420. </return-value>
  8421. <parameters>
  8422. <instance-parameter name="overlay" transfer-ownership="none">
  8423. <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
  8424. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8425. </instance-parameter>
  8426. </parameters>
  8427. </virtual-method>
  8428. <virtual-method name="handle_events" invoker="handle_events">
  8429. <doc xml:space="preserve">Tell an overlay that it should handle events from the window system. These
  8430. events are forwarded upstream as navigation events. In some window system,
  8431. events are not propagated in the window hierarchy if a client is listening
  8432. for them. This method allows you to disable events handling completely
  8433. from the #GstVideoOverlay.</doc>
  8434. <return-value transfer-ownership="none">
  8435. <type name="none" c:type="void"/>
  8436. </return-value>
  8437. <parameters>
  8438. <instance-parameter name="overlay" transfer-ownership="none">
  8439. <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
  8440. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8441. </instance-parameter>
  8442. <parameter name="handle_events" transfer-ownership="none">
  8443. <doc xml:space="preserve">a #gboolean indicating if events should be handled or not.</doc>
  8444. <type name="gboolean" c:type="gboolean"/>
  8445. </parameter>
  8446. </parameters>
  8447. </virtual-method>
  8448. <virtual-method name="set_render_rectangle">
  8449. <return-value transfer-ownership="none">
  8450. <type name="none" c:type="void"/>
  8451. </return-value>
  8452. <parameters>
  8453. <instance-parameter name="overlay" transfer-ownership="none">
  8454. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8455. </instance-parameter>
  8456. <parameter name="x" transfer-ownership="none">
  8457. <type name="gint" c:type="gint"/>
  8458. </parameter>
  8459. <parameter name="y" transfer-ownership="none">
  8460. <type name="gint" c:type="gint"/>
  8461. </parameter>
  8462. <parameter name="width" transfer-ownership="none">
  8463. <type name="gint" c:type="gint"/>
  8464. </parameter>
  8465. <parameter name="height" transfer-ownership="none">
  8466. <type name="gint" c:type="gint"/>
  8467. </parameter>
  8468. </parameters>
  8469. </virtual-method>
  8470. <virtual-method name="set_window_handle" invoker="set_window_handle">
  8471. <doc xml:space="preserve">This will call the video overlay's set_window_handle method. You
  8472. should use this method to tell to an overlay to display video output to a
  8473. specific window (e.g. an XWindow on X11). Passing 0 as the @handle will
  8474. tell the overlay to stop using that window and create an internal one.</doc>
  8475. <return-value transfer-ownership="none">
  8476. <type name="none" c:type="void"/>
  8477. </return-value>
  8478. <parameters>
  8479. <instance-parameter name="overlay" transfer-ownership="none">
  8480. <doc xml:space="preserve">a #GstVideoOverlay to set the window on.</doc>
  8481. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8482. </instance-parameter>
  8483. <parameter name="handle" transfer-ownership="none">
  8484. <doc xml:space="preserve">a handle referencing the window.</doc>
  8485. <type name="guintptr" c:type="guintptr"/>
  8486. </parameter>
  8487. </parameters>
  8488. </virtual-method>
  8489. <method name="expose" c:identifier="gst_video_overlay_expose">
  8490. <doc xml:space="preserve">Tell an overlay that it has been exposed. This will redraw the current frame
  8491. in the drawable even if the pipeline is PAUSED.</doc>
  8492. <return-value transfer-ownership="none">
  8493. <type name="none" c:type="void"/>
  8494. </return-value>
  8495. <parameters>
  8496. <instance-parameter name="overlay" transfer-ownership="none">
  8497. <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
  8498. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8499. </instance-parameter>
  8500. </parameters>
  8501. </method>
  8502. <method name="got_window_handle"
  8503. c:identifier="gst_video_overlay_got_window_handle">
  8504. <doc xml:space="preserve">This will post a "have-window-handle" element message on the bus.
  8505. This function should only be used by video overlay plugin developers.</doc>
  8506. <return-value transfer-ownership="none">
  8507. <type name="none" c:type="void"/>
  8508. </return-value>
  8509. <parameters>
  8510. <instance-parameter name="overlay" transfer-ownership="none">
  8511. <doc xml:space="preserve">a #GstVideoOverlay which got a window</doc>
  8512. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8513. </instance-parameter>
  8514. <parameter name="handle" transfer-ownership="none">
  8515. <doc xml:space="preserve">a platform-specific handle referencing the window</doc>
  8516. <type name="guintptr" c:type="guintptr"/>
  8517. </parameter>
  8518. </parameters>
  8519. </method>
  8520. <method name="handle_events"
  8521. c:identifier="gst_video_overlay_handle_events">
  8522. <doc xml:space="preserve">Tell an overlay that it should handle events from the window system. These
  8523. events are forwarded upstream as navigation events. In some window system,
  8524. events are not propagated in the window hierarchy if a client is listening
  8525. for them. This method allows you to disable events handling completely
  8526. from the #GstVideoOverlay.</doc>
  8527. <return-value transfer-ownership="none">
  8528. <type name="none" c:type="void"/>
  8529. </return-value>
  8530. <parameters>
  8531. <instance-parameter name="overlay" transfer-ownership="none">
  8532. <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
  8533. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8534. </instance-parameter>
  8535. <parameter name="handle_events" transfer-ownership="none">
  8536. <doc xml:space="preserve">a #gboolean indicating if events should be handled or not.</doc>
  8537. <type name="gboolean" c:type="gboolean"/>
  8538. </parameter>
  8539. </parameters>
  8540. </method>
  8541. <method name="prepare_window_handle"
  8542. c:identifier="gst_video_overlay_prepare_window_handle">
  8543. <doc xml:space="preserve">This will post a "prepare-window-handle" element message on the bus
  8544. to give applications an opportunity to call
  8545. gst_video_overlay_set_window_handle() before a plugin creates its own
  8546. window.
  8547. This function should only be used by video overlay plugin developers.</doc>
  8548. <return-value transfer-ownership="none">
  8549. <type name="none" c:type="void"/>
  8550. </return-value>
  8551. <parameters>
  8552. <instance-parameter name="overlay" transfer-ownership="none">
  8553. <doc xml:space="preserve">a #GstVideoOverlay which does not yet have an Window handle set</doc>
  8554. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8555. </instance-parameter>
  8556. </parameters>
  8557. </method>
  8558. <method name="set_render_rectangle"
  8559. c:identifier="gst_video_overlay_set_render_rectangle">
  8560. <doc xml:space="preserve">Configure a subregion as a video target within the window set by
  8561. gst_video_overlay_set_window_handle(). If this is not used or not supported
  8562. the video will fill the area of the window set as the overlay to 100%.
  8563. By specifying the rectangle, the video can be overlayed to a specific region
  8564. of that window only. After setting the new rectangle one should call
  8565. gst_video_overlay_expose() to force a redraw. To unset the region pass -1 for
  8566. the @width and @height parameters.
  8567. This method is needed for non fullscreen video overlay in UI toolkits that
  8568. do not support subwindows.</doc>
  8569. <return-value transfer-ownership="none">
  8570. <doc xml:space="preserve">%FALSE if not supported by the sink.</doc>
  8571. <type name="gboolean" c:type="gboolean"/>
  8572. </return-value>
  8573. <parameters>
  8574. <instance-parameter name="overlay" transfer-ownership="none">
  8575. <doc xml:space="preserve">a #GstVideoOverlay</doc>
  8576. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8577. </instance-parameter>
  8578. <parameter name="x" transfer-ownership="none">
  8579. <doc xml:space="preserve">the horizontal offset of the render area inside the window</doc>
  8580. <type name="gint" c:type="gint"/>
  8581. </parameter>
  8582. <parameter name="y" transfer-ownership="none">
  8583. <doc xml:space="preserve">the vertical offset of the render area inside the window</doc>
  8584. <type name="gint" c:type="gint"/>
  8585. </parameter>
  8586. <parameter name="width" transfer-ownership="none">
  8587. <doc xml:space="preserve">the width of the render area inside the window</doc>
  8588. <type name="gint" c:type="gint"/>
  8589. </parameter>
  8590. <parameter name="height" transfer-ownership="none">
  8591. <doc xml:space="preserve">the height of the render area inside the window</doc>
  8592. <type name="gint" c:type="gint"/>
  8593. </parameter>
  8594. </parameters>
  8595. </method>
  8596. <method name="set_window_handle"
  8597. c:identifier="gst_video_overlay_set_window_handle">
  8598. <doc xml:space="preserve">This will call the video overlay's set_window_handle method. You
  8599. should use this method to tell to an overlay to display video output to a
  8600. specific window (e.g. an XWindow on X11). Passing 0 as the @handle will
  8601. tell the overlay to stop using that window and create an internal one.</doc>
  8602. <return-value transfer-ownership="none">
  8603. <type name="none" c:type="void"/>
  8604. </return-value>
  8605. <parameters>
  8606. <instance-parameter name="overlay" transfer-ownership="none">
  8607. <doc xml:space="preserve">a #GstVideoOverlay to set the window on.</doc>
  8608. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8609. </instance-parameter>
  8610. <parameter name="handle" transfer-ownership="none">
  8611. <doc xml:space="preserve">a handle referencing the window.</doc>
  8612. <type name="guintptr" c:type="guintptr"/>
  8613. </parameter>
  8614. </parameters>
  8615. </method>
  8616. </interface>
  8617. <record name="VideoOverlayComposition"
  8618. c:type="GstVideoOverlayComposition"
  8619. glib:type-name="GstVideoOverlayComposition"
  8620. glib:get-type="gst_video_overlay_composition_get_type"
  8621. c:symbol-prefix="video_overlay_composition">
  8622. <doc xml:space="preserve">&lt;refsect2&gt;
  8623. &lt;para&gt;
  8624. Functions to create and handle overlay compositions on video buffers.
  8625. &lt;/para&gt;
  8626. &lt;para&gt;
  8627. An overlay composition describes one or more overlay rectangles to be
  8628. blended on top of a video buffer.
  8629. &lt;/para&gt;
  8630. &lt;para&gt;
  8631. This API serves two main purposes:
  8632. &lt;itemizedlist&gt;
  8633. &lt;listitem&gt;
  8634. it can be used to attach overlay information (subtitles or logos)
  8635. to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
  8636. blending of the overlay can then be done by e.g. the video sink that
  8637. processes these non-raw buffers.
  8638. &lt;/listitem&gt;
  8639. &lt;listitem&gt;
  8640. it can also be used to blend overlay rectangles on top of raw video
  8641. buffers, thus consolidating blending functionality for raw video in
  8642. one place.
  8643. &lt;/listitem&gt;
  8644. Together, this allows existing overlay elements to easily handle raw
  8645. and non-raw video as input in without major changes (once the overlays
  8646. have been put into a #GstOverlayComposition object anyway) - for raw
  8647. video the overlay can just use the blending function to blend the data
  8648. on top of the video, and for surface buffers it can just attach them to
  8649. the buffer and let the sink render the overlays.
  8650. &lt;/itemizedlist&gt;
  8651. &lt;/para&gt;
  8652. &lt;/refsect2&gt;</doc>
  8653. <constructor name="new" c:identifier="gst_video_overlay_composition_new">
  8654. <doc xml:space="preserve">Creates a new video overlay composition object to hold one or more
  8655. overlay rectangles.</doc>
  8656. <return-value transfer-ownership="full">
  8657. <doc xml:space="preserve">a new #GstVideoOverlayComposition. Unref with
  8658. gst_video_overlay_composition_unref() when no longer needed.</doc>
  8659. <type name="VideoOverlayComposition"
  8660. c:type="GstVideoOverlayComposition*"/>
  8661. </return-value>
  8662. <parameters>
  8663. <parameter name="rectangle" transfer-ownership="none">
  8664. <doc xml:space="preserve">a #GstVideoOverlayRectangle to add to the
  8665. composition</doc>
  8666. <type name="VideoOverlayRectangle"
  8667. c:type="GstVideoOverlayRectangle*"/>
  8668. </parameter>
  8669. </parameters>
  8670. </constructor>
  8671. <method name="add_rectangle"
  8672. c:identifier="gst_video_overlay_composition_add_rectangle">
  8673. <doc xml:space="preserve">Adds an overlay rectangle to an existing overlay composition object. This
  8674. must be done right after creating the overlay composition.</doc>
  8675. <return-value transfer-ownership="none">
  8676. <type name="none" c:type="void"/>
  8677. </return-value>
  8678. <parameters>
  8679. <instance-parameter name="comp" transfer-ownership="none">
  8680. <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
  8681. <type name="VideoOverlayComposition"
  8682. c:type="GstVideoOverlayComposition*"/>
  8683. </instance-parameter>
  8684. <parameter name="rectangle" transfer-ownership="none">
  8685. <doc xml:space="preserve">a #GstVideoOverlayRectangle to add to the
  8686. composition</doc>
  8687. <type name="VideoOverlayRectangle"
  8688. c:type="GstVideoOverlayRectangle*"/>
  8689. </parameter>
  8690. </parameters>
  8691. </method>
  8692. <method name="blend" c:identifier="gst_video_overlay_composition_blend">
  8693. <doc xml:space="preserve">Blends the overlay rectangles in @comp on top of the raw video data
  8694. contained in @video_buf. The data in @video_buf must be writable and
  8695. mapped appropriately.</doc>
  8696. <return-value transfer-ownership="none">
  8697. <type name="gboolean" c:type="gboolean"/>
  8698. </return-value>
  8699. <parameters>
  8700. <instance-parameter name="comp" transfer-ownership="none">
  8701. <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
  8702. <type name="VideoOverlayComposition"
  8703. c:type="GstVideoOverlayComposition*"/>
  8704. </instance-parameter>
  8705. <parameter name="video_buf" transfer-ownership="none">
  8706. <doc xml:space="preserve">a #GstVideoFrame containing raw video data in a supported format</doc>
  8707. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  8708. </parameter>
  8709. </parameters>
  8710. </method>
  8711. <method name="copy" c:identifier="gst_video_overlay_composition_copy">
  8712. <doc xml:space="preserve">Makes a copy of @comp and all contained rectangles, so that it is possible
  8713. to modify the composition and contained rectangles (e.g. add additional
  8714. rectangles or change the render co-ordinates or render dimension). The
  8715. actual overlay pixel data buffers contained in the rectangles are not
  8716. copied.</doc>
  8717. <return-value transfer-ownership="full">
  8718. <doc xml:space="preserve">a new #GstVideoOverlayComposition equivalent
  8719. to @comp.</doc>
  8720. <type name="VideoOverlayComposition"
  8721. c:type="GstVideoOverlayComposition*"/>
  8722. </return-value>
  8723. <parameters>
  8724. <instance-parameter name="comp" transfer-ownership="none">
  8725. <doc xml:space="preserve">a #GstVideoOverlayComposition to copy</doc>
  8726. <type name="VideoOverlayComposition"
  8727. c:type="GstVideoOverlayComposition*"/>
  8728. </instance-parameter>
  8729. </parameters>
  8730. </method>
  8731. <method name="get_rectangle"
  8732. c:identifier="gst_video_overlay_composition_get_rectangle">
  8733. <doc xml:space="preserve">Returns the @n-th #GstVideoOverlayRectangle contained in @comp.</doc>
  8734. <return-value transfer-ownership="none">
  8735. <doc xml:space="preserve">the @n-th rectangle, or NULL if @n is out of
  8736. bounds. Will not return a new reference, the caller will need to
  8737. obtain her own reference using gst_video_overlay_rectangle_ref()
  8738. if needed.</doc>
  8739. <type name="VideoOverlayRectangle"
  8740. c:type="GstVideoOverlayRectangle*"/>
  8741. </return-value>
  8742. <parameters>
  8743. <instance-parameter name="comp" transfer-ownership="none">
  8744. <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
  8745. <type name="VideoOverlayComposition"
  8746. c:type="GstVideoOverlayComposition*"/>
  8747. </instance-parameter>
  8748. <parameter name="n" transfer-ownership="none">
  8749. <doc xml:space="preserve">number of the rectangle to get</doc>
  8750. <type name="guint" c:type="guint"/>
  8751. </parameter>
  8752. </parameters>
  8753. </method>
  8754. <method name="get_seqnum"
  8755. c:identifier="gst_video_overlay_composition_get_seqnum">
  8756. <doc xml:space="preserve">Returns the sequence number of this composition. Sequence numbers are
  8757. monotonically increasing and unique for overlay compositions and rectangles
  8758. (meaning there will never be a rectangle with the same sequence number as
  8759. a composition).</doc>
  8760. <return-value transfer-ownership="none">
  8761. <doc xml:space="preserve">the sequence number of @comp</doc>
  8762. <type name="guint" c:type="guint"/>
  8763. </return-value>
  8764. <parameters>
  8765. <instance-parameter name="comp" transfer-ownership="none">
  8766. <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
  8767. <type name="VideoOverlayComposition"
  8768. c:type="GstVideoOverlayComposition*"/>
  8769. </instance-parameter>
  8770. </parameters>
  8771. </method>
  8772. <method name="make_writable"
  8773. c:identifier="gst_video_overlay_composition_make_writable">
  8774. <doc xml:space="preserve">Takes ownership of @comp and returns a version of @comp that is writable
  8775. (i.e. can be modified). Will either return @comp right away, or create a
  8776. new writable copy of @comp and unref @comp itself. All the contained
  8777. rectangles will also be copied, but the actual overlay pixel data buffers
  8778. contained in the rectangles are not copied.</doc>
  8779. <return-value transfer-ownership="full">
  8780. <doc xml:space="preserve">a writable #GstVideoOverlayComposition
  8781. equivalent to @comp.</doc>
  8782. <type name="VideoOverlayComposition"
  8783. c:type="GstVideoOverlayComposition*"/>
  8784. </return-value>
  8785. <parameters>
  8786. <instance-parameter name="comp" transfer-ownership="full">
  8787. <doc xml:space="preserve">a #GstVideoOverlayComposition to copy</doc>
  8788. <type name="VideoOverlayComposition"
  8789. c:type="GstVideoOverlayComposition*"/>
  8790. </instance-parameter>
  8791. </parameters>
  8792. </method>
  8793. <method name="n_rectangles"
  8794. c:identifier="gst_video_overlay_composition_n_rectangles">
  8795. <doc xml:space="preserve">Returns the number of #GstVideoOverlayRectangle&lt;!-- --&gt;s contained in @comp.</doc>
  8796. <return-value transfer-ownership="none">
  8797. <doc xml:space="preserve">the number of rectangles</doc>
  8798. <type name="guint" c:type="guint"/>
  8799. </return-value>
  8800. <parameters>
  8801. <instance-parameter name="comp" transfer-ownership="none">
  8802. <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
  8803. <type name="VideoOverlayComposition"
  8804. c:type="GstVideoOverlayComposition*"/>
  8805. </instance-parameter>
  8806. </parameters>
  8807. </method>
  8808. </record>
  8809. <record name="VideoOverlayCompositionMeta"
  8810. c:type="GstVideoOverlayCompositionMeta">
  8811. <doc xml:space="preserve">Extra buffer metadata describing image overlay data.</doc>
  8812. <field name="meta" writable="1">
  8813. <doc xml:space="preserve">parent #GstMeta</doc>
  8814. <type name="Gst.Meta" c:type="GstMeta"/>
  8815. </field>
  8816. <field name="overlay" writable="1">
  8817. <doc xml:space="preserve">the attached #GstVideoOverlayComposition</doc>
  8818. <type name="VideoOverlayComposition"
  8819. c:type="GstVideoOverlayComposition*"/>
  8820. </field>
  8821. <function name="get_info"
  8822. c:identifier="gst_video_overlay_composition_meta_get_info">
  8823. <return-value transfer-ownership="none">
  8824. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  8825. </return-value>
  8826. </function>
  8827. </record>
  8828. <enumeration name="VideoOverlayFormatFlags"
  8829. c:type="GstVideoOverlayFormatFlags">
  8830. <doc xml:space="preserve">Overlay format flags.</doc>
  8831. <member name="none"
  8832. value="0"
  8833. c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE">
  8834. <doc xml:space="preserve">no flags</doc>
  8835. </member>
  8836. <member name="premultiplied_alpha"
  8837. value="1"
  8838. c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA">
  8839. <doc xml:space="preserve">RGB are premultiplied by A/255.</doc>
  8840. </member>
  8841. <member name="global_alpha"
  8842. value="2"
  8843. c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA">
  8844. <doc xml:space="preserve">a global-alpha value != 1 is set.</doc>
  8845. </member>
  8846. </enumeration>
  8847. <record name="VideoOverlayInterface"
  8848. c:type="GstVideoOverlayInterface"
  8849. glib:is-gtype-struct-for="VideoOverlay">
  8850. <doc xml:space="preserve">#GstVideoOverlay interface</doc>
  8851. <field name="iface">
  8852. <doc xml:space="preserve">parent interface type.</doc>
  8853. <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
  8854. </field>
  8855. <field name="expose">
  8856. <callback name="expose">
  8857. <return-value transfer-ownership="none">
  8858. <type name="none" c:type="void"/>
  8859. </return-value>
  8860. <parameters>
  8861. <parameter name="overlay" transfer-ownership="none">
  8862. <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
  8863. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8864. </parameter>
  8865. </parameters>
  8866. </callback>
  8867. </field>
  8868. <field name="handle_events">
  8869. <callback name="handle_events">
  8870. <return-value transfer-ownership="none">
  8871. <type name="none" c:type="void"/>
  8872. </return-value>
  8873. <parameters>
  8874. <parameter name="overlay" transfer-ownership="none">
  8875. <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
  8876. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8877. </parameter>
  8878. <parameter name="handle_events" transfer-ownership="none">
  8879. <doc xml:space="preserve">a #gboolean indicating if events should be handled or not.</doc>
  8880. <type name="gboolean" c:type="gboolean"/>
  8881. </parameter>
  8882. </parameters>
  8883. </callback>
  8884. </field>
  8885. <field name="set_render_rectangle">
  8886. <callback name="set_render_rectangle">
  8887. <return-value transfer-ownership="none">
  8888. <type name="none" c:type="void"/>
  8889. </return-value>
  8890. <parameters>
  8891. <parameter name="overlay" transfer-ownership="none">
  8892. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8893. </parameter>
  8894. <parameter name="x" transfer-ownership="none">
  8895. <type name="gint" c:type="gint"/>
  8896. </parameter>
  8897. <parameter name="y" transfer-ownership="none">
  8898. <type name="gint" c:type="gint"/>
  8899. </parameter>
  8900. <parameter name="width" transfer-ownership="none">
  8901. <type name="gint" c:type="gint"/>
  8902. </parameter>
  8903. <parameter name="height" transfer-ownership="none">
  8904. <type name="gint" c:type="gint"/>
  8905. </parameter>
  8906. </parameters>
  8907. </callback>
  8908. </field>
  8909. <field name="set_window_handle">
  8910. <callback name="set_window_handle">
  8911. <return-value transfer-ownership="none">
  8912. <type name="none" c:type="void"/>
  8913. </return-value>
  8914. <parameters>
  8915. <parameter name="overlay" transfer-ownership="none">
  8916. <doc xml:space="preserve">a #GstVideoOverlay to set the window on.</doc>
  8917. <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
  8918. </parameter>
  8919. <parameter name="handle" transfer-ownership="none">
  8920. <doc xml:space="preserve">a handle referencing the window.</doc>
  8921. <type name="guintptr" c:type="guintptr"/>
  8922. </parameter>
  8923. </parameters>
  8924. </callback>
  8925. </field>
  8926. </record>
  8927. <record name="VideoOverlayRectangle"
  8928. c:type="GstVideoOverlayRectangle"
  8929. glib:type-name="GstVideoOverlayRectangle"
  8930. glib:get-type="gst_video_overlay_rectangle_get_type"
  8931. c:symbol-prefix="video_overlay_rectangle">
  8932. <doc xml:space="preserve">An opaque video overlay rectangle object. A rectangle contains a single
  8933. overlay rectangle which can be added to a composition.</doc>
  8934. <constructor name="new_raw"
  8935. c:identifier="gst_video_overlay_rectangle_new_raw">
  8936. <doc xml:space="preserve">Creates a new video overlay rectangle with ARGB or AYUV pixel data.
  8937. The layout in case of ARGB of the components in memory is B-G-R-A
  8938. on little-endian platforms
  8939. (corresponding to #GST_VIDEO_FORMAT_BGRA) and A-R-G-B on big-endian
  8940. platforms (corresponding to #GST_VIDEO_FORMAT_ARGB). In other words,
  8941. pixels are treated as 32-bit words and the lowest 8 bits then contain
  8942. the blue component value and the highest 8 bits contain the alpha
  8943. component value. Unless specified in the flags, the RGB values are
  8944. non-premultiplied. This is the format that is used by most hardware,
  8945. and also many rendering libraries such as Cairo, for example.
  8946. The pixel data buffer must have #GstVideoMeta set.</doc>
  8947. <return-value transfer-ownership="full">
  8948. <doc xml:space="preserve">a new #GstVideoOverlayRectangle. Unref with
  8949. gst_video_overlay_rectangle_unref() when no longer needed.</doc>
  8950. <type name="VideoOverlayRectangle"
  8951. c:type="GstVideoOverlayRectangle*"/>
  8952. </return-value>
  8953. <parameters>
  8954. <parameter name="pixels" transfer-ownership="none">
  8955. <doc xml:space="preserve">a #GstBuffer pointing to the pixel memory</doc>
  8956. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  8957. </parameter>
  8958. <parameter name="render_x" transfer-ownership="none">
  8959. <doc xml:space="preserve">the X co-ordinate on the video where the top-left corner of this
  8960. overlay rectangle should be rendered to</doc>
  8961. <type name="gint" c:type="gint"/>
  8962. </parameter>
  8963. <parameter name="render_y" transfer-ownership="none">
  8964. <doc xml:space="preserve">the Y co-ordinate on the video where the top-left corner of this
  8965. overlay rectangle should be rendered to</doc>
  8966. <type name="gint" c:type="gint"/>
  8967. </parameter>
  8968. <parameter name="render_width" transfer-ownership="none">
  8969. <doc xml:space="preserve">the render width of this rectangle on the video</doc>
  8970. <type name="guint" c:type="guint"/>
  8971. </parameter>
  8972. <parameter name="render_height" transfer-ownership="none">
  8973. <doc xml:space="preserve">the render height of this rectangle on the video</doc>
  8974. <type name="guint" c:type="guint"/>
  8975. </parameter>
  8976. <parameter name="flags" transfer-ownership="none">
  8977. <doc xml:space="preserve">flags</doc>
  8978. <type name="VideoOverlayFormatFlags"
  8979. c:type="GstVideoOverlayFormatFlags"/>
  8980. </parameter>
  8981. </parameters>
  8982. </constructor>
  8983. <method name="copy" c:identifier="gst_video_overlay_rectangle_copy">
  8984. <doc xml:space="preserve">Makes a copy of @rectangle, so that it is possible to modify it
  8985. (e.g. to change the render co-ordinates or render dimension). The
  8986. actual overlay pixel data buffers contained in the rectangle are not
  8987. copied.</doc>
  8988. <return-value transfer-ownership="full">
  8989. <doc xml:space="preserve">a new #GstVideoOverlayRectangle equivalent
  8990. to @rectangle.</doc>
  8991. <type name="VideoOverlayRectangle"
  8992. c:type="GstVideoOverlayRectangle*"/>
  8993. </return-value>
  8994. <parameters>
  8995. <instance-parameter name="rectangle" transfer-ownership="none">
  8996. <doc xml:space="preserve">a #GstVideoOverlayRectangle to copy</doc>
  8997. <type name="VideoOverlayRectangle"
  8998. c:type="GstVideoOverlayRectangle*"/>
  8999. </instance-parameter>
  9000. </parameters>
  9001. </method>
  9002. <method name="get_flags"
  9003. c:identifier="gst_video_overlay_rectangle_get_flags">
  9004. <doc xml:space="preserve">Retrieves the flags associated with a #GstVideoOverlayRectangle.
  9005. This is useful if the caller can handle both premultiplied alpha and
  9006. non premultiplied alpha, for example. By knowing whether the rectangle
  9007. uses premultiplied or not, it can request the pixel data in the format
  9008. it is stored in, to avoid unnecessary conversion.</doc>
  9009. <return-value transfer-ownership="none">
  9010. <doc xml:space="preserve">the #GstVideoOverlayFormatFlags associated with the rectangle.</doc>
  9011. <type name="VideoOverlayFormatFlags"
  9012. c:type="GstVideoOverlayFormatFlags"/>
  9013. </return-value>
  9014. <parameters>
  9015. <instance-parameter name="rectangle" transfer-ownership="none">
  9016. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9017. <type name="VideoOverlayRectangle"
  9018. c:type="GstVideoOverlayRectangle*"/>
  9019. </instance-parameter>
  9020. </parameters>
  9021. </method>
  9022. <method name="get_global_alpha"
  9023. c:identifier="gst_video_overlay_rectangle_get_global_alpha">
  9024. <doc xml:space="preserve">Retrieves the global-alpha value associated with a #GstVideoOverlayRectangle.</doc>
  9025. <return-value transfer-ownership="none">
  9026. <doc xml:space="preserve">the global-alpha value associated with the rectangle.</doc>
  9027. <type name="gfloat" c:type="gfloat"/>
  9028. </return-value>
  9029. <parameters>
  9030. <instance-parameter name="rectangle" transfer-ownership="none">
  9031. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9032. <type name="VideoOverlayRectangle"
  9033. c:type="GstVideoOverlayRectangle*"/>
  9034. </instance-parameter>
  9035. </parameters>
  9036. </method>
  9037. <method name="get_pixels_argb"
  9038. c:identifier="gst_video_overlay_rectangle_get_pixels_argb">
  9039. <return-value transfer-ownership="none">
  9040. <doc xml:space="preserve">a #GstBuffer holding the ARGB pixel data with
  9041. width and height of the render dimensions as per
  9042. gst_video_overlay_rectangle_get_render_rectangle(). This function does
  9043. not return a reference, the caller should obtain a reference of her own
  9044. with gst_buffer_ref() if needed.</doc>
  9045. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9046. </return-value>
  9047. <parameters>
  9048. <instance-parameter name="rectangle" transfer-ownership="none">
  9049. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9050. <type name="VideoOverlayRectangle"
  9051. c:type="GstVideoOverlayRectangle*"/>
  9052. </instance-parameter>
  9053. <parameter name="flags" transfer-ownership="none">
  9054. <doc xml:space="preserve">flags
  9055. If a global_alpha value != 1 is set for the rectangle, the caller
  9056. should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
  9057. if he wants to apply global-alpha himself. If the flag is not set
  9058. global_alpha is applied internally before returning the pixel-data.</doc>
  9059. <type name="VideoOverlayFormatFlags"
  9060. c:type="GstVideoOverlayFormatFlags"/>
  9061. </parameter>
  9062. </parameters>
  9063. </method>
  9064. <method name="get_pixels_ayuv"
  9065. c:identifier="gst_video_overlay_rectangle_get_pixels_ayuv">
  9066. <return-value transfer-ownership="none">
  9067. <doc xml:space="preserve">a #GstBuffer holding the AYUV pixel data with
  9068. width and height of the render dimensions as per
  9069. gst_video_overlay_rectangle_get_render_rectangle(). This function does
  9070. not return a reference, the caller should obtain a reference of her own
  9071. with gst_buffer_ref() if needed.</doc>
  9072. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9073. </return-value>
  9074. <parameters>
  9075. <instance-parameter name="rectangle" transfer-ownership="none">
  9076. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9077. <type name="VideoOverlayRectangle"
  9078. c:type="GstVideoOverlayRectangle*"/>
  9079. </instance-parameter>
  9080. <parameter name="flags" transfer-ownership="none">
  9081. <doc xml:space="preserve">flags
  9082. If a global_alpha value != 1 is set for the rectangle, the caller
  9083. should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
  9084. if he wants to apply global-alpha himself. If the flag is not set
  9085. global_alpha is applied internally before returning the pixel-data.</doc>
  9086. <type name="VideoOverlayFormatFlags"
  9087. c:type="GstVideoOverlayFormatFlags"/>
  9088. </parameter>
  9089. </parameters>
  9090. </method>
  9091. <method name="get_pixels_raw"
  9092. c:identifier="gst_video_overlay_rectangle_get_pixels_raw">
  9093. <return-value transfer-ownership="none">
  9094. <doc xml:space="preserve">a #GstBuffer holding the pixel data with
  9095. format as originally provided and specified in video meta with
  9096. width and height of the render dimensions as per
  9097. gst_video_overlay_rectangle_get_render_rectangle(). This function does
  9098. not return a reference, the caller should obtain a reference of her own
  9099. with gst_buffer_ref() if needed.</doc>
  9100. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9101. </return-value>
  9102. <parameters>
  9103. <instance-parameter name="rectangle" transfer-ownership="none">
  9104. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9105. <type name="VideoOverlayRectangle"
  9106. c:type="GstVideoOverlayRectangle*"/>
  9107. </instance-parameter>
  9108. <parameter name="flags" transfer-ownership="none">
  9109. <doc xml:space="preserve">flags
  9110. If a global_alpha value != 1 is set for the rectangle, the caller
  9111. should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
  9112. if he wants to apply global-alpha himself. If the flag is not set
  9113. global_alpha is applied internally before returning the pixel-data.</doc>
  9114. <type name="VideoOverlayFormatFlags"
  9115. c:type="GstVideoOverlayFormatFlags"/>
  9116. </parameter>
  9117. </parameters>
  9118. </method>
  9119. <method name="get_pixels_unscaled_argb"
  9120. c:identifier="gst_video_overlay_rectangle_get_pixels_unscaled_argb">
  9121. <doc xml:space="preserve">Retrieves the pixel data as it is. This is useful if the caller can
  9122. do the scaling itself when handling the overlaying. The rectangle will
  9123. need to be scaled to the render dimensions, which can be retrieved using
  9124. gst_video_overlay_rectangle_get_render_rectangle().</doc>
  9125. <return-value transfer-ownership="none">
  9126. <doc xml:space="preserve">a #GstBuffer holding the ARGB pixel data with
  9127. #GstVideoMeta set. This function does not return a reference, the caller
  9128. should obtain a reference of her own with gst_buffer_ref() if needed.</doc>
  9129. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9130. </return-value>
  9131. <parameters>
  9132. <instance-parameter name="rectangle" transfer-ownership="none">
  9133. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9134. <type name="VideoOverlayRectangle"
  9135. c:type="GstVideoOverlayRectangle*"/>
  9136. </instance-parameter>
  9137. <parameter name="flags" transfer-ownership="none">
  9138. <doc xml:space="preserve">flags.
  9139. If a global_alpha value != 1 is set for the rectangle, the caller
  9140. should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
  9141. if he wants to apply global-alpha himself. If the flag is not set
  9142. global_alpha is applied internally before returning the pixel-data.</doc>
  9143. <type name="VideoOverlayFormatFlags"
  9144. c:type="GstVideoOverlayFormatFlags"/>
  9145. </parameter>
  9146. </parameters>
  9147. </method>
  9148. <method name="get_pixels_unscaled_ayuv"
  9149. c:identifier="gst_video_overlay_rectangle_get_pixels_unscaled_ayuv">
  9150. <doc xml:space="preserve">Retrieves the pixel data as it is. This is useful if the caller can
  9151. do the scaling itself when handling the overlaying. The rectangle will
  9152. need to be scaled to the render dimensions, which can be retrieved using
  9153. gst_video_overlay_rectangle_get_render_rectangle().</doc>
  9154. <return-value transfer-ownership="none">
  9155. <doc xml:space="preserve">a #GstBuffer holding the AYUV pixel data with
  9156. #GstVideoMeta set. This function does not return a reference, the caller
  9157. should obtain a reference of her own with gst_buffer_ref() if needed.</doc>
  9158. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9159. </return-value>
  9160. <parameters>
  9161. <instance-parameter name="rectangle" transfer-ownership="none">
  9162. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9163. <type name="VideoOverlayRectangle"
  9164. c:type="GstVideoOverlayRectangle*"/>
  9165. </instance-parameter>
  9166. <parameter name="flags" transfer-ownership="none">
  9167. <doc xml:space="preserve">flags.
  9168. If a global_alpha value != 1 is set for the rectangle, the caller
  9169. should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
  9170. if he wants to apply global-alpha himself. If the flag is not set
  9171. global_alpha is applied internally before returning the pixel-data.</doc>
  9172. <type name="VideoOverlayFormatFlags"
  9173. c:type="GstVideoOverlayFormatFlags"/>
  9174. </parameter>
  9175. </parameters>
  9176. </method>
  9177. <method name="get_pixels_unscaled_raw"
  9178. c:identifier="gst_video_overlay_rectangle_get_pixels_unscaled_raw">
  9179. <doc xml:space="preserve">Retrieves the pixel data as it is. This is useful if the caller can
  9180. do the scaling itself when handling the overlaying. The rectangle will
  9181. need to be scaled to the render dimensions, which can be retrieved using
  9182. gst_video_overlay_rectangle_get_render_rectangle().</doc>
  9183. <return-value transfer-ownership="none">
  9184. <doc xml:space="preserve">a #GstBuffer holding the pixel data with
  9185. #GstVideoMeta set. This function does not return a reference, the caller
  9186. should obtain a reference of her own with gst_buffer_ref() if needed.</doc>
  9187. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9188. </return-value>
  9189. <parameters>
  9190. <instance-parameter name="rectangle" transfer-ownership="none">
  9191. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9192. <type name="VideoOverlayRectangle"
  9193. c:type="GstVideoOverlayRectangle*"/>
  9194. </instance-parameter>
  9195. <parameter name="flags" transfer-ownership="none">
  9196. <doc xml:space="preserve">flags.
  9197. If a global_alpha value != 1 is set for the rectangle, the caller
  9198. should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
  9199. if he wants to apply global-alpha himself. If the flag is not set
  9200. global_alpha is applied internally before returning the pixel-data.</doc>
  9201. <type name="VideoOverlayFormatFlags"
  9202. c:type="GstVideoOverlayFormatFlags"/>
  9203. </parameter>
  9204. </parameters>
  9205. </method>
  9206. <method name="get_render_rectangle"
  9207. c:identifier="gst_video_overlay_rectangle_get_render_rectangle">
  9208. <doc xml:space="preserve">Retrieves the render position and render dimension of the overlay
  9209. rectangle on the video.</doc>
  9210. <return-value transfer-ownership="none">
  9211. <doc xml:space="preserve">TRUE if valid render dimensions were retrieved.</doc>
  9212. <type name="gboolean" c:type="gboolean"/>
  9213. </return-value>
  9214. <parameters>
  9215. <instance-parameter name="rectangle" transfer-ownership="none">
  9216. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9217. <type name="VideoOverlayRectangle"
  9218. c:type="GstVideoOverlayRectangle*"/>
  9219. </instance-parameter>
  9220. <parameter name="render_x"
  9221. direction="out"
  9222. caller-allocates="0"
  9223. transfer-ownership="full"
  9224. optional="1"
  9225. allow-none="1">
  9226. <doc xml:space="preserve">address where to store the X render offset</doc>
  9227. <type name="gint" c:type="gint*"/>
  9228. </parameter>
  9229. <parameter name="render_y"
  9230. direction="out"
  9231. caller-allocates="0"
  9232. transfer-ownership="full"
  9233. optional="1"
  9234. allow-none="1">
  9235. <doc xml:space="preserve">address where to store the Y render offset</doc>
  9236. <type name="gint" c:type="gint*"/>
  9237. </parameter>
  9238. <parameter name="render_width"
  9239. direction="out"
  9240. caller-allocates="0"
  9241. transfer-ownership="full"
  9242. optional="1"
  9243. allow-none="1">
  9244. <doc xml:space="preserve">address where to store the render width</doc>
  9245. <type name="guint" c:type="guint*"/>
  9246. </parameter>
  9247. <parameter name="render_height"
  9248. direction="out"
  9249. caller-allocates="0"
  9250. transfer-ownership="full"
  9251. optional="1"
  9252. allow-none="1">
  9253. <doc xml:space="preserve">address where to store the render height</doc>
  9254. <type name="guint" c:type="guint*"/>
  9255. </parameter>
  9256. </parameters>
  9257. </method>
  9258. <method name="get_seqnum"
  9259. c:identifier="gst_video_overlay_rectangle_get_seqnum">
  9260. <doc xml:space="preserve">Returns the sequence number of this rectangle. Sequence numbers are
  9261. monotonically increasing and unique for overlay compositions and rectangles
  9262. (meaning there will never be a rectangle with the same sequence number as
  9263. a composition).
  9264. Using the sequence number of a rectangle as an indicator for changed
  9265. pixel-data of a rectangle is dangereous. Some API calls, like e.g.
  9266. gst_video_overlay_rectangle_set_global_alpha(), automatically update
  9267. the per rectangle sequence number, which is misleading for renderers/
  9268. consumers, that handle global-alpha themselves. For them the
  9269. pixel-data returned by gst_video_overlay_rectangle_get_pixels_*()
  9270. wont be different for different global-alpha values. In this case a
  9271. renderer could also use the GstBuffer pointers as a hint for changed
  9272. pixel-data.</doc>
  9273. <return-value transfer-ownership="none">
  9274. <doc xml:space="preserve">the sequence number of @rectangle</doc>
  9275. <type name="guint" c:type="guint"/>
  9276. </return-value>
  9277. <parameters>
  9278. <instance-parameter name="rectangle" transfer-ownership="none">
  9279. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9280. <type name="VideoOverlayRectangle"
  9281. c:type="GstVideoOverlayRectangle*"/>
  9282. </instance-parameter>
  9283. </parameters>
  9284. </method>
  9285. <method name="set_global_alpha"
  9286. c:identifier="gst_video_overlay_rectangle_set_global_alpha">
  9287. <doc xml:space="preserve">Sets the global alpha value associated with a #GstVideoOverlayRectangle. Per-
  9288. pixel alpha values are multiplied with this value. Valid
  9289. values: 0 &lt;= global_alpha &lt;= 1; 1 to deactivate.
  9290. @rectangle must be writable, meaning its refcount must be 1. You can
  9291. make the rectangles inside a #GstVideoOverlayComposition writable using
  9292. gst_video_overlay_composition_make_writable() or
  9293. gst_video_overlay_composition_copy().</doc>
  9294. <return-value transfer-ownership="none">
  9295. <type name="none" c:type="void"/>
  9296. </return-value>
  9297. <parameters>
  9298. <instance-parameter name="rectangle" transfer-ownership="none">
  9299. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9300. <type name="VideoOverlayRectangle"
  9301. c:type="GstVideoOverlayRectangle*"/>
  9302. </instance-parameter>
  9303. <parameter name="global_alpha" transfer-ownership="none">
  9304. <doc xml:space="preserve">Global alpha value (0 to 1.0)</doc>
  9305. <type name="gfloat" c:type="gfloat"/>
  9306. </parameter>
  9307. </parameters>
  9308. </method>
  9309. <method name="set_render_rectangle"
  9310. c:identifier="gst_video_overlay_rectangle_set_render_rectangle">
  9311. <doc xml:space="preserve">Sets the render position and dimensions of the rectangle on the video.
  9312. This function is mainly for elements that modify the size of the video
  9313. in some way (e.g. through scaling or cropping) and need to adjust the
  9314. details of any overlays to match the operation that changed the size.
  9315. @rectangle must be writable, meaning its refcount must be 1. You can
  9316. make the rectangles inside a #GstVideoOverlayComposition writable using
  9317. gst_video_overlay_composition_make_writable() or
  9318. gst_video_overlay_composition_copy().</doc>
  9319. <return-value transfer-ownership="none">
  9320. <type name="none" c:type="void"/>
  9321. </return-value>
  9322. <parameters>
  9323. <instance-parameter name="rectangle" transfer-ownership="none">
  9324. <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
  9325. <type name="VideoOverlayRectangle"
  9326. c:type="GstVideoOverlayRectangle*"/>
  9327. </instance-parameter>
  9328. <parameter name="render_x" transfer-ownership="none">
  9329. <doc xml:space="preserve">render X position of rectangle on video</doc>
  9330. <type name="gint" c:type="gint"/>
  9331. </parameter>
  9332. <parameter name="render_y" transfer-ownership="none">
  9333. <doc xml:space="preserve">render Y position of rectangle on video</doc>
  9334. <type name="gint" c:type="gint"/>
  9335. </parameter>
  9336. <parameter name="render_width" transfer-ownership="none">
  9337. <doc xml:space="preserve">render width of rectangle</doc>
  9338. <type name="guint" c:type="guint"/>
  9339. </parameter>
  9340. <parameter name="render_height" transfer-ownership="none">
  9341. <doc xml:space="preserve">render height of rectangle</doc>
  9342. <type name="guint" c:type="guint"/>
  9343. </parameter>
  9344. </parameters>
  9345. </method>
  9346. </record>
  9347. <bitfield name="VideoPackFlags"
  9348. glib:type-name="GstVideoPackFlags"
  9349. glib:get-type="gst_video_pack_flags_get_type"
  9350. c:type="GstVideoPackFlags">
  9351. <doc xml:space="preserve">The different flags that can be used when packing and unpacking.</doc>
  9352. <member name="none"
  9353. value="0"
  9354. c:identifier="GST_VIDEO_PACK_FLAG_NONE"
  9355. glib:nick="none">
  9356. <doc xml:space="preserve">No flag</doc>
  9357. </member>
  9358. <member name="truncate_range"
  9359. value="1"
  9360. c:identifier="GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE"
  9361. glib:nick="truncate-range">
  9362. <doc xml:space="preserve">When the source has a smaller depth
  9363. than the target format, set the least significant bits of the target
  9364. to 0. This is likely sightly faster but less accurate. When this flag
  9365. is not specified, the most significant bits of the source are duplicated
  9366. in the least significant bits of the destination.</doc>
  9367. </member>
  9368. <member name="interlaced"
  9369. value="2"
  9370. c:identifier="GST_VIDEO_PACK_FLAG_INTERLACED"
  9371. glib:nick="interlaced">
  9372. <doc xml:space="preserve">The source is interlaced. The unpacked
  9373. format will be interlaced as well with each line containing
  9374. information from alternating fields. (Since 1.2)</doc>
  9375. </member>
  9376. </bitfield>
  9377. <enumeration name="VideoPrimariesMode"
  9378. version="1.6"
  9379. glib:type-name="GstVideoPrimariesMode"
  9380. glib:get-type="gst_video_primaries_mode_get_type"
  9381. c:type="GstVideoPrimariesMode">
  9382. <doc xml:space="preserve">Different primaries conversion modes</doc>
  9383. <member name="none"
  9384. value="0"
  9385. c:identifier="GST_VIDEO_PRIMARIES_MODE_NONE"
  9386. glib:nick="none">
  9387. <doc xml:space="preserve">disable conversion between primaries</doc>
  9388. </member>
  9389. <member name="merge_only"
  9390. value="1"
  9391. c:identifier="GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY"
  9392. glib:nick="merge-only">
  9393. <doc xml:space="preserve">do conversion between primaries only
  9394. when it can be merged with color matrix conversion.</doc>
  9395. </member>
  9396. <member name="fast"
  9397. value="2"
  9398. c:identifier="GST_VIDEO_PRIMARIES_MODE_FAST"
  9399. glib:nick="fast">
  9400. <doc xml:space="preserve">fast conversion between primaries</doc>
  9401. </member>
  9402. </enumeration>
  9403. <record name="VideoRectangle" c:type="GstVideoRectangle">
  9404. <doc xml:space="preserve">Helper structure representing a rectangular area.</doc>
  9405. <field name="x" writable="1">
  9406. <doc xml:space="preserve">X coordinate of rectangle's top-left point</doc>
  9407. <type name="gint" c:type="gint"/>
  9408. </field>
  9409. <field name="y" writable="1">
  9410. <doc xml:space="preserve">Y coordinate of rectangle's top-left point</doc>
  9411. <type name="gint" c:type="gint"/>
  9412. </field>
  9413. <field name="w" writable="1">
  9414. <doc xml:space="preserve">width of the rectangle</doc>
  9415. <type name="gint" c:type="gint"/>
  9416. </field>
  9417. <field name="h" writable="1">
  9418. <doc xml:space="preserve">height of the rectangle</doc>
  9419. <type name="gint" c:type="gint"/>
  9420. </field>
  9421. </record>
  9422. <record name="VideoRegionOfInterestMeta"
  9423. c:type="GstVideoRegionOfInterestMeta">
  9424. <doc xml:space="preserve">Extra buffer metadata describing an image region of interest</doc>
  9425. <field name="meta" writable="1">
  9426. <doc xml:space="preserve">parent #GstMeta</doc>
  9427. <type name="Gst.Meta" c:type="GstMeta"/>
  9428. </field>
  9429. <field name="roi_type" writable="1">
  9430. <doc xml:space="preserve">GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)</doc>
  9431. <type name="GLib.Quark" c:type="GQuark"/>
  9432. </field>
  9433. <field name="id" writable="1">
  9434. <doc xml:space="preserve">identifier of this particular ROI</doc>
  9435. <type name="gint" c:type="gint"/>
  9436. </field>
  9437. <field name="parent_id" writable="1">
  9438. <doc xml:space="preserve">identifier of its parent ROI, used f.i. for ROI hierarchisation.</doc>
  9439. <type name="gint" c:type="gint"/>
  9440. </field>
  9441. <field name="x" writable="1">
  9442. <doc xml:space="preserve">x component of upper-left corner</doc>
  9443. <type name="guint" c:type="guint"/>
  9444. </field>
  9445. <field name="y" writable="1">
  9446. <doc xml:space="preserve">y component of upper-left corner</doc>
  9447. <type name="guint" c:type="guint"/>
  9448. </field>
  9449. <field name="w" writable="1">
  9450. <doc xml:space="preserve">bounding box width</doc>
  9451. <type name="guint" c:type="guint"/>
  9452. </field>
  9453. <field name="h" writable="1">
  9454. <doc xml:space="preserve">bounding box height</doc>
  9455. <type name="guint" c:type="guint"/>
  9456. </field>
  9457. <function name="get_info"
  9458. c:identifier="gst_video_region_of_interest_meta_get_info">
  9459. <return-value transfer-ownership="none">
  9460. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  9461. </return-value>
  9462. </function>
  9463. </record>
  9464. <record name="VideoResampler" c:type="GstVideoResampler" version="1.6">
  9465. <doc xml:space="preserve">#GstVideoResampler is a structure which holds the information
  9466. required to perform various kinds of resampling filtering.</doc>
  9467. <field name="in_size" writable="1">
  9468. <doc xml:space="preserve">the input size</doc>
  9469. <type name="gint" c:type="gint"/>
  9470. </field>
  9471. <field name="out_size" writable="1">
  9472. <doc xml:space="preserve">the output size</doc>
  9473. <type name="gint" c:type="gint"/>
  9474. </field>
  9475. <field name="max_taps" writable="1">
  9476. <doc xml:space="preserve">the maximum number of taps</doc>
  9477. <type name="guint" c:type="guint"/>
  9478. </field>
  9479. <field name="n_phases" writable="1">
  9480. <doc xml:space="preserve">the number of phases</doc>
  9481. <type name="guint" c:type="guint"/>
  9482. </field>
  9483. <field name="offset" writable="1">
  9484. <doc xml:space="preserve">array with the source offset for each output element</doc>
  9485. <type name="guint32" c:type="guint32*"/>
  9486. </field>
  9487. <field name="phase" writable="1">
  9488. <doc xml:space="preserve">array with the phase to use for each output element</doc>
  9489. <type name="guint32" c:type="guint32*"/>
  9490. </field>
  9491. <field name="n_taps" writable="1">
  9492. <doc xml:space="preserve">array with new number of taps for each phase</doc>
  9493. <type name="guint32" c:type="guint32*"/>
  9494. </field>
  9495. <field name="taps" writable="1">
  9496. <doc xml:space="preserve">the taps for all phases</doc>
  9497. <type name="gdouble" c:type="gdouble*"/>
  9498. </field>
  9499. <field name="_gst_reserved" readable="0" private="1">
  9500. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  9501. <type name="gpointer" c:type="gpointer"/>
  9502. </array>
  9503. </field>
  9504. <method name="clear"
  9505. c:identifier="gst_video_resampler_clear"
  9506. version="1.6">
  9507. <doc xml:space="preserve">Clear a previously initialized #GstVideoResampler @resampler.</doc>
  9508. <return-value transfer-ownership="none">
  9509. <type name="none" c:type="void"/>
  9510. </return-value>
  9511. <parameters>
  9512. <instance-parameter name="resampler" transfer-ownership="none">
  9513. <doc xml:space="preserve">a #GstVideoResampler</doc>
  9514. <type name="VideoResampler" c:type="GstVideoResampler*"/>
  9515. </instance-parameter>
  9516. </parameters>
  9517. </method>
  9518. <method name="init" c:identifier="gst_video_resampler_init">
  9519. <return-value transfer-ownership="none">
  9520. <type name="gboolean" c:type="gboolean"/>
  9521. </return-value>
  9522. <parameters>
  9523. <instance-parameter name="resampler" transfer-ownership="none">
  9524. <type name="VideoResampler" c:type="GstVideoResampler*"/>
  9525. </instance-parameter>
  9526. <parameter name="method" transfer-ownership="none">
  9527. <type name="VideoResamplerMethod"
  9528. c:type="GstVideoResamplerMethod"/>
  9529. </parameter>
  9530. <parameter name="flags" transfer-ownership="none">
  9531. <type name="VideoResamplerFlags" c:type="GstVideoResamplerFlags"/>
  9532. </parameter>
  9533. <parameter name="n_phases" transfer-ownership="none">
  9534. <type name="guint" c:type="guint"/>
  9535. </parameter>
  9536. <parameter name="n_taps" transfer-ownership="none">
  9537. <type name="guint" c:type="guint"/>
  9538. </parameter>
  9539. <parameter name="shift" transfer-ownership="none">
  9540. <type name="gdouble" c:type="gdouble"/>
  9541. </parameter>
  9542. <parameter name="in_size" transfer-ownership="none">
  9543. <type name="guint" c:type="guint"/>
  9544. </parameter>
  9545. <parameter name="out_size" transfer-ownership="none">
  9546. <type name="guint" c:type="guint"/>
  9547. </parameter>
  9548. <parameter name="options" transfer-ownership="none">
  9549. <type name="Gst.Structure" c:type="GstStructure*"/>
  9550. </parameter>
  9551. </parameters>
  9552. </method>
  9553. </record>
  9554. <enumeration name="VideoResamplerFlags"
  9555. version="1.6"
  9556. glib:type-name="GstVideoResamplerFlags"
  9557. glib:get-type="gst_video_resampler_flags_get_type"
  9558. c:type="GstVideoResamplerFlags">
  9559. <doc xml:space="preserve">Different resampler flags.</doc>
  9560. <member name="none"
  9561. value="0"
  9562. c:identifier="GST_VIDEO_RESAMPLER_FLAG_NONE"
  9563. glib:nick="none">
  9564. <doc xml:space="preserve">no flags</doc>
  9565. </member>
  9566. </enumeration>
  9567. <enumeration name="VideoResamplerMethod"
  9568. version="1.6"
  9569. glib:type-name="GstVideoResamplerMethod"
  9570. glib:get-type="gst_video_resampler_method_get_type"
  9571. c:type="GstVideoResamplerMethod">
  9572. <doc xml:space="preserve">Different subsampling and upsampling methods</doc>
  9573. <member name="nearest"
  9574. value="0"
  9575. c:identifier="GST_VIDEO_RESAMPLER_METHOD_NEAREST"
  9576. glib:nick="nearest">
  9577. <doc xml:space="preserve">Duplicates the samples when
  9578. upsampling and drops when downsampling</doc>
  9579. </member>
  9580. <member name="linear"
  9581. value="1"
  9582. c:identifier="GST_VIDEO_RESAMPLER_METHOD_LINEAR"
  9583. glib:nick="linear">
  9584. <doc xml:space="preserve">Uses linear interpolation to reconstruct
  9585. missing samples and averaging to downsample</doc>
  9586. </member>
  9587. <member name="cubic"
  9588. value="2"
  9589. c:identifier="GST_VIDEO_RESAMPLER_METHOD_CUBIC"
  9590. glib:nick="cubic">
  9591. <doc xml:space="preserve">Uses cubic interpolation</doc>
  9592. </member>
  9593. <member name="sinc"
  9594. value="3"
  9595. c:identifier="GST_VIDEO_RESAMPLER_METHOD_SINC"
  9596. glib:nick="sinc">
  9597. <doc xml:space="preserve">Uses sinc interpolation</doc>
  9598. </member>
  9599. <member name="lanczos"
  9600. value="4"
  9601. c:identifier="GST_VIDEO_RESAMPLER_METHOD_LANCZOS"
  9602. glib:nick="lanczos">
  9603. <doc xml:space="preserve">Uses lanczos interpolation</doc>
  9604. </member>
  9605. </enumeration>
  9606. <record name="VideoScaler" c:type="GstVideoScaler" disguised="1">
  9607. <doc xml:space="preserve">#GstVideoScaler is a utility object for rescaling and resampling
  9608. video frames using various interpolation / sampling methods.</doc>
  9609. <method name="2d" c:identifier="gst_video_scaler_2d">
  9610. <doc xml:space="preserve">Scale a rectangle of pixels in @src with @src_stride to @dest with
  9611. @dest_stride using the horizontal scaler @hscaler and the vertical
  9612. scaler @vscale.
  9613. One or both of @hscale and @vscale can be NULL to only perform scaling in
  9614. one dimension or do a copy without scaling.
  9615. @x and @y are the coordinates in the destination image to process.</doc>
  9616. <return-value transfer-ownership="none">
  9617. <type name="none" c:type="void"/>
  9618. </return-value>
  9619. <parameters>
  9620. <instance-parameter name="hscale" transfer-ownership="none">
  9621. <doc xml:space="preserve">a horzontal #GstVideoScaler</doc>
  9622. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9623. </instance-parameter>
  9624. <parameter name="vscale" transfer-ownership="none">
  9625. <doc xml:space="preserve">a vertical #GstVideoScaler</doc>
  9626. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9627. </parameter>
  9628. <parameter name="format" transfer-ownership="none">
  9629. <doc xml:space="preserve">a #GstVideoFormat for @srcs and @dest</doc>
  9630. <type name="VideoFormat" c:type="GstVideoFormat"/>
  9631. </parameter>
  9632. <parameter name="src"
  9633. transfer-ownership="none"
  9634. nullable="1"
  9635. allow-none="1">
  9636. <doc xml:space="preserve">source pixels</doc>
  9637. <type name="gpointer" c:type="gpointer"/>
  9638. </parameter>
  9639. <parameter name="src_stride" transfer-ownership="none">
  9640. <doc xml:space="preserve">source pixels stride</doc>
  9641. <type name="gint" c:type="gint"/>
  9642. </parameter>
  9643. <parameter name="dest"
  9644. transfer-ownership="none"
  9645. nullable="1"
  9646. allow-none="1">
  9647. <doc xml:space="preserve">destination pixels</doc>
  9648. <type name="gpointer" c:type="gpointer"/>
  9649. </parameter>
  9650. <parameter name="dest_stride" transfer-ownership="none">
  9651. <doc xml:space="preserve">destination pixels stride</doc>
  9652. <type name="gint" c:type="gint"/>
  9653. </parameter>
  9654. <parameter name="x" transfer-ownership="none">
  9655. <doc xml:space="preserve">the horizontal destination offset</doc>
  9656. <type name="guint" c:type="guint"/>
  9657. </parameter>
  9658. <parameter name="y" transfer-ownership="none">
  9659. <doc xml:space="preserve">the vertical destination offset</doc>
  9660. <type name="guint" c:type="guint"/>
  9661. </parameter>
  9662. <parameter name="width" transfer-ownership="none">
  9663. <doc xml:space="preserve">the number of output pixels to scale</doc>
  9664. <type name="guint" c:type="guint"/>
  9665. </parameter>
  9666. <parameter name="height" transfer-ownership="none">
  9667. <doc xml:space="preserve">the number of output lines to scale</doc>
  9668. <type name="guint" c:type="guint"/>
  9669. </parameter>
  9670. </parameters>
  9671. </method>
  9672. <method name="combine_packed_YUV"
  9673. c:identifier="gst_video_scaler_combine_packed_YUV"
  9674. version="1.6"
  9675. introspectable="0">
  9676. <doc xml:space="preserve">Combine a scaler for Y and UV into one scaler for the packed @format.</doc>
  9677. <return-value>
  9678. <doc xml:space="preserve">a new horizontal videoscaler for @format.</doc>
  9679. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9680. </return-value>
  9681. <parameters>
  9682. <instance-parameter name="y_scale" transfer-ownership="none">
  9683. <doc xml:space="preserve">a scaler for the Y component</doc>
  9684. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9685. </instance-parameter>
  9686. <parameter name="uv_scale" transfer-ownership="none">
  9687. <doc xml:space="preserve">a scaler for the U and V components</doc>
  9688. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9689. </parameter>
  9690. <parameter name="in_format" transfer-ownership="none">
  9691. <doc xml:space="preserve">the input video format</doc>
  9692. <type name="VideoFormat" c:type="GstVideoFormat"/>
  9693. </parameter>
  9694. <parameter name="out_format" transfer-ownership="none">
  9695. <doc xml:space="preserve">the output video format</doc>
  9696. <type name="VideoFormat" c:type="GstVideoFormat"/>
  9697. </parameter>
  9698. </parameters>
  9699. </method>
  9700. <method name="free" c:identifier="gst_video_scaler_free">
  9701. <doc xml:space="preserve">Free a previously allocated #GstVideoScaler @scale.</doc>
  9702. <return-value transfer-ownership="none">
  9703. <type name="none" c:type="void"/>
  9704. </return-value>
  9705. <parameters>
  9706. <instance-parameter name="scale" transfer-ownership="none">
  9707. <doc xml:space="preserve">a #GstVideoScaler</doc>
  9708. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9709. </instance-parameter>
  9710. </parameters>
  9711. </method>
  9712. <method name="get_coeff" c:identifier="gst_video_scaler_get_coeff">
  9713. <doc xml:space="preserve">For a given pixel at @out_offset, get the first required input pixel at
  9714. @in_offset and the @n_taps filter coefficients.
  9715. Note that for interlaced content, @in_offset needs to be incremented with
  9716. 2 to get the next input line.</doc>
  9717. <return-value transfer-ownership="none">
  9718. <doc xml:space="preserve">an array of @n_tap gdouble values with filter coefficients.</doc>
  9719. <type name="gdouble" c:type="const gdouble*"/>
  9720. </return-value>
  9721. <parameters>
  9722. <instance-parameter name="scale" transfer-ownership="none">
  9723. <doc xml:space="preserve">a #GstVideoScaler</doc>
  9724. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9725. </instance-parameter>
  9726. <parameter name="out_offset" transfer-ownership="none">
  9727. <doc xml:space="preserve">an output offset</doc>
  9728. <type name="guint" c:type="guint"/>
  9729. </parameter>
  9730. <parameter name="in_offset" transfer-ownership="none">
  9731. <doc xml:space="preserve">result input offset</doc>
  9732. <type name="guint" c:type="guint*"/>
  9733. </parameter>
  9734. <parameter name="n_taps" transfer-ownership="none">
  9735. <doc xml:space="preserve">result n_taps</doc>
  9736. <type name="guint" c:type="guint*"/>
  9737. </parameter>
  9738. </parameters>
  9739. </method>
  9740. <method name="get_max_taps" c:identifier="gst_video_scaler_get_max_taps">
  9741. <doc xml:space="preserve">Get the maximum number of taps for @scale.</doc>
  9742. <return-value transfer-ownership="none">
  9743. <doc xml:space="preserve">the maximum number of taps</doc>
  9744. <type name="guint" c:type="guint"/>
  9745. </return-value>
  9746. <parameters>
  9747. <instance-parameter name="scale" transfer-ownership="none">
  9748. <doc xml:space="preserve">a #GstVideoScaler</doc>
  9749. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9750. </instance-parameter>
  9751. </parameters>
  9752. </method>
  9753. <method name="horizontal" c:identifier="gst_video_scaler_horizontal">
  9754. <doc xml:space="preserve">Horizontally scale the pixels in @src to @dest, starting from @dest_offset
  9755. for @width samples.</doc>
  9756. <return-value transfer-ownership="none">
  9757. <type name="none" c:type="void"/>
  9758. </return-value>
  9759. <parameters>
  9760. <instance-parameter name="scale" transfer-ownership="none">
  9761. <doc xml:space="preserve">a #GstVideoScaler</doc>
  9762. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9763. </instance-parameter>
  9764. <parameter name="format" transfer-ownership="none">
  9765. <doc xml:space="preserve">a #GstVideoFormat for @src and @dest</doc>
  9766. <type name="VideoFormat" c:type="GstVideoFormat"/>
  9767. </parameter>
  9768. <parameter name="src"
  9769. transfer-ownership="none"
  9770. nullable="1"
  9771. allow-none="1">
  9772. <doc xml:space="preserve">source pixels</doc>
  9773. <type name="gpointer" c:type="gpointer"/>
  9774. </parameter>
  9775. <parameter name="dest"
  9776. transfer-ownership="none"
  9777. nullable="1"
  9778. allow-none="1">
  9779. <doc xml:space="preserve">destination pixels</doc>
  9780. <type name="gpointer" c:type="gpointer"/>
  9781. </parameter>
  9782. <parameter name="dest_offset" transfer-ownership="none">
  9783. <doc xml:space="preserve">the horizontal destination offset</doc>
  9784. <type name="guint" c:type="guint"/>
  9785. </parameter>
  9786. <parameter name="width" transfer-ownership="none">
  9787. <doc xml:space="preserve">the number of pixels to scale</doc>
  9788. <type name="guint" c:type="guint"/>
  9789. </parameter>
  9790. </parameters>
  9791. </method>
  9792. <method name="vertical" c:identifier="gst_video_scaler_vertical">
  9793. <doc xml:space="preserve">Vertically combine @width pixels in the lines in @src_lines to @dest.
  9794. @dest is the location of the target line at @dest_offset and
  9795. @srcs are the input lines for @dest_offset, as obtained with
  9796. gst_video_scaler_get_info().</doc>
  9797. <return-value transfer-ownership="none">
  9798. <type name="none" c:type="void"/>
  9799. </return-value>
  9800. <parameters>
  9801. <instance-parameter name="scale" transfer-ownership="none">
  9802. <doc xml:space="preserve">a #GstVideoScaler</doc>
  9803. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9804. </instance-parameter>
  9805. <parameter name="format" transfer-ownership="none">
  9806. <doc xml:space="preserve">a #GstVideoFormat for @srcs and @dest</doc>
  9807. <type name="VideoFormat" c:type="GstVideoFormat"/>
  9808. </parameter>
  9809. <parameter name="src_lines"
  9810. transfer-ownership="none"
  9811. nullable="1"
  9812. allow-none="1">
  9813. <doc xml:space="preserve">source pixels lines</doc>
  9814. <type name="gpointer" c:type="gpointer"/>
  9815. </parameter>
  9816. <parameter name="dest"
  9817. transfer-ownership="none"
  9818. nullable="1"
  9819. allow-none="1">
  9820. <doc xml:space="preserve">destination pixels</doc>
  9821. <type name="gpointer" c:type="gpointer"/>
  9822. </parameter>
  9823. <parameter name="dest_offset" transfer-ownership="none">
  9824. <doc xml:space="preserve">the vertical destination offset</doc>
  9825. <type name="guint" c:type="guint"/>
  9826. </parameter>
  9827. <parameter name="width" transfer-ownership="none">
  9828. <doc xml:space="preserve">the number of pixels to scale</doc>
  9829. <type name="guint" c:type="guint"/>
  9830. </parameter>
  9831. </parameters>
  9832. </method>
  9833. <function name="new"
  9834. c:identifier="gst_video_scaler_new"
  9835. introspectable="0">
  9836. <doc xml:space="preserve">Make a new @method video scaler. @in_size source lines/pixels will
  9837. be scaled to @out_size destination lines/pixels.
  9838. @n_taps specifies the amount of pixels to use from the source for one output
  9839. pixel. If n_taps is 0, this function chooses a good value automatically based
  9840. on the @method and @in_size/@out_size.</doc>
  9841. <return-value>
  9842. <doc xml:space="preserve">a #GstVideoResample</doc>
  9843. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  9844. </return-value>
  9845. <parameters>
  9846. <parameter name="method" transfer-ownership="none">
  9847. <doc xml:space="preserve">a #GstVideoResamplerMethod</doc>
  9848. <type name="VideoResamplerMethod"
  9849. c:type="GstVideoResamplerMethod"/>
  9850. </parameter>
  9851. <parameter name="flags" transfer-ownership="none">
  9852. <doc xml:space="preserve">#GstVideoScalerFlags</doc>
  9853. <type name="VideoScalerFlags" c:type="GstVideoScalerFlags"/>
  9854. </parameter>
  9855. <parameter name="n_taps" transfer-ownership="none">
  9856. <doc xml:space="preserve">number of taps to use</doc>
  9857. <type name="guint" c:type="guint"/>
  9858. </parameter>
  9859. <parameter name="in_size" transfer-ownership="none">
  9860. <doc xml:space="preserve">number of source elements</doc>
  9861. <type name="guint" c:type="guint"/>
  9862. </parameter>
  9863. <parameter name="out_size" transfer-ownership="none">
  9864. <doc xml:space="preserve">number of destination elements</doc>
  9865. <type name="guint" c:type="guint"/>
  9866. </parameter>
  9867. <parameter name="options"
  9868. transfer-ownership="none"
  9869. nullable="1"
  9870. allow-none="1">
  9871. <doc xml:space="preserve">extra options</doc>
  9872. <type name="Gst.Structure" c:type="GstStructure*"/>
  9873. </parameter>
  9874. </parameters>
  9875. </function>
  9876. </record>
  9877. <bitfield name="VideoScalerFlags"
  9878. glib:type-name="GstVideoScalerFlags"
  9879. glib:get-type="gst_video_scaler_flags_get_type"
  9880. c:type="GstVideoScalerFlags">
  9881. <doc xml:space="preserve">Different scale flags.</doc>
  9882. <member name="none"
  9883. value="0"
  9884. c:identifier="GST_VIDEO_SCALER_FLAG_NONE"
  9885. glib:nick="none">
  9886. <doc xml:space="preserve">no flags</doc>
  9887. </member>
  9888. <member name="interlaced"
  9889. value="1"
  9890. c:identifier="GST_VIDEO_SCALER_FLAG_INTERLACED"
  9891. glib:nick="interlaced">
  9892. <doc xml:space="preserve">Set up a scaler for interlaced content</doc>
  9893. </member>
  9894. </bitfield>
  9895. <class name="VideoSink"
  9896. c:symbol-prefix="video_sink"
  9897. c:type="GstVideoSink"
  9898. parent="GstBase.BaseSink"
  9899. glib:type-name="GstVideoSink"
  9900. glib:get-type="gst_video_sink_get_type"
  9901. glib:type-struct="VideoSinkClass">
  9902. <doc xml:space="preserve">&lt;refsect2&gt;
  9903. &lt;para&gt;
  9904. Provides useful functions and a base class for video sinks.
  9905. &lt;/para&gt;
  9906. &lt;para&gt;
  9907. GstVideoSink will configure the default base sink to drop frames that
  9908. arrive later than 20ms as this is considered the default threshold for
  9909. observing out-of-sync frames.
  9910. &lt;/para&gt;
  9911. &lt;/refsect2&gt;</doc>
  9912. <function name="center_rect" c:identifier="gst_video_sink_center_rect">
  9913. <doc xml:space="preserve">Takes @src rectangle and position it at the center of @dst rectangle with or
  9914. without @scaling. It handles clipping if the @src rectangle is bigger than
  9915. the @dst one and @scaling is set to FALSE.</doc>
  9916. <return-value transfer-ownership="none">
  9917. <type name="none" c:type="void"/>
  9918. </return-value>
  9919. <parameters>
  9920. <parameter name="src" transfer-ownership="none">
  9921. <doc xml:space="preserve">the #GstVideoRectangle describing the source area</doc>
  9922. <type name="VideoRectangle" c:type="GstVideoRectangle"/>
  9923. </parameter>
  9924. <parameter name="dst" transfer-ownership="none">
  9925. <doc xml:space="preserve">the #GstVideoRectangle describing the destination area</doc>
  9926. <type name="VideoRectangle" c:type="GstVideoRectangle"/>
  9927. </parameter>
  9928. <parameter name="result" transfer-ownership="none">
  9929. <doc xml:space="preserve">a pointer to a #GstVideoRectangle which will receive the result area</doc>
  9930. <type name="VideoRectangle" c:type="GstVideoRectangle*"/>
  9931. </parameter>
  9932. <parameter name="scaling" transfer-ownership="none">
  9933. <doc xml:space="preserve">a #gboolean indicating if scaling should be applied or not</doc>
  9934. <type name="gboolean" c:type="gboolean"/>
  9935. </parameter>
  9936. </parameters>
  9937. </function>
  9938. <virtual-method name="show_frame">
  9939. <return-value transfer-ownership="none">
  9940. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  9941. </return-value>
  9942. <parameters>
  9943. <instance-parameter name="video_sink" transfer-ownership="none">
  9944. <type name="VideoSink" c:type="GstVideoSink*"/>
  9945. </instance-parameter>
  9946. <parameter name="buf" transfer-ownership="none">
  9947. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9948. </parameter>
  9949. </parameters>
  9950. </virtual-method>
  9951. <property name="show-preroll-frame"
  9952. writable="1"
  9953. construct="1"
  9954. transfer-ownership="none">
  9955. <doc xml:space="preserve">Whether to show video frames during preroll. If set to #FALSE, video
  9956. frames will only be rendered in PLAYING state.</doc>
  9957. <type name="gboolean" c:type="gboolean"/>
  9958. </property>
  9959. <field name="element">
  9960. <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
  9961. </field>
  9962. <field name="width">
  9963. <doc xml:space="preserve">video width (derived class needs to set this)</doc>
  9964. <type name="gint" c:type="gint"/>
  9965. </field>
  9966. <field name="height">
  9967. <doc xml:space="preserve">video height (derived class needs to set this)</doc>
  9968. <type name="gint" c:type="gint"/>
  9969. </field>
  9970. <field name="priv" readable="0" private="1">
  9971. <type name="VideoSinkPrivate" c:type="GstVideoSinkPrivate*"/>
  9972. </field>
  9973. <field name="_gst_reserved" readable="0" private="1">
  9974. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  9975. <type name="gpointer" c:type="gpointer"/>
  9976. </array>
  9977. </field>
  9978. </class>
  9979. <record name="VideoSinkClass"
  9980. c:type="GstVideoSinkClass"
  9981. glib:is-gtype-struct-for="VideoSink">
  9982. <doc xml:space="preserve">The video sink class structure. Derived classes should override the
  9983. @show_frame virtual function.</doc>
  9984. <field name="parent_class">
  9985. <doc xml:space="preserve">the parent class structure</doc>
  9986. <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
  9987. </field>
  9988. <field name="show_frame">
  9989. <callback name="show_frame">
  9990. <return-value transfer-ownership="none">
  9991. <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
  9992. </return-value>
  9993. <parameters>
  9994. <parameter name="video_sink" transfer-ownership="none">
  9995. <type name="VideoSink" c:type="GstVideoSink*"/>
  9996. </parameter>
  9997. <parameter name="buf" transfer-ownership="none">
  9998. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  9999. </parameter>
  10000. </parameters>
  10001. </callback>
  10002. </field>
  10003. <field name="_gst_reserved" readable="0" private="1">
  10004. <array zero-terminated="0" c:type="gpointer" fixed-size="4">
  10005. <type name="gpointer" c:type="gpointer"/>
  10006. </array>
  10007. </field>
  10008. </record>
  10009. <record name="VideoSinkPrivate" c:type="GstVideoSinkPrivate" disguised="1">
  10010. </record>
  10011. <enumeration name="VideoTileMode"
  10012. glib:type-name="GstVideoTileMode"
  10013. glib:get-type="gst_video_tile_mode_get_type"
  10014. c:type="GstVideoTileMode">
  10015. <doc xml:space="preserve">Enum value describing the available tiling modes.</doc>
  10016. <member name="unknown"
  10017. value="0"
  10018. c:identifier="GST_VIDEO_TILE_MODE_UNKNOWN"
  10019. glib:nick="unknown">
  10020. <doc xml:space="preserve">Unknown or unset tile mode</doc>
  10021. </member>
  10022. <member name="zflipz_2x2"
  10023. value="65536"
  10024. c:identifier="GST_VIDEO_TILE_MODE_ZFLIPZ_2X2"
  10025. glib:nick="zflipz-2x2">
  10026. <doc xml:space="preserve">Every four adjacent blocks - two
  10027. horizontally and two vertically are grouped together and are located
  10028. in memory in Z or flipped Z order. In case of odd rows, the last row
  10029. of blocks is arranged in linear order.</doc>
  10030. </member>
  10031. </enumeration>
  10032. <enumeration name="VideoTileType"
  10033. glib:type-name="GstVideoTileType"
  10034. glib:get-type="gst_video_tile_type_get_type"
  10035. c:type="GstVideoTileType">
  10036. <doc xml:space="preserve">Enum value describing the most common tiling types.</doc>
  10037. <member name="indexed"
  10038. value="0"
  10039. c:identifier="GST_VIDEO_TILE_TYPE_INDEXED"
  10040. glib:nick="indexed">
  10041. <doc xml:space="preserve">Tiles are indexed. Use
  10042. gst_video_tile_get_index () to retrieve the tile at the requested
  10043. coordinates.</doc>
  10044. </member>
  10045. </enumeration>
  10046. <enumeration name="VideoTransferFunction"
  10047. glib:type-name="GstVideoTransferFunction"
  10048. glib:get-type="gst_video_transfer_function_get_type"
  10049. c:type="GstVideoTransferFunction">
  10050. <doc xml:space="preserve">The video transfer function defines the formula for converting between
  10051. non-linear RGB (R'G'B') and linear RGB</doc>
  10052. <member name="unknown"
  10053. value="0"
  10054. c:identifier="GST_VIDEO_TRANSFER_UNKNOWN"
  10055. glib:nick="unknown">
  10056. <doc xml:space="preserve">unknown transfer function</doc>
  10057. </member>
  10058. <member name="gamma10"
  10059. value="1"
  10060. c:identifier="GST_VIDEO_TRANSFER_GAMMA10"
  10061. glib:nick="gamma10">
  10062. <doc xml:space="preserve">linear RGB, gamma 1.0 curve</doc>
  10063. </member>
  10064. <member name="gamma18"
  10065. value="2"
  10066. c:identifier="GST_VIDEO_TRANSFER_GAMMA18"
  10067. glib:nick="gamma18">
  10068. <doc xml:space="preserve">Gamma 1.8 curve</doc>
  10069. </member>
  10070. <member name="gamma20"
  10071. value="3"
  10072. c:identifier="GST_VIDEO_TRANSFER_GAMMA20"
  10073. glib:nick="gamma20">
  10074. <doc xml:space="preserve">Gamma 2.0 curve</doc>
  10075. </member>
  10076. <member name="gamma22"
  10077. value="4"
  10078. c:identifier="GST_VIDEO_TRANSFER_GAMMA22"
  10079. glib:nick="gamma22">
  10080. <doc xml:space="preserve">Gamma 2.2 curve</doc>
  10081. </member>
  10082. <member name="bt709"
  10083. value="5"
  10084. c:identifier="GST_VIDEO_TRANSFER_BT709"
  10085. glib:nick="bt709">
  10086. <doc xml:space="preserve">Gamma 2.2 curve with a linear segment in the lower
  10087. range</doc>
  10088. </member>
  10089. <member name="smpte240m"
  10090. value="6"
  10091. c:identifier="GST_VIDEO_TRANSFER_SMPTE240M"
  10092. glib:nick="smpte240m">
  10093. <doc xml:space="preserve">Gamma 2.2 curve with a linear segment in the
  10094. lower range</doc>
  10095. </member>
  10096. <member name="srgb"
  10097. value="7"
  10098. c:identifier="GST_VIDEO_TRANSFER_SRGB"
  10099. glib:nick="srgb">
  10100. <doc xml:space="preserve">Gamma 2.4 curve with a linear segment in the lower
  10101. range</doc>
  10102. </member>
  10103. <member name="gamma28"
  10104. value="8"
  10105. c:identifier="GST_VIDEO_TRANSFER_GAMMA28"
  10106. glib:nick="gamma28">
  10107. <doc xml:space="preserve">Gamma 2.8 curve</doc>
  10108. </member>
  10109. <member name="log100"
  10110. value="9"
  10111. c:identifier="GST_VIDEO_TRANSFER_LOG100"
  10112. glib:nick="log100">
  10113. <doc xml:space="preserve">Logarithmic transfer characteristic
  10114. 100:1 range</doc>
  10115. </member>
  10116. <member name="log316"
  10117. value="10"
  10118. c:identifier="GST_VIDEO_TRANSFER_LOG316"
  10119. glib:nick="log316">
  10120. <doc xml:space="preserve">Logarithmic transfer characteristic
  10121. 316.22777:1 range</doc>
  10122. </member>
  10123. <member name="bt2020_12"
  10124. value="11"
  10125. c:identifier="GST_VIDEO_TRANSFER_BT2020_12"
  10126. glib:nick="bt2020-12">
  10127. <doc xml:space="preserve">Gamma 2.2 curve with a linear segment in the lower
  10128. range. Used for BT.2020 with 12 bits per
  10129. component. Since: 1.6.</doc>
  10130. </member>
  10131. <member name="adobergb"
  10132. value="12"
  10133. c:identifier="GST_VIDEO_TRANSFER_ADOBERGB"
  10134. glib:nick="adobergb">
  10135. <doc xml:space="preserve">Gamma 2.19921875. Since: 1.8</doc>
  10136. </member>
  10137. </enumeration>
  10138. <function name="buffer_add_video_affine_transformation_meta"
  10139. c:identifier="gst_buffer_add_video_affine_transformation_meta"
  10140. version="1.8">
  10141. <doc xml:space="preserve">Attaches GstVideoAffineTransformationMeta metadata to @buffer with
  10142. the given parameters.</doc>
  10143. <return-value transfer-ownership="none">
  10144. <doc xml:space="preserve">the #GstVideoAffineTransformationMeta on @buffer.</doc>
  10145. <type name="VideoAffineTransformationMeta"
  10146. c:type="GstVideoAffineTransformationMeta*"/>
  10147. </return-value>
  10148. <parameters>
  10149. <parameter name="buffer" transfer-ownership="none">
  10150. <doc xml:space="preserve">a #GstBuffer</doc>
  10151. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10152. </parameter>
  10153. </parameters>
  10154. </function>
  10155. <function name="buffer_add_video_gl_texture_upload_meta"
  10156. c:identifier="gst_buffer_add_video_gl_texture_upload_meta">
  10157. <doc xml:space="preserve">Attaches GstVideoGLTextureUploadMeta metadata to @buffer with the given
  10158. parameters.</doc>
  10159. <return-value transfer-ownership="none">
  10160. <doc xml:space="preserve">the #GstVideoGLTextureUploadMeta on @buffer.</doc>
  10161. <type name="VideoGLTextureUploadMeta"
  10162. c:type="GstVideoGLTextureUploadMeta*"/>
  10163. </return-value>
  10164. <parameters>
  10165. <parameter name="buffer" transfer-ownership="none">
  10166. <doc xml:space="preserve">a #GstBuffer</doc>
  10167. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10168. </parameter>
  10169. <parameter name="texture_orientation" transfer-ownership="none">
  10170. <doc xml:space="preserve">the #GstVideoGLTextureOrientation</doc>
  10171. <type name="VideoGLTextureOrientation"
  10172. c:type="GstVideoGLTextureOrientation"/>
  10173. </parameter>
  10174. <parameter name="n_textures" transfer-ownership="none">
  10175. <doc xml:space="preserve">the number of textures</doc>
  10176. <type name="guint" c:type="guint"/>
  10177. </parameter>
  10178. <parameter name="texture_type" transfer-ownership="none">
  10179. <doc xml:space="preserve">array of #GstVideoGLTextureType</doc>
  10180. <type name="VideoGLTextureType" c:type="GstVideoGLTextureType"/>
  10181. </parameter>
  10182. <parameter name="upload"
  10183. transfer-ownership="none"
  10184. scope="call"
  10185. closure="5">
  10186. <doc xml:space="preserve">the function to upload the buffer to a specific texture ID</doc>
  10187. <type name="VideoGLTextureUpload" c:type="GstVideoGLTextureUpload"/>
  10188. </parameter>
  10189. <parameter name="user_data"
  10190. transfer-ownership="none"
  10191. nullable="1"
  10192. allow-none="1">
  10193. <doc xml:space="preserve">user data for the implementor of @upload</doc>
  10194. <type name="gpointer" c:type="gpointer"/>
  10195. </parameter>
  10196. <parameter name="user_data_copy"
  10197. transfer-ownership="none"
  10198. scope="call">
  10199. <doc xml:space="preserve">function to copy @user_data</doc>
  10200. <type name="GObject.BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
  10201. </parameter>
  10202. <parameter name="user_data_free"
  10203. transfer-ownership="none"
  10204. scope="call">
  10205. <doc xml:space="preserve">function to free @user_data</doc>
  10206. <type name="GObject.BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
  10207. </parameter>
  10208. </parameters>
  10209. </function>
  10210. <function name="buffer_add_video_meta"
  10211. c:identifier="gst_buffer_add_video_meta">
  10212. <doc xml:space="preserve">Attaches GstVideoMeta metadata to @buffer with the given parameters and the
  10213. default offsets and strides for @format and @width x @height.
  10214. This function calculates the default offsets and strides and then calls
  10215. gst_buffer_add_video_meta_full() with them.</doc>
  10216. <return-value transfer-ownership="none">
  10217. <doc xml:space="preserve">the #GstVideoMeta on @buffer.</doc>
  10218. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  10219. </return-value>
  10220. <parameters>
  10221. <parameter name="buffer" transfer-ownership="none">
  10222. <doc xml:space="preserve">a #GstBuffer</doc>
  10223. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10224. </parameter>
  10225. <parameter name="flags" transfer-ownership="none">
  10226. <doc xml:space="preserve">#GstVideoFrameFlags</doc>
  10227. <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
  10228. </parameter>
  10229. <parameter name="format" transfer-ownership="none">
  10230. <doc xml:space="preserve">a #GstVideoFormat</doc>
  10231. <type name="VideoFormat" c:type="GstVideoFormat"/>
  10232. </parameter>
  10233. <parameter name="width" transfer-ownership="none">
  10234. <doc xml:space="preserve">the width</doc>
  10235. <type name="guint" c:type="guint"/>
  10236. </parameter>
  10237. <parameter name="height" transfer-ownership="none">
  10238. <doc xml:space="preserve">the height</doc>
  10239. <type name="guint" c:type="guint"/>
  10240. </parameter>
  10241. </parameters>
  10242. </function>
  10243. <function name="buffer_add_video_meta_full"
  10244. c:identifier="gst_buffer_add_video_meta_full">
  10245. <doc xml:space="preserve">Attaches GstVideoMeta metadata to @buffer with the given parameters.</doc>
  10246. <return-value transfer-ownership="none">
  10247. <doc xml:space="preserve">the #GstVideoMeta on @buffer.</doc>
  10248. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  10249. </return-value>
  10250. <parameters>
  10251. <parameter name="buffer" transfer-ownership="none">
  10252. <doc xml:space="preserve">a #GstBuffer</doc>
  10253. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10254. </parameter>
  10255. <parameter name="flags" transfer-ownership="none">
  10256. <doc xml:space="preserve">#GstVideoFrameFlags</doc>
  10257. <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
  10258. </parameter>
  10259. <parameter name="format" transfer-ownership="none">
  10260. <doc xml:space="preserve">a #GstVideoFormat</doc>
  10261. <type name="VideoFormat" c:type="GstVideoFormat"/>
  10262. </parameter>
  10263. <parameter name="width" transfer-ownership="none">
  10264. <doc xml:space="preserve">the width</doc>
  10265. <type name="guint" c:type="guint"/>
  10266. </parameter>
  10267. <parameter name="height" transfer-ownership="none">
  10268. <doc xml:space="preserve">the height</doc>
  10269. <type name="guint" c:type="guint"/>
  10270. </parameter>
  10271. <parameter name="n_planes" transfer-ownership="none">
  10272. <doc xml:space="preserve">number of planes</doc>
  10273. <type name="guint" c:type="guint"/>
  10274. </parameter>
  10275. <parameter name="offset" transfer-ownership="none">
  10276. <doc xml:space="preserve">offset of each plane</doc>
  10277. <type name="gsize" c:type="gsize"/>
  10278. </parameter>
  10279. <parameter name="stride" transfer-ownership="none">
  10280. <doc xml:space="preserve">stride of each plane</doc>
  10281. <type name="gint" c:type="gint"/>
  10282. </parameter>
  10283. </parameters>
  10284. </function>
  10285. <function name="buffer_add_video_overlay_composition_meta"
  10286. c:identifier="gst_buffer_add_video_overlay_composition_meta">
  10287. <doc xml:space="preserve">Sets an overlay composition on a buffer. The buffer will obtain its own
  10288. reference to the composition, meaning this function does not take ownership
  10289. of @comp.</doc>
  10290. <return-value transfer-ownership="none">
  10291. <doc xml:space="preserve">a #GstVideoOverlayCompositionMeta</doc>
  10292. <type name="VideoOverlayCompositionMeta"
  10293. c:type="GstVideoOverlayCompositionMeta*"/>
  10294. </return-value>
  10295. <parameters>
  10296. <parameter name="buf" transfer-ownership="none">
  10297. <doc xml:space="preserve">a #GstBuffer</doc>
  10298. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10299. </parameter>
  10300. <parameter name="comp"
  10301. transfer-ownership="none"
  10302. nullable="1"
  10303. allow-none="1">
  10304. <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
  10305. <type name="VideoOverlayComposition"
  10306. c:type="GstVideoOverlayComposition*"/>
  10307. </parameter>
  10308. </parameters>
  10309. </function>
  10310. <function name="buffer_add_video_region_of_interest_meta"
  10311. c:identifier="gst_buffer_add_video_region_of_interest_meta">
  10312. <doc xml:space="preserve">Attaches #GstVideoRegionOfInterestMeta metadata to @buffer with the given
  10313. parameters.</doc>
  10314. <return-value transfer-ownership="none">
  10315. <doc xml:space="preserve">the #GstVideoRegionOfInterestMeta on @buffer.</doc>
  10316. <type name="VideoRegionOfInterestMeta"
  10317. c:type="GstVideoRegionOfInterestMeta*"/>
  10318. </return-value>
  10319. <parameters>
  10320. <parameter name="buffer" transfer-ownership="none">
  10321. <doc xml:space="preserve">a #GstBuffer</doc>
  10322. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10323. </parameter>
  10324. <parameter name="roi_type" transfer-ownership="none">
  10325. <doc xml:space="preserve">Type of the region of interest (e.g. "face")</doc>
  10326. <type name="utf8" c:type="const gchar*"/>
  10327. </parameter>
  10328. <parameter name="x" transfer-ownership="none">
  10329. <doc xml:space="preserve">X position</doc>
  10330. <type name="guint" c:type="guint"/>
  10331. </parameter>
  10332. <parameter name="y" transfer-ownership="none">
  10333. <doc xml:space="preserve">Y position</doc>
  10334. <type name="guint" c:type="guint"/>
  10335. </parameter>
  10336. <parameter name="w" transfer-ownership="none">
  10337. <doc xml:space="preserve">width</doc>
  10338. <type name="guint" c:type="guint"/>
  10339. </parameter>
  10340. <parameter name="h" transfer-ownership="none">
  10341. <doc xml:space="preserve">height</doc>
  10342. <type name="guint" c:type="guint"/>
  10343. </parameter>
  10344. </parameters>
  10345. </function>
  10346. <function name="buffer_add_video_region_of_interest_meta_id"
  10347. c:identifier="gst_buffer_add_video_region_of_interest_meta_id">
  10348. <doc xml:space="preserve">Attaches #GstVideoRegionOfInterestMeta metadata to @buffer with the given
  10349. parameters.</doc>
  10350. <return-value transfer-ownership="none">
  10351. <doc xml:space="preserve">the #GstVideoRegionOfInterestMeta on @buffer.</doc>
  10352. <type name="VideoRegionOfInterestMeta"
  10353. c:type="GstVideoRegionOfInterestMeta*"/>
  10354. </return-value>
  10355. <parameters>
  10356. <parameter name="buffer" transfer-ownership="none">
  10357. <doc xml:space="preserve">a #GstBuffer</doc>
  10358. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10359. </parameter>
  10360. <parameter name="roi_type" transfer-ownership="none">
  10361. <doc xml:space="preserve">Type of the region of interest (e.g. "face")</doc>
  10362. <type name="GLib.Quark" c:type="GQuark"/>
  10363. </parameter>
  10364. <parameter name="x" transfer-ownership="none">
  10365. <doc xml:space="preserve">X position</doc>
  10366. <type name="guint" c:type="guint"/>
  10367. </parameter>
  10368. <parameter name="y" transfer-ownership="none">
  10369. <doc xml:space="preserve">Y position</doc>
  10370. <type name="guint" c:type="guint"/>
  10371. </parameter>
  10372. <parameter name="w" transfer-ownership="none">
  10373. <doc xml:space="preserve">width</doc>
  10374. <type name="guint" c:type="guint"/>
  10375. </parameter>
  10376. <parameter name="h" transfer-ownership="none">
  10377. <doc xml:space="preserve">height</doc>
  10378. <type name="guint" c:type="guint"/>
  10379. </parameter>
  10380. </parameters>
  10381. </function>
  10382. <function name="buffer_get_video_meta"
  10383. c:identifier="gst_buffer_get_video_meta">
  10384. <doc xml:space="preserve">Find the #GstVideoMeta on @buffer with the lowest @id.
  10385. Buffers can contain multiple #GstVideoMeta metadata items when dealing with
  10386. multiview buffers.</doc>
  10387. <return-value transfer-ownership="none">
  10388. <doc xml:space="preserve">the #GstVideoMeta with lowest id (usually 0) or %NULL when there
  10389. is no such metadata on @buffer.</doc>
  10390. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  10391. </return-value>
  10392. <parameters>
  10393. <parameter name="buffer" transfer-ownership="none">
  10394. <doc xml:space="preserve">a #GstBuffer</doc>
  10395. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10396. </parameter>
  10397. </parameters>
  10398. </function>
  10399. <function name="buffer_get_video_meta_id"
  10400. c:identifier="gst_buffer_get_video_meta_id">
  10401. <doc xml:space="preserve">Find the #GstVideoMeta on @buffer with the given @id.
  10402. Buffers can contain multiple #GstVideoMeta metadata items when dealing with
  10403. multiview buffers.</doc>
  10404. <return-value transfer-ownership="none">
  10405. <doc xml:space="preserve">the #GstVideoMeta with @id or %NULL when there is no such metadata
  10406. on @buffer.</doc>
  10407. <type name="VideoMeta" c:type="GstVideoMeta*"/>
  10408. </return-value>
  10409. <parameters>
  10410. <parameter name="buffer" transfer-ownership="none">
  10411. <doc xml:space="preserve">a #GstBuffer</doc>
  10412. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10413. </parameter>
  10414. <parameter name="id" transfer-ownership="none">
  10415. <doc xml:space="preserve">a metadata id</doc>
  10416. <type name="gint" c:type="gint"/>
  10417. </parameter>
  10418. </parameters>
  10419. </function>
  10420. <function name="buffer_get_video_region_of_interest_meta_id"
  10421. c:identifier="gst_buffer_get_video_region_of_interest_meta_id">
  10422. <doc xml:space="preserve">Find the #GstVideoRegionOfInterestMeta on @buffer with the given @id.
  10423. Buffers can contain multiple #GstVideoRegionOfInterestMeta metadata items if
  10424. multiple regions of interests are marked on a frame.</doc>
  10425. <return-value transfer-ownership="none">
  10426. <doc xml:space="preserve">the #GstVideoRegionOfInterestMeta with @id or %NULL when there is
  10427. no such metadata on @buffer.</doc>
  10428. <type name="VideoRegionOfInterestMeta"
  10429. c:type="GstVideoRegionOfInterestMeta*"/>
  10430. </return-value>
  10431. <parameters>
  10432. <parameter name="buffer" transfer-ownership="none">
  10433. <doc xml:space="preserve">a #GstBuffer</doc>
  10434. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  10435. </parameter>
  10436. <parameter name="id" transfer-ownership="none">
  10437. <doc xml:space="preserve">a metadata id</doc>
  10438. <type name="gint" c:type="gint"/>
  10439. </parameter>
  10440. </parameters>
  10441. </function>
  10442. <function name="buffer_pool_config_get_video_alignment"
  10443. c:identifier="gst_buffer_pool_config_get_video_alignment">
  10444. <doc xml:space="preserve">Get the video alignment from the bufferpool configuration @config in
  10445. in @align</doc>
  10446. <return-value transfer-ownership="none">
  10447. <doc xml:space="preserve">#TRUE if @config could be parsed correctly.</doc>
  10448. <type name="gboolean" c:type="gboolean"/>
  10449. </return-value>
  10450. <parameters>
  10451. <parameter name="config" transfer-ownership="none">
  10452. <doc xml:space="preserve">a #GstStructure</doc>
  10453. <type name="Gst.Structure" c:type="GstStructure*"/>
  10454. </parameter>
  10455. <parameter name="align" transfer-ownership="none">
  10456. <doc xml:space="preserve">a #GstVideoAlignment</doc>
  10457. <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
  10458. </parameter>
  10459. </parameters>
  10460. </function>
  10461. <function name="buffer_pool_config_set_video_alignment"
  10462. c:identifier="gst_buffer_pool_config_set_video_alignment">
  10463. <doc xml:space="preserve">Set the video alignment in @align to the bufferpool configuration
  10464. @config</doc>
  10465. <return-value transfer-ownership="none">
  10466. <type name="none" c:type="void"/>
  10467. </return-value>
  10468. <parameters>
  10469. <parameter name="config" transfer-ownership="none">
  10470. <doc xml:space="preserve">a #GstStructure</doc>
  10471. <type name="Gst.Structure" c:type="GstStructure*"/>
  10472. </parameter>
  10473. <parameter name="align" transfer-ownership="none">
  10474. <doc xml:space="preserve">a #GstVideoAlignment</doc>
  10475. <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
  10476. </parameter>
  10477. </parameters>
  10478. </function>
  10479. <function name="is_video_overlay_prepare_window_handle_message"
  10480. c:identifier="gst_is_video_overlay_prepare_window_handle_message">
  10481. <doc xml:space="preserve">Convenience function to check if the given message is a
  10482. "prepare-window-handle" message from a #GstVideoOverlay.</doc>
  10483. <return-value transfer-ownership="none">
  10484. <doc xml:space="preserve">whether @msg is a "prepare-window-handle" message</doc>
  10485. <type name="gboolean" c:type="gboolean"/>
  10486. </return-value>
  10487. <parameters>
  10488. <parameter name="msg" transfer-ownership="none">
  10489. <doc xml:space="preserve">a #GstMessage</doc>
  10490. <type name="Gst.Message" c:type="GstMessage*"/>
  10491. </parameter>
  10492. </parameters>
  10493. </function>
  10494. <function name="navigation_event_get_type"
  10495. c:identifier="gst_navigation_event_get_type"
  10496. moved-to="Navigation.event_get_type">
  10497. <doc xml:space="preserve">Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
  10498. #GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event.</doc>
  10499. <return-value transfer-ownership="none">
  10500. <type name="NavigationEventType" c:type="GstNavigationEventType"/>
  10501. </return-value>
  10502. <parameters>
  10503. <parameter name="event" transfer-ownership="none">
  10504. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  10505. <type name="Gst.Event" c:type="GstEvent*"/>
  10506. </parameter>
  10507. </parameters>
  10508. </function>
  10509. <function name="navigation_event_parse_command"
  10510. c:identifier="gst_navigation_event_parse_command"
  10511. moved-to="Navigation.event_parse_command">
  10512. <doc xml:space="preserve">Inspect a #GstNavigation command event and retrieve the enum value of the
  10513. associated command.</doc>
  10514. <return-value transfer-ownership="none">
  10515. <doc xml:space="preserve">TRUE if the navigation command could be extracted, otherwise FALSE.</doc>
  10516. <type name="gboolean" c:type="gboolean"/>
  10517. </return-value>
  10518. <parameters>
  10519. <parameter name="event" transfer-ownership="none">
  10520. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  10521. <type name="Gst.Event" c:type="GstEvent*"/>
  10522. </parameter>
  10523. <parameter name="command" transfer-ownership="none">
  10524. <doc xml:space="preserve">Pointer to GstNavigationCommand to receive the type of the
  10525. navigation event.</doc>
  10526. <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
  10527. </parameter>
  10528. </parameters>
  10529. </function>
  10530. <function name="navigation_event_parse_key_event"
  10531. c:identifier="gst_navigation_event_parse_key_event"
  10532. moved-to="Navigation.event_parse_key_event">
  10533. <return-value transfer-ownership="none">
  10534. <type name="gboolean" c:type="gboolean"/>
  10535. </return-value>
  10536. <parameters>
  10537. <parameter name="event" transfer-ownership="none">
  10538. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  10539. <type name="Gst.Event" c:type="GstEvent*"/>
  10540. </parameter>
  10541. <parameter name="key" transfer-ownership="none">
  10542. <doc xml:space="preserve">A pointer to a location to receive the string identifying the key
  10543. press. The returned string is owned by the event, and valid only until the
  10544. event is unreffed.</doc>
  10545. <type name="utf8" c:type="const gchar**"/>
  10546. </parameter>
  10547. </parameters>
  10548. </function>
  10549. <function name="navigation_event_parse_mouse_button_event"
  10550. c:identifier="gst_navigation_event_parse_mouse_button_event"
  10551. moved-to="Navigation.event_parse_mouse_button_event">
  10552. <doc xml:space="preserve">Retrieve the details of either a #GstNavigation mouse button press event or
  10553. a mouse button release event. Determine which type the event is using
  10554. gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.</doc>
  10555. <return-value transfer-ownership="none">
  10556. <doc xml:space="preserve">TRUE if the button number and both coordinates could be extracted,
  10557. otherwise FALSE.</doc>
  10558. <type name="gboolean" c:type="gboolean"/>
  10559. </return-value>
  10560. <parameters>
  10561. <parameter name="event" transfer-ownership="none">
  10562. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  10563. <type name="Gst.Event" c:type="GstEvent*"/>
  10564. </parameter>
  10565. <parameter name="button" transfer-ownership="none">
  10566. <doc xml:space="preserve">Pointer to a gint that will receive the button number associated
  10567. with the event.</doc>
  10568. <type name="gint" c:type="gint*"/>
  10569. </parameter>
  10570. <parameter name="x" transfer-ownership="none">
  10571. <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse button
  10572. event.</doc>
  10573. <type name="gdouble" c:type="gdouble*"/>
  10574. </parameter>
  10575. <parameter name="y" transfer-ownership="none">
  10576. <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse button
  10577. event.</doc>
  10578. <type name="gdouble" c:type="gdouble*"/>
  10579. </parameter>
  10580. </parameters>
  10581. </function>
  10582. <function name="navigation_event_parse_mouse_move_event"
  10583. c:identifier="gst_navigation_event_parse_mouse_move_event"
  10584. moved-to="Navigation.event_parse_mouse_move_event">
  10585. <doc xml:space="preserve">Inspect a #GstNavigation mouse movement event and extract the coordinates
  10586. of the event.</doc>
  10587. <return-value transfer-ownership="none">
  10588. <doc xml:space="preserve">TRUE if both coordinates could be extracted, otherwise FALSE.</doc>
  10589. <type name="gboolean" c:type="gboolean"/>
  10590. </return-value>
  10591. <parameters>
  10592. <parameter name="event" transfer-ownership="none">
  10593. <doc xml:space="preserve">A #GstEvent to inspect.</doc>
  10594. <type name="Gst.Event" c:type="GstEvent*"/>
  10595. </parameter>
  10596. <parameter name="x" transfer-ownership="none">
  10597. <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse movement.</doc>
  10598. <type name="gdouble" c:type="gdouble*"/>
  10599. </parameter>
  10600. <parameter name="y" transfer-ownership="none">
  10601. <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse movement.</doc>
  10602. <type name="gdouble" c:type="gdouble*"/>
  10603. </parameter>
  10604. </parameters>
  10605. </function>
  10606. <function name="navigation_message_get_type"
  10607. c:identifier="gst_navigation_message_get_type"
  10608. moved-to="Navigation.message_get_type">
  10609. <doc xml:space="preserve">Check a bus message to see if it is a #GstNavigation event, and return
  10610. the #GstNavigationMessageType identifying the type of the message if so.</doc>
  10611. <return-value transfer-ownership="none">
  10612. <doc xml:space="preserve">The type of the #GstMessage, or
  10613. #GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
  10614. notification.</doc>
  10615. <type name="NavigationMessageType" c:type="GstNavigationMessageType"/>
  10616. </return-value>
  10617. <parameters>
  10618. <parameter name="message" transfer-ownership="none">
  10619. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  10620. <type name="Gst.Message" c:type="GstMessage*"/>
  10621. </parameter>
  10622. </parameters>
  10623. </function>
  10624. <function name="navigation_message_new_angles_changed"
  10625. c:identifier="gst_navigation_message_new_angles_changed"
  10626. moved-to="Navigation.message_new_angles_changed">
  10627. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  10628. #GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
  10629. that the current angle, or current number of angles available in a
  10630. multiangle video has changed.</doc>
  10631. <return-value transfer-ownership="full">
  10632. <doc xml:space="preserve">The new #GstMessage.</doc>
  10633. <type name="Gst.Message" c:type="GstMessage*"/>
  10634. </return-value>
  10635. <parameters>
  10636. <parameter name="src" transfer-ownership="none">
  10637. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  10638. <type name="Gst.Object" c:type="GstObject*"/>
  10639. </parameter>
  10640. <parameter name="cur_angle" transfer-ownership="none">
  10641. <doc xml:space="preserve">The currently selected angle.</doc>
  10642. <type name="guint" c:type="guint"/>
  10643. </parameter>
  10644. <parameter name="n_angles" transfer-ownership="none">
  10645. <doc xml:space="preserve">The number of viewing angles now available.</doc>
  10646. <type name="guint" c:type="guint"/>
  10647. </parameter>
  10648. </parameters>
  10649. </function>
  10650. <function name="navigation_message_new_commands_changed"
  10651. c:identifier="gst_navigation_message_new_commands_changed"
  10652. moved-to="Navigation.message_new_commands_changed">
  10653. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  10654. #GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</doc>
  10655. <return-value transfer-ownership="full">
  10656. <doc xml:space="preserve">The new #GstMessage.</doc>
  10657. <type name="Gst.Message" c:type="GstMessage*"/>
  10658. </return-value>
  10659. <parameters>
  10660. <parameter name="src" transfer-ownership="none">
  10661. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  10662. <type name="Gst.Object" c:type="GstObject*"/>
  10663. </parameter>
  10664. </parameters>
  10665. </function>
  10666. <function name="navigation_message_new_event"
  10667. c:identifier="gst_navigation_message_new_event"
  10668. moved-to="Navigation.message_new_event"
  10669. version="1.6">
  10670. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  10671. #GST_NAVIGATION_MESSAGE_EVENT.</doc>
  10672. <return-value transfer-ownership="full">
  10673. <doc xml:space="preserve">The new #GstMessage.</doc>
  10674. <type name="Gst.Message" c:type="GstMessage*"/>
  10675. </return-value>
  10676. <parameters>
  10677. <parameter name="src" transfer-ownership="none">
  10678. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  10679. <type name="Gst.Object" c:type="GstObject*"/>
  10680. </parameter>
  10681. <parameter name="event" transfer-ownership="none">
  10682. <doc xml:space="preserve">A navigation #GstEvent</doc>
  10683. <type name="Gst.Event" c:type="GstEvent*"/>
  10684. </parameter>
  10685. </parameters>
  10686. </function>
  10687. <function name="navigation_message_new_mouse_over"
  10688. c:identifier="gst_navigation_message_new_mouse_over"
  10689. moved-to="Navigation.message_new_mouse_over">
  10690. <doc xml:space="preserve">Creates a new #GstNavigation message with type
  10691. #GST_NAVIGATION_MESSAGE_MOUSE_OVER.</doc>
  10692. <return-value transfer-ownership="full">
  10693. <doc xml:space="preserve">The new #GstMessage.</doc>
  10694. <type name="Gst.Message" c:type="GstMessage*"/>
  10695. </return-value>
  10696. <parameters>
  10697. <parameter name="src" transfer-ownership="none">
  10698. <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
  10699. <type name="Gst.Object" c:type="GstObject*"/>
  10700. </parameter>
  10701. <parameter name="active" transfer-ownership="none">
  10702. <doc xml:space="preserve">%TRUE if the mouse has entered a clickable area of the display.
  10703. %FALSE if it over a non-clickable area.</doc>
  10704. <type name="gboolean" c:type="gboolean"/>
  10705. </parameter>
  10706. </parameters>
  10707. </function>
  10708. <function name="navigation_message_parse_angles_changed"
  10709. c:identifier="gst_navigation_message_parse_angles_changed"
  10710. moved-to="Navigation.message_parse_angles_changed">
  10711. <doc xml:space="preserve">Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
  10712. and extract the @cur_angle and @n_angles parameters.</doc>
  10713. <return-value transfer-ownership="none">
  10714. <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
  10715. <type name="gboolean" c:type="gboolean"/>
  10716. </return-value>
  10717. <parameters>
  10718. <parameter name="message" transfer-ownership="none">
  10719. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  10720. <type name="Gst.Message" c:type="GstMessage*"/>
  10721. </parameter>
  10722. <parameter name="cur_angle" transfer-ownership="none">
  10723. <doc xml:space="preserve">A pointer to a #guint to receive the new current angle number,
  10724. or NULL</doc>
  10725. <type name="guint" c:type="guint*"/>
  10726. </parameter>
  10727. <parameter name="n_angles" transfer-ownership="none">
  10728. <doc xml:space="preserve">A pointer to a #guint to receive the new angle count, or NULL.</doc>
  10729. <type name="guint" c:type="guint*"/>
  10730. </parameter>
  10731. </parameters>
  10732. </function>
  10733. <function name="navigation_message_parse_event"
  10734. c:identifier="gst_navigation_message_parse_event"
  10735. moved-to="Navigation.message_parse_event"
  10736. version="1.6">
  10737. <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_EVENT
  10738. and extract contained #GstEvent. The caller must unref the @event when done
  10739. with it.</doc>
  10740. <return-value transfer-ownership="none">
  10741. <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
  10742. <type name="gboolean" c:type="gboolean"/>
  10743. </return-value>
  10744. <parameters>
  10745. <parameter name="message" transfer-ownership="none">
  10746. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  10747. <type name="Gst.Message" c:type="GstMessage*"/>
  10748. </parameter>
  10749. <parameter name="event"
  10750. direction="out"
  10751. caller-allocates="0"
  10752. transfer-ownership="full">
  10753. <doc xml:space="preserve">a pointer to a #GstEvent to receive the
  10754. contained navigation event.</doc>
  10755. <type name="Gst.Event" c:type="GstEvent**"/>
  10756. </parameter>
  10757. </parameters>
  10758. </function>
  10759. <function name="navigation_message_parse_mouse_over"
  10760. c:identifier="gst_navigation_message_parse_mouse_over"
  10761. moved-to="Navigation.message_parse_mouse_over">
  10762. <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
  10763. and extract the active/inactive flag. If the mouse over event is marked
  10764. active, it indicates that the mouse is over a clickable area.</doc>
  10765. <return-value transfer-ownership="none">
  10766. <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
  10767. <type name="gboolean" c:type="gboolean"/>
  10768. </return-value>
  10769. <parameters>
  10770. <parameter name="message" transfer-ownership="none">
  10771. <doc xml:space="preserve">A #GstMessage to inspect.</doc>
  10772. <type name="Gst.Message" c:type="GstMessage*"/>
  10773. </parameter>
  10774. <parameter name="active" transfer-ownership="none">
  10775. <doc xml:space="preserve">A pointer to a gboolean to receive the active/inactive state,
  10776. or NULL.</doc>
  10777. <type name="gboolean" c:type="gboolean*"/>
  10778. </parameter>
  10779. </parameters>
  10780. </function>
  10781. <function name="navigation_query_get_type"
  10782. c:identifier="gst_navigation_query_get_type"
  10783. moved-to="Navigation.query_get_type">
  10784. <doc xml:space="preserve">Inspect a #GstQuery and return the #GstNavigationQueryType associated with
  10785. it if it is a #GstNavigation query.</doc>
  10786. <return-value transfer-ownership="none">
  10787. <doc xml:space="preserve">The #GstNavigationQueryType of the query, or
  10788. #GST_NAVIGATION_QUERY_INVALID</doc>
  10789. <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
  10790. </return-value>
  10791. <parameters>
  10792. <parameter name="query" transfer-ownership="none">
  10793. <doc xml:space="preserve">The query to inspect</doc>
  10794. <type name="Gst.Query" c:type="GstQuery*"/>
  10795. </parameter>
  10796. </parameters>
  10797. </function>
  10798. <function name="navigation_query_new_angles"
  10799. c:identifier="gst_navigation_query_new_angles"
  10800. moved-to="Navigation.query_new_angles">
  10801. <doc xml:space="preserve">Create a new #GstNavigation angles query. When executed, it will
  10802. query the pipeline for the set of currently available angles, which may be
  10803. greater than one in a multiangle video.</doc>
  10804. <return-value transfer-ownership="full">
  10805. <doc xml:space="preserve">The new query.</doc>
  10806. <type name="Gst.Query" c:type="GstQuery*"/>
  10807. </return-value>
  10808. </function>
  10809. <function name="navigation_query_new_commands"
  10810. c:identifier="gst_navigation_query_new_commands"
  10811. moved-to="Navigation.query_new_commands">
  10812. <doc xml:space="preserve">Create a new #GstNavigation commands query. When executed, it will
  10813. query the pipeline for the set of currently available commands.</doc>
  10814. <return-value transfer-ownership="full">
  10815. <doc xml:space="preserve">The new query.</doc>
  10816. <type name="Gst.Query" c:type="GstQuery*"/>
  10817. </return-value>
  10818. </function>
  10819. <function name="navigation_query_parse_angles"
  10820. c:identifier="gst_navigation_query_parse_angles"
  10821. moved-to="Navigation.query_parse_angles">
  10822. <doc xml:space="preserve">Parse the current angle number in the #GstNavigation angles @query into the
  10823. #guint pointed to by the @cur_angle variable, and the number of available
  10824. angles into the #guint pointed to by the @n_angles variable.</doc>
  10825. <return-value transfer-ownership="none">
  10826. <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
  10827. <type name="gboolean" c:type="gboolean"/>
  10828. </return-value>
  10829. <parameters>
  10830. <parameter name="query" transfer-ownership="none">
  10831. <doc xml:space="preserve">a #GstQuery</doc>
  10832. <type name="Gst.Query" c:type="GstQuery*"/>
  10833. </parameter>
  10834. <parameter name="cur_angle" transfer-ownership="none">
  10835. <doc xml:space="preserve">Pointer to a #guint into which to store the currently selected
  10836. angle value from the query, or NULL</doc>
  10837. <type name="guint" c:type="guint*"/>
  10838. </parameter>
  10839. <parameter name="n_angles" transfer-ownership="none">
  10840. <doc xml:space="preserve">Pointer to a #guint into which to store the number of angles
  10841. value from the query, or NULL</doc>
  10842. <type name="guint" c:type="guint*"/>
  10843. </parameter>
  10844. </parameters>
  10845. </function>
  10846. <function name="navigation_query_parse_commands_length"
  10847. c:identifier="gst_navigation_query_parse_commands_length"
  10848. moved-to="Navigation.query_parse_commands_length">
  10849. <doc xml:space="preserve">Parse the number of commands in the #GstNavigation commands @query.</doc>
  10850. <return-value transfer-ownership="none">
  10851. <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
  10852. <type name="gboolean" c:type="gboolean"/>
  10853. </return-value>
  10854. <parameters>
  10855. <parameter name="query" transfer-ownership="none">
  10856. <doc xml:space="preserve">a #GstQuery</doc>
  10857. <type name="Gst.Query" c:type="GstQuery*"/>
  10858. </parameter>
  10859. <parameter name="n_cmds"
  10860. direction="out"
  10861. caller-allocates="0"
  10862. transfer-ownership="full">
  10863. <doc xml:space="preserve">the number of commands in this query.</doc>
  10864. <type name="guint" c:type="guint*"/>
  10865. </parameter>
  10866. </parameters>
  10867. </function>
  10868. <function name="navigation_query_parse_commands_nth"
  10869. c:identifier="gst_navigation_query_parse_commands_nth"
  10870. moved-to="Navigation.query_parse_commands_nth">
  10871. <doc xml:space="preserve">Parse the #GstNavigation command query and retrieve the @nth command from
  10872. it into @cmd. If the list contains less elements than @nth, @cmd will be
  10873. set to #GST_NAVIGATION_COMMAND_INVALID.</doc>
  10874. <return-value transfer-ownership="none">
  10875. <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
  10876. <type name="gboolean" c:type="gboolean"/>
  10877. </return-value>
  10878. <parameters>
  10879. <parameter name="query" transfer-ownership="none">
  10880. <doc xml:space="preserve">a #GstQuery</doc>
  10881. <type name="Gst.Query" c:type="GstQuery*"/>
  10882. </parameter>
  10883. <parameter name="nth" transfer-ownership="none">
  10884. <doc xml:space="preserve">the nth command to retrieve.</doc>
  10885. <type name="guint" c:type="guint"/>
  10886. </parameter>
  10887. <parameter name="cmd"
  10888. direction="out"
  10889. caller-allocates="0"
  10890. transfer-ownership="full">
  10891. <doc xml:space="preserve">a pointer to store the nth command into.</doc>
  10892. <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
  10893. </parameter>
  10894. </parameters>
  10895. </function>
  10896. <function name="navigation_query_set_angles"
  10897. c:identifier="gst_navigation_query_set_angles"
  10898. moved-to="Navigation.query_set_angles">
  10899. <doc xml:space="preserve">Set the #GstNavigation angles query result field in @query.</doc>
  10900. <return-value transfer-ownership="none">
  10901. <type name="none" c:type="void"/>
  10902. </return-value>
  10903. <parameters>
  10904. <parameter name="query" transfer-ownership="none">
  10905. <doc xml:space="preserve">a #GstQuery</doc>
  10906. <type name="Gst.Query" c:type="GstQuery*"/>
  10907. </parameter>
  10908. <parameter name="cur_angle" transfer-ownership="none">
  10909. <doc xml:space="preserve">the current viewing angle to set.</doc>
  10910. <type name="guint" c:type="guint"/>
  10911. </parameter>
  10912. <parameter name="n_angles" transfer-ownership="none">
  10913. <doc xml:space="preserve">the number of viewing angles to set.</doc>
  10914. <type name="guint" c:type="guint"/>
  10915. </parameter>
  10916. </parameters>
  10917. </function>
  10918. <function name="navigation_query_set_commandsv"
  10919. c:identifier="gst_navigation_query_set_commandsv"
  10920. moved-to="Navigation.query_set_commandsv">
  10921. <doc xml:space="preserve">Set the #GstNavigation command query result fields in @query. The number
  10922. of commands passed must be equal to @n_commands.</doc>
  10923. <return-value transfer-ownership="none">
  10924. <type name="none" c:type="void"/>
  10925. </return-value>
  10926. <parameters>
  10927. <parameter name="query" transfer-ownership="none">
  10928. <doc xml:space="preserve">a #GstQuery</doc>
  10929. <type name="Gst.Query" c:type="GstQuery*"/>
  10930. </parameter>
  10931. <parameter name="n_cmds" transfer-ownership="none">
  10932. <doc xml:space="preserve">the number of commands to set.</doc>
  10933. <type name="gint" c:type="gint"/>
  10934. </parameter>
  10935. <parameter name="cmds" transfer-ownership="none">
  10936. <doc xml:space="preserve">An array containing @n_cmds @GstNavigationCommand values.</doc>
  10937. <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
  10938. </parameter>
  10939. </parameters>
  10940. </function>
  10941. <function name="video_affine_transformation_meta_api_get_type"
  10942. c:identifier="gst_video_affine_transformation_meta_api_get_type">
  10943. <return-value transfer-ownership="none">
  10944. <type name="GType" c:type="GType"/>
  10945. </return-value>
  10946. </function>
  10947. <function name="video_affine_transformation_meta_get_info"
  10948. c:identifier="gst_video_affine_transformation_meta_get_info"
  10949. moved-to="VideoAffineTransformationMeta.get_info">
  10950. <return-value transfer-ownership="none">
  10951. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  10952. </return-value>
  10953. </function>
  10954. <function name="video_blend" c:identifier="gst_video_blend">
  10955. <doc xml:space="preserve">Lets you blend the @src image into the @dest image</doc>
  10956. <return-value transfer-ownership="none">
  10957. <type name="gboolean" c:type="gboolean"/>
  10958. </return-value>
  10959. <parameters>
  10960. <parameter name="dest" transfer-ownership="none">
  10961. <doc xml:space="preserve">The #GstVideoFrame where to blend @src in</doc>
  10962. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  10963. </parameter>
  10964. <parameter name="src" transfer-ownership="none">
  10965. <doc xml:space="preserve">the #GstVideoFrame that we want to blend into</doc>
  10966. <type name="VideoFrame" c:type="GstVideoFrame*"/>
  10967. </parameter>
  10968. <parameter name="x" transfer-ownership="none">
  10969. <doc xml:space="preserve">The x offset in pixel where the @src image should be blended</doc>
  10970. <type name="gint" c:type="gint"/>
  10971. </parameter>
  10972. <parameter name="y" transfer-ownership="none">
  10973. <doc xml:space="preserve">the y offset in pixel where the @src image should be blended</doc>
  10974. <type name="gint" c:type="gint"/>
  10975. </parameter>
  10976. <parameter name="global_alpha" transfer-ownership="none">
  10977. <doc xml:space="preserve">the global_alpha each per-pixel alpha value is multiplied
  10978. with</doc>
  10979. <type name="gfloat" c:type="gfloat"/>
  10980. </parameter>
  10981. </parameters>
  10982. </function>
  10983. <function name="video_blend_scale_linear_RGBA"
  10984. c:identifier="gst_video_blend_scale_linear_RGBA">
  10985. <doc xml:space="preserve">Scales a buffer containing RGBA (or AYUV) video. This is an internal
  10986. helper function which is used to scale subtitle overlays, and may be
  10987. deprecated in the near future. Use #GstVideoScaler to scale video buffers
  10988. instead.</doc>
  10989. <return-value transfer-ownership="none">
  10990. <type name="none" c:type="void"/>
  10991. </return-value>
  10992. <parameters>
  10993. <parameter name="src" transfer-ownership="none">
  10994. <doc xml:space="preserve">the #GstVideoInfo describing the video data in @src_buffer</doc>
  10995. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  10996. </parameter>
  10997. <parameter name="src_buffer" transfer-ownership="none">
  10998. <doc xml:space="preserve">the source buffer containing video pixels to scale</doc>
  10999. <type name="Gst.Buffer" c:type="GstBuffer*"/>
  11000. </parameter>
  11001. <parameter name="dest_height" transfer-ownership="none">
  11002. <doc xml:space="preserve">the height in pixels to scale the video data in @src_buffer to</doc>
  11003. <type name="gint" c:type="gint"/>
  11004. </parameter>
  11005. <parameter name="dest_width" transfer-ownership="none">
  11006. <doc xml:space="preserve">the width in pixels to scale the video data in @src_buffer to</doc>
  11007. <type name="gint" c:type="gint"/>
  11008. </parameter>
  11009. <parameter name="dest"
  11010. direction="out"
  11011. caller-allocates="1"
  11012. transfer-ownership="none">
  11013. <doc xml:space="preserve">pointer to a #GstVideoInfo structure that will be filled in
  11014. with the details for @dest_buffer</doc>
  11015. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  11016. </parameter>
  11017. <parameter name="dest_buffer"
  11018. direction="out"
  11019. caller-allocates="0"
  11020. transfer-ownership="full">
  11021. <doc xml:space="preserve">a pointer to a #GstBuffer variable, which will be
  11022. set to a newly-allocated buffer containing the scaled pixels.</doc>
  11023. <type name="Gst.Buffer" c:type="GstBuffer**"/>
  11024. </parameter>
  11025. </parameters>
  11026. </function>
  11027. <function name="video_calculate_display_ratio"
  11028. c:identifier="gst_video_calculate_display_ratio">
  11029. <doc xml:space="preserve">Given the Pixel Aspect Ratio and size of an input video frame, and the
  11030. pixel aspect ratio of the intended display device, calculates the actual
  11031. display ratio the video will be rendered with.</doc>
  11032. <return-value transfer-ownership="none">
  11033. <doc xml:space="preserve">A boolean indicating success and a calculated Display Ratio in the
  11034. dar_n and dar_d parameters.
  11035. The return value is FALSE in the case of integer overflow or other error.</doc>
  11036. <type name="gboolean" c:type="gboolean"/>
  11037. </return-value>
  11038. <parameters>
  11039. <parameter name="dar_n"
  11040. direction="out"
  11041. caller-allocates="0"
  11042. transfer-ownership="full">
  11043. <doc xml:space="preserve">Numerator of the calculated display_ratio</doc>
  11044. <type name="guint" c:type="guint*"/>
  11045. </parameter>
  11046. <parameter name="dar_d"
  11047. direction="out"
  11048. caller-allocates="0"
  11049. transfer-ownership="full">
  11050. <doc xml:space="preserve">Denominator of the calculated display_ratio</doc>
  11051. <type name="guint" c:type="guint*"/>
  11052. </parameter>
  11053. <parameter name="video_width" transfer-ownership="none">
  11054. <doc xml:space="preserve">Width of the video frame in pixels</doc>
  11055. <type name="guint" c:type="guint"/>
  11056. </parameter>
  11057. <parameter name="video_height" transfer-ownership="none">
  11058. <doc xml:space="preserve">Height of the video frame in pixels</doc>
  11059. <type name="guint" c:type="guint"/>
  11060. </parameter>
  11061. <parameter name="video_par_n" transfer-ownership="none">
  11062. <doc xml:space="preserve">Numerator of the pixel aspect ratio of the input video.</doc>
  11063. <type name="guint" c:type="guint"/>
  11064. </parameter>
  11065. <parameter name="video_par_d" transfer-ownership="none">
  11066. <doc xml:space="preserve">Denominator of the pixel aspect ratio of the input video.</doc>
  11067. <type name="guint" c:type="guint"/>
  11068. </parameter>
  11069. <parameter name="display_par_n" transfer-ownership="none">
  11070. <doc xml:space="preserve">Numerator of the pixel aspect ratio of the display device</doc>
  11071. <type name="guint" c:type="guint"/>
  11072. </parameter>
  11073. <parameter name="display_par_d" transfer-ownership="none">
  11074. <doc xml:space="preserve">Denominator of the pixel aspect ratio of the display device</doc>
  11075. <type name="guint" c:type="guint"/>
  11076. </parameter>
  11077. </parameters>
  11078. </function>
  11079. <function name="video_chroma_from_string"
  11080. c:identifier="gst_video_chroma_from_string">
  11081. <doc xml:space="preserve">Convert @s to a #GstVideoChromaSite</doc>
  11082. <return-value transfer-ownership="none">
  11083. <doc xml:space="preserve">a #GstVideoChromaSite or %GST_VIDEO_CHROMA_SITE_UNKNOWN when @s does
  11084. not contain a valid chroma description.</doc>
  11085. <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
  11086. </return-value>
  11087. <parameters>
  11088. <parameter name="s" transfer-ownership="none">
  11089. <doc xml:space="preserve">a chromasite string</doc>
  11090. <type name="utf8" c:type="const gchar*"/>
  11091. </parameter>
  11092. </parameters>
  11093. </function>
  11094. <function name="video_chroma_resample"
  11095. c:identifier="gst_video_chroma_resample">
  11096. <doc xml:space="preserve">Perform resampling of @width chroma pixels in @lines.</doc>
  11097. <return-value transfer-ownership="none">
  11098. <type name="none" c:type="void"/>
  11099. </return-value>
  11100. <parameters>
  11101. <parameter name="resample" transfer-ownership="none">
  11102. <doc xml:space="preserve">a #GstVideoChromaResample</doc>
  11103. <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
  11104. </parameter>
  11105. <parameter name="lines"
  11106. transfer-ownership="none"
  11107. nullable="1"
  11108. allow-none="1">
  11109. <doc xml:space="preserve">pixel lines</doc>
  11110. <type name="gpointer" c:type="gpointer"/>
  11111. </parameter>
  11112. <parameter name="width" transfer-ownership="none">
  11113. <doc xml:space="preserve">the number of pixels on one line</doc>
  11114. <type name="gint" c:type="gint"/>
  11115. </parameter>
  11116. </parameters>
  11117. </function>
  11118. <function name="video_chroma_resample_new"
  11119. c:identifier="gst_video_chroma_resample_new"
  11120. moved-to="VideoChromaResample.new"
  11121. introspectable="0">
  11122. <doc xml:space="preserve">Create a new resampler object for the given parameters. When @h_factor or
  11123. @v_factor is &gt; 0, upsampling will be used, otherwise subsampling is
  11124. performed.</doc>
  11125. <return-value>
  11126. <doc xml:space="preserve">a new #GstVideoChromaResample that should be freed with
  11127. gst_video_chroma_resample_free() after usage.</doc>
  11128. <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
  11129. </return-value>
  11130. <parameters>
  11131. <parameter name="method" transfer-ownership="none">
  11132. <doc xml:space="preserve">a #GstVideoChromaMethod</doc>
  11133. <type name="VideoChromaMethod" c:type="GstVideoChromaMethod"/>
  11134. </parameter>
  11135. <parameter name="site" transfer-ownership="none">
  11136. <doc xml:space="preserve">a #GstVideoChromaSite</doc>
  11137. <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
  11138. </parameter>
  11139. <parameter name="flags" transfer-ownership="none">
  11140. <doc xml:space="preserve">#GstVideoChromaFlags</doc>
  11141. <type name="VideoChromaFlags" c:type="GstVideoChromaFlags"/>
  11142. </parameter>
  11143. <parameter name="format" transfer-ownership="none">
  11144. <doc xml:space="preserve">the #GstVideoFormat</doc>
  11145. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11146. </parameter>
  11147. <parameter name="h_factor" transfer-ownership="none">
  11148. <doc xml:space="preserve">horizontal resampling factor</doc>
  11149. <type name="gint" c:type="gint"/>
  11150. </parameter>
  11151. <parameter name="v_factor" transfer-ownership="none">
  11152. <doc xml:space="preserve">vertical resampling factor</doc>
  11153. <type name="gint" c:type="gint"/>
  11154. </parameter>
  11155. </parameters>
  11156. </function>
  11157. <function name="video_chroma_to_string"
  11158. c:identifier="gst_video_chroma_to_string">
  11159. <doc xml:space="preserve">Converts @site to its string representation.</doc>
  11160. <return-value transfer-ownership="none">
  11161. <doc xml:space="preserve">a string describing @site.</doc>
  11162. <type name="utf8" c:type="const gchar*"/>
  11163. </return-value>
  11164. <parameters>
  11165. <parameter name="site" transfer-ownership="none">
  11166. <doc xml:space="preserve">a #GstVideoChromaSite</doc>
  11167. <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
  11168. </parameter>
  11169. </parameters>
  11170. </function>
  11171. <function name="video_color_matrix_get_Kr_Kb"
  11172. c:identifier="gst_video_color_matrix_get_Kr_Kb"
  11173. moved-to="VideoColorMatrix.get_Kr_Kb"
  11174. version="1.6">
  11175. <doc xml:space="preserve">Get the coefficients used to convert between Y'PbPr and R'G'B' using @matrix.
  11176. When:
  11177. |[
  11178. 0.0 &lt;= [Y',R',G',B'] &lt;= 1.0)
  11179. (-0.5 &lt;= [Pb,Pr] &lt;= 0.5)
  11180. ]|
  11181. the general conversion is given by:
  11182. |[
  11183. Y' = Kr*R' + (1-Kr-Kb)*G' + Kb*B'
  11184. Pb = (B'-Y')/(2*(1-Kb))
  11185. Pr = (R'-Y')/(2*(1-Kr))
  11186. ]|
  11187. and the other way around:
  11188. |[
  11189. R' = Y' + Cr*2*(1-Kr)
  11190. G' = Y' - Cb*2*(1-Kb)*Kb/(1-Kr-Kb) - Cr*2*(1-Kr)*Kr/(1-Kr-Kb)
  11191. B' = Y' + Cb*2*(1-Kb)
  11192. ]|</doc>
  11193. <return-value transfer-ownership="none">
  11194. <doc xml:space="preserve">TRUE if @matrix was a YUV color format and @Kr and @Kb contain valid
  11195. values.</doc>
  11196. <type name="gboolean" c:type="gboolean"/>
  11197. </return-value>
  11198. <parameters>
  11199. <parameter name="matrix" transfer-ownership="none">
  11200. <doc xml:space="preserve">a #GstVideoColorMatrix</doc>
  11201. <type name="VideoColorMatrix" c:type="GstVideoColorMatrix"/>
  11202. </parameter>
  11203. <parameter name="Kr" transfer-ownership="none">
  11204. <doc xml:space="preserve">result red channel coefficient</doc>
  11205. <type name="gdouble" c:type="gdouble*"/>
  11206. </parameter>
  11207. <parameter name="Kb" transfer-ownership="none">
  11208. <doc xml:space="preserve">result blue channel coefficient</doc>
  11209. <type name="gdouble" c:type="gdouble*"/>
  11210. </parameter>
  11211. </parameters>
  11212. </function>
  11213. <function name="video_color_primaries_get_info"
  11214. c:identifier="gst_video_color_primaries_get_info"
  11215. moved-to="VideoColorPrimaries.get_info"
  11216. version="1.6">
  11217. <doc xml:space="preserve">Get information about the chromaticity coordinates of @primaries.</doc>
  11218. <return-value transfer-ownership="none">
  11219. <doc xml:space="preserve">a #GstVideoColorPrimariesInfo for @primaries.</doc>
  11220. <type name="VideoColorPrimariesInfo"
  11221. c:type="const GstVideoColorPrimariesInfo*"/>
  11222. </return-value>
  11223. <parameters>
  11224. <parameter name="primaries" transfer-ownership="none">
  11225. <doc xml:space="preserve">a #GstVideoColorPrimaries</doc>
  11226. <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
  11227. </parameter>
  11228. </parameters>
  11229. </function>
  11230. <function name="video_color_range_offsets"
  11231. c:identifier="gst_video_color_range_offsets"
  11232. moved-to="VideoColorRange.offsets">
  11233. <doc xml:space="preserve">Compute the offset and scale values for each component of @info. For each
  11234. component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
  11235. range [0.0 .. 1.0].
  11236. The reverse operation (c[i] * scale[i]) + offset[i] can be used to convert
  11237. the component values in range [0.0 .. 1.0] back to their representation in
  11238. @info and @range.</doc>
  11239. <return-value transfer-ownership="none">
  11240. <type name="none" c:type="void"/>
  11241. </return-value>
  11242. <parameters>
  11243. <parameter name="range" transfer-ownership="none">
  11244. <doc xml:space="preserve">a #GstVideoColorRange</doc>
  11245. <type name="VideoColorRange" c:type="GstVideoColorRange"/>
  11246. </parameter>
  11247. <parameter name="info" transfer-ownership="none">
  11248. <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
  11249. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  11250. </parameter>
  11251. <parameter name="offset"
  11252. direction="out"
  11253. caller-allocates="0"
  11254. transfer-ownership="full">
  11255. <doc xml:space="preserve">output offsets</doc>
  11256. <type name="gint" c:type="gint"/>
  11257. </parameter>
  11258. <parameter name="scale"
  11259. direction="out"
  11260. caller-allocates="0"
  11261. transfer-ownership="full">
  11262. <doc xml:space="preserve">output scale</doc>
  11263. <type name="gint" c:type="gint"/>
  11264. </parameter>
  11265. </parameters>
  11266. </function>
  11267. <function name="video_color_transfer_decode"
  11268. c:identifier="gst_video_color_transfer_decode"
  11269. version="1.6">
  11270. <doc xml:space="preserve">Convert @val to its gamma decoded value. This is the inverse operation of
  11271. @gst_video_color_transfer_encode().
  11272. For a non-linear value L' in the range [0..1], conversion to the linear
  11273. L is in general performed with a power function like:
  11274. |[
  11275. L = L' ^ gamma
  11276. ]|
  11277. Depending on @func, different formulas might be applied. Some formulas
  11278. encode a linear segment in the lower range.</doc>
  11279. <return-value transfer-ownership="none">
  11280. <doc xml:space="preserve">the gamme decoded value of @val</doc>
  11281. <type name="gdouble" c:type="gdouble"/>
  11282. </return-value>
  11283. <parameters>
  11284. <parameter name="func" transfer-ownership="none">
  11285. <doc xml:space="preserve">a #GstVideoTransferFunction</doc>
  11286. <type name="VideoTransferFunction"
  11287. c:type="GstVideoTransferFunction"/>
  11288. </parameter>
  11289. <parameter name="val" transfer-ownership="none">
  11290. <doc xml:space="preserve">a value</doc>
  11291. <type name="gdouble" c:type="gdouble"/>
  11292. </parameter>
  11293. </parameters>
  11294. </function>
  11295. <function name="video_color_transfer_encode"
  11296. c:identifier="gst_video_color_transfer_encode"
  11297. version="1.6">
  11298. <doc xml:space="preserve">Convert @val to its gamma encoded value.
  11299. For a linear value L in the range [0..1], conversion to the non-linear
  11300. (gamma encoded) L' is in general performed with a power function like:
  11301. |[
  11302. L' = L ^ (1 / gamma)
  11303. ]|
  11304. Depending on @func, different formulas might be applied. Some formulas
  11305. encode a linear segment in the lower range.</doc>
  11306. <return-value transfer-ownership="none">
  11307. <doc xml:space="preserve">the gamme encoded value of @val</doc>
  11308. <type name="gdouble" c:type="gdouble"/>
  11309. </return-value>
  11310. <parameters>
  11311. <parameter name="func" transfer-ownership="none">
  11312. <doc xml:space="preserve">a #GstVideoTransferFunction</doc>
  11313. <type name="VideoTransferFunction"
  11314. c:type="GstVideoTransferFunction"/>
  11315. </parameter>
  11316. <parameter name="val" transfer-ownership="none">
  11317. <doc xml:space="preserve">a value</doc>
  11318. <type name="gdouble" c:type="gdouble"/>
  11319. </parameter>
  11320. </parameters>
  11321. </function>
  11322. <function name="video_convert_sample"
  11323. c:identifier="gst_video_convert_sample"
  11324. throws="1">
  11325. <doc xml:space="preserve">Converts a raw video buffer into the specified output caps.
  11326. The output caps can be any raw video formats or any image formats (jpeg, png, ...).
  11327. The width, height and pixel-aspect-ratio can also be specified in the output caps.</doc>
  11328. <return-value transfer-ownership="full">
  11329. <doc xml:space="preserve">The converted #GstSample, or %NULL if an error happened (in which case @err
  11330. will point to the #GError).</doc>
  11331. <type name="Gst.Sample" c:type="GstSample*"/>
  11332. </return-value>
  11333. <parameters>
  11334. <parameter name="sample" transfer-ownership="none">
  11335. <doc xml:space="preserve">a #GstSample</doc>
  11336. <type name="Gst.Sample" c:type="GstSample*"/>
  11337. </parameter>
  11338. <parameter name="to_caps" transfer-ownership="none">
  11339. <doc xml:space="preserve">the #GstCaps to convert to</doc>
  11340. <type name="Gst.Caps" c:type="const GstCaps*"/>
  11341. </parameter>
  11342. <parameter name="timeout" transfer-ownership="none">
  11343. <doc xml:space="preserve">the maximum amount of time allowed for the processing.</doc>
  11344. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11345. </parameter>
  11346. </parameters>
  11347. </function>
  11348. <function name="video_convert_sample_async"
  11349. c:identifier="gst_video_convert_sample_async">
  11350. <doc xml:space="preserve">Converts a raw video buffer into the specified output caps.
  11351. The output caps can be any raw video formats or any image formats (jpeg, png, ...).
  11352. The width, height and pixel-aspect-ratio can also be specified in the output caps.
  11353. @callback will be called after conversion, when an error occured or if conversion didn't
  11354. finish after @timeout. @callback will always be called from the thread default
  11355. %GMainContext, see g_main_context_get_thread_default(). If GLib before 2.22 is used,
  11356. this will always be the global default main context.
  11357. @destroy_notify will be called after the callback was called and @user_data is not needed
  11358. anymore.</doc>
  11359. <return-value transfer-ownership="none">
  11360. <type name="none" c:type="void"/>
  11361. </return-value>
  11362. <parameters>
  11363. <parameter name="sample" transfer-ownership="none">
  11364. <doc xml:space="preserve">a #GstSample</doc>
  11365. <type name="Gst.Sample" c:type="GstSample*"/>
  11366. </parameter>
  11367. <parameter name="to_caps" transfer-ownership="none">
  11368. <doc xml:space="preserve">the #GstCaps to convert to</doc>
  11369. <type name="Gst.Caps" c:type="const GstCaps*"/>
  11370. </parameter>
  11371. <parameter name="timeout" transfer-ownership="none">
  11372. <doc xml:space="preserve">the maximum amount of time allowed for the processing.</doc>
  11373. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11374. </parameter>
  11375. <parameter name="callback"
  11376. transfer-ownership="none"
  11377. scope="notified"
  11378. closure="4"
  11379. destroy="5">
  11380. <doc xml:space="preserve">%GstVideoConvertSampleCallback that will be called after conversion.</doc>
  11381. <type name="VideoConvertSampleCallback"
  11382. c:type="GstVideoConvertSampleCallback"/>
  11383. </parameter>
  11384. <parameter name="user_data"
  11385. transfer-ownership="none"
  11386. nullable="1"
  11387. allow-none="1">
  11388. <doc xml:space="preserve">extra data that will be passed to the @callback</doc>
  11389. <type name="gpointer" c:type="gpointer"/>
  11390. </parameter>
  11391. <parameter name="destroy_notify"
  11392. transfer-ownership="none"
  11393. scope="async">
  11394. <doc xml:space="preserve">%GDestroyNotify to be called after @user_data is not needed anymore</doc>
  11395. <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
  11396. </parameter>
  11397. </parameters>
  11398. </function>
  11399. <function name="video_converter_new"
  11400. c:identifier="gst_video_converter_new"
  11401. moved-to="VideoConverter.new"
  11402. version="1.6"
  11403. introspectable="0">
  11404. <doc xml:space="preserve">Create a new converter object to convert between @in_info and @out_info
  11405. with @config.</doc>
  11406. <return-value>
  11407. <doc xml:space="preserve">a #GstVideoConverter or %NULL if conversion is not possible.</doc>
  11408. <type name="VideoConverter" c:type="GstVideoConverter*"/>
  11409. </return-value>
  11410. <parameters>
  11411. <parameter name="in_info" transfer-ownership="none">
  11412. <doc xml:space="preserve">a #GstVideoInfo</doc>
  11413. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  11414. </parameter>
  11415. <parameter name="out_info" transfer-ownership="none">
  11416. <doc xml:space="preserve">a #GstVideoInfo</doc>
  11417. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  11418. </parameter>
  11419. <parameter name="config" transfer-ownership="full">
  11420. <doc xml:space="preserve">a #GstStructure with configuration options</doc>
  11421. <type name="Gst.Structure" c:type="GstStructure*"/>
  11422. </parameter>
  11423. </parameters>
  11424. </function>
  11425. <function name="video_crop_meta_api_get_type"
  11426. c:identifier="gst_video_crop_meta_api_get_type">
  11427. <return-value transfer-ownership="none">
  11428. <type name="GType" c:type="GType"/>
  11429. </return-value>
  11430. </function>
  11431. <function name="video_crop_meta_get_info"
  11432. c:identifier="gst_video_crop_meta_get_info"
  11433. moved-to="VideoCropMeta.get_info">
  11434. <return-value transfer-ownership="none">
  11435. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  11436. </return-value>
  11437. </function>
  11438. <function name="video_dither_new"
  11439. c:identifier="gst_video_dither_new"
  11440. moved-to="VideoDither.new"
  11441. introspectable="0">
  11442. <doc xml:space="preserve">Make a new dither object for dithering lines of @format using the
  11443. algorithm described by @method.
  11444. Each component will be quantized to a multiple of @quantizer. Better
  11445. performance is achived when @quantizer is a power of 2.
  11446. @width is the width of the lines that this ditherer will handle.</doc>
  11447. <return-value>
  11448. <doc xml:space="preserve">a new #GstVideoDither</doc>
  11449. <type name="VideoDither" c:type="GstVideoDither*"/>
  11450. </return-value>
  11451. <parameters>
  11452. <parameter name="method" transfer-ownership="none">
  11453. <doc xml:space="preserve">a #GstVideoDitherMethod</doc>
  11454. <type name="VideoDitherMethod" c:type="GstVideoDitherMethod"/>
  11455. </parameter>
  11456. <parameter name="flags" transfer-ownership="none">
  11457. <doc xml:space="preserve">a #GstVideoDitherFlags</doc>
  11458. <type name="VideoDitherFlags" c:type="GstVideoDitherFlags"/>
  11459. </parameter>
  11460. <parameter name="format" transfer-ownership="none">
  11461. <doc xml:space="preserve">a #GstVideoFormat</doc>
  11462. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11463. </parameter>
  11464. <parameter name="quantizer" transfer-ownership="none">
  11465. <doc xml:space="preserve">quantizer</doc>
  11466. <type name="guint" c:type="guint"/>
  11467. </parameter>
  11468. <parameter name="width" transfer-ownership="none">
  11469. <doc xml:space="preserve">the width of the lines</doc>
  11470. <type name="guint" c:type="guint"/>
  11471. </parameter>
  11472. </parameters>
  11473. </function>
  11474. <function name="video_event_is_force_key_unit"
  11475. c:identifier="gst_video_event_is_force_key_unit">
  11476. <doc xml:space="preserve">Checks if an event is a force key unit event. Returns true for both upstream
  11477. and downstream force key unit events.</doc>
  11478. <return-value transfer-ownership="none">
  11479. <doc xml:space="preserve">%TRUE if the event is a valid force key unit event</doc>
  11480. <type name="gboolean" c:type="gboolean"/>
  11481. </return-value>
  11482. <parameters>
  11483. <parameter name="event" transfer-ownership="none">
  11484. <doc xml:space="preserve">A #GstEvent to check</doc>
  11485. <type name="Gst.Event" c:type="GstEvent*"/>
  11486. </parameter>
  11487. </parameters>
  11488. </function>
  11489. <function name="video_event_new_downstream_force_key_unit"
  11490. c:identifier="gst_video_event_new_downstream_force_key_unit">
  11491. <doc xml:space="preserve">Creates a new downstream force key unit event. A downstream force key unit
  11492. event can be sent down the pipeline to request downstream elements to produce
  11493. a key unit. A downstream force key unit event must also be sent when handling
  11494. an upstream force key unit event to notify downstream that the latter has been
  11495. handled.
  11496. To parse an event created by gst_video_event_new_downstream_force_key_unit() use
  11497. gst_video_event_parse_downstream_force_key_unit().</doc>
  11498. <return-value transfer-ownership="full">
  11499. <doc xml:space="preserve">The new GstEvent</doc>
  11500. <type name="Gst.Event" c:type="GstEvent*"/>
  11501. </return-value>
  11502. <parameters>
  11503. <parameter name="timestamp" transfer-ownership="none">
  11504. <doc xml:space="preserve">the timestamp of the buffer that starts a new key unit</doc>
  11505. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11506. </parameter>
  11507. <parameter name="stream_time" transfer-ownership="none">
  11508. <doc xml:space="preserve">the stream_time of the buffer that starts a new key unit</doc>
  11509. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11510. </parameter>
  11511. <parameter name="running_time" transfer-ownership="none">
  11512. <doc xml:space="preserve">the running_time of the buffer that starts a new key unit</doc>
  11513. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11514. </parameter>
  11515. <parameter name="all_headers" transfer-ownership="none">
  11516. <doc xml:space="preserve">%TRUE to produce headers when starting a new key unit</doc>
  11517. <type name="gboolean" c:type="gboolean"/>
  11518. </parameter>
  11519. <parameter name="count" transfer-ownership="none">
  11520. <doc xml:space="preserve">integer that can be used to number key units</doc>
  11521. <type name="guint" c:type="guint"/>
  11522. </parameter>
  11523. </parameters>
  11524. </function>
  11525. <function name="video_event_new_still_frame"
  11526. c:identifier="gst_video_event_new_still_frame">
  11527. <doc xml:space="preserve">Creates a new Still Frame event. If @in_still is %TRUE, then the event
  11528. represents the start of a still frame sequence. If it is %FALSE, then
  11529. the event ends a still frame sequence.
  11530. To parse an event created by gst_video_event_new_still_frame() use
  11531. gst_video_event_parse_still_frame().</doc>
  11532. <return-value transfer-ownership="full">
  11533. <doc xml:space="preserve">The new GstEvent</doc>
  11534. <type name="Gst.Event" c:type="GstEvent*"/>
  11535. </return-value>
  11536. <parameters>
  11537. <parameter name="in_still" transfer-ownership="none">
  11538. <doc xml:space="preserve">boolean value for the still-frame state of the event.</doc>
  11539. <type name="gboolean" c:type="gboolean"/>
  11540. </parameter>
  11541. </parameters>
  11542. </function>
  11543. <function name="video_event_new_upstream_force_key_unit"
  11544. c:identifier="gst_video_event_new_upstream_force_key_unit">
  11545. <doc xml:space="preserve">Creates a new upstream force key unit event. An upstream force key unit event
  11546. can be sent to request upstream elements to produce a key unit.
  11547. @running_time can be set to request a new key unit at a specific
  11548. running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
  11549. new key unit as soon as possible.
  11550. To parse an event created by gst_video_event_new_downstream_force_key_unit() use
  11551. gst_video_event_parse_downstream_force_key_unit().</doc>
  11552. <return-value transfer-ownership="full">
  11553. <doc xml:space="preserve">The new GstEvent</doc>
  11554. <type name="Gst.Event" c:type="GstEvent*"/>
  11555. </return-value>
  11556. <parameters>
  11557. <parameter name="running_time" transfer-ownership="none">
  11558. <doc xml:space="preserve">the running_time at which a new key unit should be produced</doc>
  11559. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11560. </parameter>
  11561. <parameter name="all_headers" transfer-ownership="none">
  11562. <doc xml:space="preserve">%TRUE to produce headers when starting a new key unit</doc>
  11563. <type name="gboolean" c:type="gboolean"/>
  11564. </parameter>
  11565. <parameter name="count" transfer-ownership="none">
  11566. <doc xml:space="preserve">integer that can be used to number key units</doc>
  11567. <type name="guint" c:type="guint"/>
  11568. </parameter>
  11569. </parameters>
  11570. </function>
  11571. <function name="video_event_parse_downstream_force_key_unit"
  11572. c:identifier="gst_video_event_parse_downstream_force_key_unit">
  11573. <doc xml:space="preserve">Get timestamp, stream-time, running-time, all-headers and count in the force
  11574. key unit event. See gst_video_event_new_downstream_force_key_unit() for a
  11575. full description of the downstream force key unit event.
  11576. @running_time will be adjusted for any pad offsets of pads it was passing through.</doc>
  11577. <return-value transfer-ownership="none">
  11578. <doc xml:space="preserve">%TRUE if the event is a valid downstream force key unit event.</doc>
  11579. <type name="gboolean" c:type="gboolean"/>
  11580. </return-value>
  11581. <parameters>
  11582. <parameter name="event" transfer-ownership="none">
  11583. <doc xml:space="preserve">A #GstEvent to parse</doc>
  11584. <type name="Gst.Event" c:type="GstEvent*"/>
  11585. </parameter>
  11586. <parameter name="timestamp"
  11587. direction="out"
  11588. caller-allocates="0"
  11589. transfer-ownership="full">
  11590. <doc xml:space="preserve">A pointer to the timestamp in the event</doc>
  11591. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  11592. </parameter>
  11593. <parameter name="stream_time"
  11594. direction="out"
  11595. caller-allocates="0"
  11596. transfer-ownership="full">
  11597. <doc xml:space="preserve">A pointer to the stream-time in the event</doc>
  11598. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  11599. </parameter>
  11600. <parameter name="running_time"
  11601. direction="out"
  11602. caller-allocates="0"
  11603. transfer-ownership="full">
  11604. <doc xml:space="preserve">A pointer to the running-time in the event</doc>
  11605. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  11606. </parameter>
  11607. <parameter name="all_headers"
  11608. direction="out"
  11609. caller-allocates="0"
  11610. transfer-ownership="full">
  11611. <doc xml:space="preserve">A pointer to the all_headers flag in the event</doc>
  11612. <type name="gboolean" c:type="gboolean*"/>
  11613. </parameter>
  11614. <parameter name="count"
  11615. direction="out"
  11616. caller-allocates="0"
  11617. transfer-ownership="full">
  11618. <doc xml:space="preserve">A pointer to the count field of the event</doc>
  11619. <type name="guint" c:type="guint*"/>
  11620. </parameter>
  11621. </parameters>
  11622. </function>
  11623. <function name="video_event_parse_still_frame"
  11624. c:identifier="gst_video_event_parse_still_frame">
  11625. <doc xml:space="preserve">Parse a #GstEvent, identify if it is a Still Frame event, and
  11626. return the still-frame state from the event if it is.
  11627. If the event represents the start of a still frame, the in_still
  11628. variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
  11629. in_still variable order to just check whether the event is a valid still-frame
  11630. event.
  11631. Create a still frame event using gst_video_event_new_still_frame()</doc>
  11632. <return-value transfer-ownership="none">
  11633. <doc xml:space="preserve">%TRUE if the event is a valid still-frame event. %FALSE if not</doc>
  11634. <type name="gboolean" c:type="gboolean"/>
  11635. </return-value>
  11636. <parameters>
  11637. <parameter name="event" transfer-ownership="none">
  11638. <doc xml:space="preserve">A #GstEvent to parse</doc>
  11639. <type name="Gst.Event" c:type="GstEvent*"/>
  11640. </parameter>
  11641. <parameter name="in_still" transfer-ownership="none">
  11642. <doc xml:space="preserve">A boolean to receive the still-frame status from the event, or NULL</doc>
  11643. <type name="gboolean" c:type="gboolean*"/>
  11644. </parameter>
  11645. </parameters>
  11646. </function>
  11647. <function name="video_event_parse_upstream_force_key_unit"
  11648. c:identifier="gst_video_event_parse_upstream_force_key_unit">
  11649. <doc xml:space="preserve">Get running-time, all-headers and count in the force key unit event. See
  11650. gst_video_event_new_upstream_force_key_unit() for a full description of the
  11651. upstream force key unit event.
  11652. Create an upstream force key unit event using gst_video_event_new_upstream_force_key_unit()
  11653. @running_time will be adjusted for any pad offsets of pads it was passing through.</doc>
  11654. <return-value transfer-ownership="none">
  11655. <doc xml:space="preserve">%TRUE if the event is a valid upstream force-key-unit event. %FALSE if not</doc>
  11656. <type name="gboolean" c:type="gboolean"/>
  11657. </return-value>
  11658. <parameters>
  11659. <parameter name="event" transfer-ownership="none">
  11660. <doc xml:space="preserve">A #GstEvent to parse</doc>
  11661. <type name="Gst.Event" c:type="GstEvent*"/>
  11662. </parameter>
  11663. <parameter name="running_time"
  11664. direction="out"
  11665. caller-allocates="0"
  11666. transfer-ownership="full">
  11667. <doc xml:space="preserve">A pointer to the running_time in the event</doc>
  11668. <type name="Gst.ClockTime" c:type="GstClockTime*"/>
  11669. </parameter>
  11670. <parameter name="all_headers"
  11671. direction="out"
  11672. caller-allocates="0"
  11673. transfer-ownership="full">
  11674. <doc xml:space="preserve">A pointer to the all_headers flag in the event</doc>
  11675. <type name="gboolean" c:type="gboolean*"/>
  11676. </parameter>
  11677. <parameter name="count"
  11678. direction="out"
  11679. caller-allocates="0"
  11680. transfer-ownership="full">
  11681. <doc xml:space="preserve">A pointer to the count field in the event</doc>
  11682. <type name="guint" c:type="guint*"/>
  11683. </parameter>
  11684. </parameters>
  11685. </function>
  11686. <function name="video_format_from_fourcc"
  11687. c:identifier="gst_video_format_from_fourcc"
  11688. moved-to="VideoFormat.from_fourcc">
  11689. <doc xml:space="preserve">Converts a FOURCC value into the corresponding #GstVideoFormat.
  11690. If the FOURCC cannot be represented by #GstVideoFormat,
  11691. #GST_VIDEO_FORMAT_UNKNOWN is returned.</doc>
  11692. <return-value transfer-ownership="none">
  11693. <doc xml:space="preserve">the #GstVideoFormat describing the FOURCC value</doc>
  11694. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11695. </return-value>
  11696. <parameters>
  11697. <parameter name="fourcc" transfer-ownership="none">
  11698. <doc xml:space="preserve">a FOURCC value representing raw YUV video</doc>
  11699. <type name="guint32" c:type="guint32"/>
  11700. </parameter>
  11701. </parameters>
  11702. </function>
  11703. <function name="video_format_from_masks"
  11704. c:identifier="gst_video_format_from_masks"
  11705. moved-to="VideoFormat.from_masks">
  11706. <doc xml:space="preserve">Find the #GstVideoFormat for the given parameters.</doc>
  11707. <return-value transfer-ownership="none">
  11708. <doc xml:space="preserve">a #GstVideoFormat or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
  11709. not specify a known format.</doc>
  11710. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11711. </return-value>
  11712. <parameters>
  11713. <parameter name="depth" transfer-ownership="none">
  11714. <doc xml:space="preserve">the amount of bits used for a pixel</doc>
  11715. <type name="gint" c:type="gint"/>
  11716. </parameter>
  11717. <parameter name="bpp" transfer-ownership="none">
  11718. <doc xml:space="preserve">the amount of bits used to store a pixel. This value is bigger than
  11719. @depth</doc>
  11720. <type name="gint" c:type="gint"/>
  11721. </parameter>
  11722. <parameter name="endianness" transfer-ownership="none">
  11723. <doc xml:space="preserve">the endianness of the masks, #G_LITTLE_ENDIAN or #G_BIG_ENDIAN</doc>
  11724. <type name="gint" c:type="gint"/>
  11725. </parameter>
  11726. <parameter name="red_mask" transfer-ownership="none">
  11727. <doc xml:space="preserve">the red mask</doc>
  11728. <type name="guint" c:type="guint"/>
  11729. </parameter>
  11730. <parameter name="green_mask" transfer-ownership="none">
  11731. <doc xml:space="preserve">the green mask</doc>
  11732. <type name="guint" c:type="guint"/>
  11733. </parameter>
  11734. <parameter name="blue_mask" transfer-ownership="none">
  11735. <doc xml:space="preserve">the blue mask</doc>
  11736. <type name="guint" c:type="guint"/>
  11737. </parameter>
  11738. <parameter name="alpha_mask" transfer-ownership="none">
  11739. <doc xml:space="preserve">the alpha mask, or 0 if no alpha mask</doc>
  11740. <type name="guint" c:type="guint"/>
  11741. </parameter>
  11742. </parameters>
  11743. </function>
  11744. <function name="video_format_from_string"
  11745. c:identifier="gst_video_format_from_string"
  11746. moved-to="VideoFormat.from_string">
  11747. <doc xml:space="preserve">Convert the @format string to its #GstVideoFormat.</doc>
  11748. <return-value transfer-ownership="none">
  11749. <doc xml:space="preserve">the #GstVideoFormat for @format or GST_VIDEO_FORMAT_UNKNOWN when the
  11750. string is not a known format.</doc>
  11751. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11752. </return-value>
  11753. <parameters>
  11754. <parameter name="format" transfer-ownership="none">
  11755. <doc xml:space="preserve">a format string</doc>
  11756. <type name="utf8" c:type="const gchar*"/>
  11757. </parameter>
  11758. </parameters>
  11759. </function>
  11760. <function name="video_format_get_info"
  11761. c:identifier="gst_video_format_get_info"
  11762. moved-to="VideoFormat.get_info">
  11763. <doc xml:space="preserve">Get the #GstVideoFormatInfo for @format</doc>
  11764. <return-value transfer-ownership="none">
  11765. <doc xml:space="preserve">The #GstVideoFormatInfo for @format.</doc>
  11766. <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
  11767. </return-value>
  11768. <parameters>
  11769. <parameter name="format" transfer-ownership="none">
  11770. <doc xml:space="preserve">a #GstVideoFormat</doc>
  11771. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11772. </parameter>
  11773. </parameters>
  11774. </function>
  11775. <function name="video_format_get_palette"
  11776. c:identifier="gst_video_format_get_palette"
  11777. moved-to="VideoFormat.get_palette"
  11778. version="1.2">
  11779. <doc xml:space="preserve">Get the default palette of @format. This the palette used in the pack
  11780. function for paletted formats.</doc>
  11781. <return-value transfer-ownership="none" nullable="1">
  11782. <doc xml:space="preserve">the default palette of @format or %NULL when
  11783. @format does not have a palette.</doc>
  11784. <type name="gpointer" c:type="gconstpointer"/>
  11785. </return-value>
  11786. <parameters>
  11787. <parameter name="format" transfer-ownership="none">
  11788. <doc xml:space="preserve">a #GstVideoFormat</doc>
  11789. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11790. </parameter>
  11791. <parameter name="size"
  11792. direction="out"
  11793. caller-allocates="0"
  11794. transfer-ownership="full">
  11795. <doc xml:space="preserve">size of the palette in bytes</doc>
  11796. <type name="gsize" c:type="gsize*"/>
  11797. </parameter>
  11798. </parameters>
  11799. </function>
  11800. <function name="video_format_to_fourcc"
  11801. c:identifier="gst_video_format_to_fourcc"
  11802. moved-to="VideoFormat.to_fourcc">
  11803. <doc xml:space="preserve">Converts a #GstVideoFormat value into the corresponding FOURCC. Only
  11804. a few YUV formats have corresponding FOURCC values. If @format has
  11805. no corresponding FOURCC value, 0 is returned.</doc>
  11806. <return-value transfer-ownership="none">
  11807. <doc xml:space="preserve">the FOURCC corresponding to @format</doc>
  11808. <type name="guint32" c:type="guint32"/>
  11809. </return-value>
  11810. <parameters>
  11811. <parameter name="format" transfer-ownership="none">
  11812. <doc xml:space="preserve">a #GstVideoFormat video format</doc>
  11813. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11814. </parameter>
  11815. </parameters>
  11816. </function>
  11817. <function name="video_format_to_string"
  11818. c:identifier="gst_video_format_to_string"
  11819. moved-to="VideoFormat.to_string">
  11820. <doc xml:space="preserve">Returns a string containing a descriptive name for
  11821. the #GstVideoFormat if there is one, or NULL otherwise.</doc>
  11822. <return-value transfer-ownership="none">
  11823. <doc xml:space="preserve">the name corresponding to @format</doc>
  11824. <type name="utf8" c:type="const gchar*"/>
  11825. </return-value>
  11826. <parameters>
  11827. <parameter name="format" transfer-ownership="none">
  11828. <doc xml:space="preserve">a #GstVideoFormat video format</doc>
  11829. <type name="VideoFormat" c:type="GstVideoFormat"/>
  11830. </parameter>
  11831. </parameters>
  11832. </function>
  11833. <function name="video_gl_texture_upload_meta_api_get_type"
  11834. c:identifier="gst_video_gl_texture_upload_meta_api_get_type">
  11835. <return-value transfer-ownership="none">
  11836. <type name="GType" c:type="GType"/>
  11837. </return-value>
  11838. </function>
  11839. <function name="video_gl_texture_upload_meta_get_info"
  11840. c:identifier="gst_video_gl_texture_upload_meta_get_info"
  11841. moved-to="VideoGLTextureUploadMeta.get_info">
  11842. <return-value transfer-ownership="none">
  11843. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  11844. </return-value>
  11845. </function>
  11846. <function name="video_guess_framerate"
  11847. c:identifier="gst_video_guess_framerate"
  11848. version="1.6">
  11849. <doc xml:space="preserve">Given the nominal duration of one video frame,
  11850. this function will check some standard framerates for
  11851. a close match (within 0.1%) and return one if possible,
  11852. It will calculate an arbitrary framerate if no close
  11853. match was found, and return %FALSE.
  11854. It returns %FALSE if a duration of 0 is passed.</doc>
  11855. <return-value transfer-ownership="none">
  11856. <doc xml:space="preserve">%TRUE if a close "standard" framerate was
  11857. recognised, and %FALSE otherwise.</doc>
  11858. <type name="gboolean" c:type="gboolean"/>
  11859. </return-value>
  11860. <parameters>
  11861. <parameter name="duration" transfer-ownership="none">
  11862. <doc xml:space="preserve">Nominal duration of one frame</doc>
  11863. <type name="Gst.ClockTime" c:type="GstClockTime"/>
  11864. </parameter>
  11865. <parameter name="dest_n"
  11866. direction="out"
  11867. caller-allocates="0"
  11868. transfer-ownership="full"
  11869. optional="1"
  11870. allow-none="1">
  11871. <doc xml:space="preserve">Numerator of the calculated framerate</doc>
  11872. <type name="gint" c:type="gint*"/>
  11873. </parameter>
  11874. <parameter name="dest_d"
  11875. direction="out"
  11876. caller-allocates="0"
  11877. transfer-ownership="full"
  11878. optional="1"
  11879. allow-none="1">
  11880. <doc xml:space="preserve">Denominator of the calculated framerate</doc>
  11881. <type name="gint" c:type="gint*"/>
  11882. </parameter>
  11883. </parameters>
  11884. </function>
  11885. <function name="video_interlace_mode_from_string"
  11886. c:identifier="gst_video_interlace_mode_from_string"
  11887. moved-to="VideoInterlaceMode.from_string"
  11888. version="1.6">
  11889. <doc xml:space="preserve">Convert @mode to a #GstVideoInterlaceMode</doc>
  11890. <return-value transfer-ownership="none">
  11891. <doc xml:space="preserve">the #GstVideoInterlaceMode of @mode or
  11892. #GST_VIDEO_INTERLACE_MODE_PROGRESSIVE when @mode is not a valid
  11893. string representation for a #GstVideoInterlaceMode.</doc>
  11894. <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
  11895. </return-value>
  11896. <parameters>
  11897. <parameter name="mode" transfer-ownership="none">
  11898. <doc xml:space="preserve">a mode</doc>
  11899. <type name="utf8" c:type="const gchar*"/>
  11900. </parameter>
  11901. </parameters>
  11902. </function>
  11903. <function name="video_interlace_mode_to_string"
  11904. c:identifier="gst_video_interlace_mode_to_string"
  11905. moved-to="VideoInterlaceMode.to_string"
  11906. version="1.6">
  11907. <doc xml:space="preserve">Convert @mode to its string representation.</doc>
  11908. <return-value transfer-ownership="none">
  11909. <doc xml:space="preserve">@mode as a string or NULL if @mode in invalid.</doc>
  11910. <type name="utf8" c:type="const gchar*"/>
  11911. </return-value>
  11912. <parameters>
  11913. <parameter name="mode" transfer-ownership="none">
  11914. <doc xml:space="preserve">a #GstVideoInterlaceMode</doc>
  11915. <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
  11916. </parameter>
  11917. </parameters>
  11918. </function>
  11919. <function name="video_meta_api_get_type"
  11920. c:identifier="gst_video_meta_api_get_type">
  11921. <return-value transfer-ownership="none">
  11922. <type name="GType" c:type="GType"/>
  11923. </return-value>
  11924. </function>
  11925. <function name="video_meta_get_info"
  11926. c:identifier="gst_video_meta_get_info"
  11927. moved-to="VideoMeta.get_info">
  11928. <return-value transfer-ownership="none">
  11929. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  11930. </return-value>
  11931. </function>
  11932. <function name="video_meta_transform_scale_get_quark"
  11933. c:identifier="gst_video_meta_transform_scale_get_quark"
  11934. moved-to="VideoMetaTransform.scale_get_quark">
  11935. <doc xml:space="preserve">Get the #GQuark for the "gst-video-scale" metadata transform operation.</doc>
  11936. <return-value transfer-ownership="none">
  11937. <doc xml:space="preserve">a #GQuark</doc>
  11938. <type name="GLib.Quark" c:type="GQuark"/>
  11939. </return-value>
  11940. </function>
  11941. <function name="video_multiview_get_doubled_height_modes"
  11942. c:identifier="gst_video_multiview_get_doubled_height_modes"
  11943. version="1.6">
  11944. <return-value transfer-ownership="none">
  11945. <doc xml:space="preserve">A const #GValue containing a list of stereo video modes
  11946. Utility function that returns a #GValue with a GstList of packed stereo
  11947. video modes with double the height of a single view for use in
  11948. caps negotiations. Currently this is top-bottom and row-interleaved.</doc>
  11949. <type name="GObject.Value" c:type="const GValue*"/>
  11950. </return-value>
  11951. </function>
  11952. <function name="video_multiview_get_doubled_size_modes"
  11953. c:identifier="gst_video_multiview_get_doubled_size_modes"
  11954. version="1.6">
  11955. <return-value transfer-ownership="none">
  11956. <doc xml:space="preserve">A const #GValue containing a list of stereo video modes
  11957. Utility function that returns a #GValue with a GstList of packed
  11958. stereo video modes that have double the width/height of a single
  11959. view for use in caps negotiation. Currently this is just
  11960. 'checkerboard' layout.</doc>
  11961. <type name="GObject.Value" c:type="const GValue*"/>
  11962. </return-value>
  11963. </function>
  11964. <function name="video_multiview_get_doubled_width_modes"
  11965. c:identifier="gst_video_multiview_get_doubled_width_modes"
  11966. version="1.6">
  11967. <return-value transfer-ownership="none">
  11968. <doc xml:space="preserve">A const #GValue containing a list of stereo video modes
  11969. Utility function that returns a #GValue with a GstList of packed stereo
  11970. video modes with double the width of a single view for use in
  11971. caps negotiations. Currently this is side-by-side, side-by-side-quincunx
  11972. and column-interleaved.</doc>
  11973. <type name="GObject.Value" c:type="const GValue*"/>
  11974. </return-value>
  11975. </function>
  11976. <function name="video_multiview_get_mono_modes"
  11977. c:identifier="gst_video_multiview_get_mono_modes"
  11978. version="1.6">
  11979. <return-value transfer-ownership="none">
  11980. <doc xml:space="preserve">A const #GValue containing a list of mono video modes
  11981. Utility function that returns a #GValue with a GstList of mono video
  11982. modes (mono/left/right) for use in caps negotiations.</doc>
  11983. <type name="GObject.Value" c:type="const GValue*"/>
  11984. </return-value>
  11985. </function>
  11986. <function name="video_multiview_get_unpacked_modes"
  11987. c:identifier="gst_video_multiview_get_unpacked_modes"
  11988. version="1.6">
  11989. <return-value transfer-ownership="none">
  11990. <doc xml:space="preserve">A const #GValue containing a list of 'unpacked' stereo video modes
  11991. Utility function that returns a #GValue with a GstList of unpacked
  11992. stereo video modes (separated/frame-by-frame/frame-by-frame-multiview)
  11993. for use in caps negotiations.</doc>
  11994. <type name="GObject.Value" c:type="const GValue*"/>
  11995. </return-value>
  11996. </function>
  11997. <function name="video_multiview_guess_half_aspect"
  11998. c:identifier="gst_video_multiview_guess_half_aspect"
  11999. version="1.6">
  12000. <return-value transfer-ownership="none">
  12001. <doc xml:space="preserve">A boolean indicating whether the
  12002. #GST_VIDEO_MULTIVIEW_FLAG_HALF_ASPECT flag should be set.
  12003. Utility function that heuristically guess whether a
  12004. frame-packed stereoscopic video contains half width/height
  12005. encoded views, or full-frame views by looking at the
  12006. overall display aspect ratio.</doc>
  12007. <type name="gboolean" c:type="gboolean"/>
  12008. </return-value>
  12009. <parameters>
  12010. <parameter name="mv_mode" transfer-ownership="none">
  12011. <doc xml:space="preserve">A #GstVideoMultiviewMode</doc>
  12012. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  12013. </parameter>
  12014. <parameter name="width" transfer-ownership="none">
  12015. <doc xml:space="preserve">Video frame width in pixels</doc>
  12016. <type name="guint" c:type="guint"/>
  12017. </parameter>
  12018. <parameter name="height" transfer-ownership="none">
  12019. <doc xml:space="preserve">Video frame height in pixels</doc>
  12020. <type name="guint" c:type="guint"/>
  12021. </parameter>
  12022. <parameter name="par_n" transfer-ownership="none">
  12023. <doc xml:space="preserve">Numerator of the video pixel-aspect-ratio</doc>
  12024. <type name="guint" c:type="guint"/>
  12025. </parameter>
  12026. <parameter name="par_d" transfer-ownership="none">
  12027. <doc xml:space="preserve">Denominator of the video pixel-aspect-ratio</doc>
  12028. <type name="guint" c:type="guint"/>
  12029. </parameter>
  12030. </parameters>
  12031. </function>
  12032. <function name="video_multiview_mode_from_caps_string"
  12033. c:identifier="gst_video_multiview_mode_from_caps_string"
  12034. moved-to="VideoMultiviewMode.from_caps_string"
  12035. version="1.6">
  12036. <return-value transfer-ownership="none">
  12037. <doc xml:space="preserve">The #GstVideoMultiviewMode value
  12038. Given a string from a caps multiview-mode field,
  12039. output the corresponding #GstVideoMultiviewMode
  12040. or #GST_VIDEO_MULTIVIEW_MODE_NONE</doc>
  12041. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  12042. </return-value>
  12043. <parameters>
  12044. <parameter name="caps_mview_mode" transfer-ownership="none">
  12045. <doc xml:space="preserve">multiview-mode field string from caps</doc>
  12046. <type name="utf8" c:type="const gchar*"/>
  12047. </parameter>
  12048. </parameters>
  12049. </function>
  12050. <function name="video_multiview_mode_to_caps_string"
  12051. c:identifier="gst_video_multiview_mode_to_caps_string"
  12052. moved-to="VideoMultiviewMode.to_caps_string"
  12053. version="1.6">
  12054. <return-value transfer-ownership="none">
  12055. <doc xml:space="preserve">The caps string representation of the mode, or NULL if invalid.
  12056. Given a #GstVideoMultiviewMode returns the multiview-mode caps string
  12057. for insertion into a caps structure</doc>
  12058. <type name="utf8" c:type="const gchar*"/>
  12059. </return-value>
  12060. <parameters>
  12061. <parameter name="mview_mode" transfer-ownership="none">
  12062. <doc xml:space="preserve">A #GstVideoMultiviewMode value</doc>
  12063. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  12064. </parameter>
  12065. </parameters>
  12066. </function>
  12067. <function name="video_multiview_video_info_change_mode"
  12068. c:identifier="gst_video_multiview_video_info_change_mode"
  12069. version="1.6">
  12070. <doc xml:space="preserve">Utility function that transforms the width/height/PAR
  12071. and multiview mode and flags of a #GstVideoInfo into
  12072. the requested mode.</doc>
  12073. <return-value transfer-ownership="none">
  12074. <type name="none" c:type="void"/>
  12075. </return-value>
  12076. <parameters>
  12077. <parameter name="info" transfer-ownership="none">
  12078. <doc xml:space="preserve">A #GstVideoInfo structure to operate on</doc>
  12079. <type name="VideoInfo" c:type="GstVideoInfo*"/>
  12080. </parameter>
  12081. <parameter name="out_mview_mode" transfer-ownership="none">
  12082. <doc xml:space="preserve">A #GstVideoMultiviewMode value</doc>
  12083. <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
  12084. </parameter>
  12085. <parameter name="out_mview_flags" transfer-ownership="none">
  12086. <doc xml:space="preserve">A set of #GstVideoMultiviewFlags</doc>
  12087. <type name="VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/>
  12088. </parameter>
  12089. </parameters>
  12090. </function>
  12091. <function name="video_overlay_composition_meta_api_get_type"
  12092. c:identifier="gst_video_overlay_composition_meta_api_get_type">
  12093. <return-value transfer-ownership="none">
  12094. <type name="GType" c:type="GType"/>
  12095. </return-value>
  12096. </function>
  12097. <function name="video_overlay_composition_meta_get_info"
  12098. c:identifier="gst_video_overlay_composition_meta_get_info"
  12099. moved-to="VideoOverlayCompositionMeta.get_info">
  12100. <return-value transfer-ownership="none">
  12101. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  12102. </return-value>
  12103. </function>
  12104. <function name="video_region_of_interest_meta_api_get_type"
  12105. c:identifier="gst_video_region_of_interest_meta_api_get_type">
  12106. <return-value transfer-ownership="none">
  12107. <type name="GType" c:type="GType"/>
  12108. </return-value>
  12109. </function>
  12110. <function name="video_region_of_interest_meta_get_info"
  12111. c:identifier="gst_video_region_of_interest_meta_get_info"
  12112. moved-to="VideoRegionOfInterestMeta.get_info">
  12113. <return-value transfer-ownership="none">
  12114. <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
  12115. </return-value>
  12116. </function>
  12117. <function name="video_scaler_new"
  12118. c:identifier="gst_video_scaler_new"
  12119. moved-to="VideoScaler.new"
  12120. introspectable="0">
  12121. <doc xml:space="preserve">Make a new @method video scaler. @in_size source lines/pixels will
  12122. be scaled to @out_size destination lines/pixels.
  12123. @n_taps specifies the amount of pixels to use from the source for one output
  12124. pixel. If n_taps is 0, this function chooses a good value automatically based
  12125. on the @method and @in_size/@out_size.</doc>
  12126. <return-value>
  12127. <doc xml:space="preserve">a #GstVideoResample</doc>
  12128. <type name="VideoScaler" c:type="GstVideoScaler*"/>
  12129. </return-value>
  12130. <parameters>
  12131. <parameter name="method" transfer-ownership="none">
  12132. <doc xml:space="preserve">a #GstVideoResamplerMethod</doc>
  12133. <type name="VideoResamplerMethod" c:type="GstVideoResamplerMethod"/>
  12134. </parameter>
  12135. <parameter name="flags" transfer-ownership="none">
  12136. <doc xml:space="preserve">#GstVideoScalerFlags</doc>
  12137. <type name="VideoScalerFlags" c:type="GstVideoScalerFlags"/>
  12138. </parameter>
  12139. <parameter name="n_taps" transfer-ownership="none">
  12140. <doc xml:space="preserve">number of taps to use</doc>
  12141. <type name="guint" c:type="guint"/>
  12142. </parameter>
  12143. <parameter name="in_size" transfer-ownership="none">
  12144. <doc xml:space="preserve">number of source elements</doc>
  12145. <type name="guint" c:type="guint"/>
  12146. </parameter>
  12147. <parameter name="out_size" transfer-ownership="none">
  12148. <doc xml:space="preserve">number of destination elements</doc>
  12149. <type name="guint" c:type="guint"/>
  12150. </parameter>
  12151. <parameter name="options"
  12152. transfer-ownership="none"
  12153. nullable="1"
  12154. allow-none="1">
  12155. <doc xml:space="preserve">extra options</doc>
  12156. <type name="Gst.Structure" c:type="GstStructure*"/>
  12157. </parameter>
  12158. </parameters>
  12159. </function>
  12160. <function name="video_tile_get_index"
  12161. c:identifier="gst_video_tile_get_index"
  12162. version="1.4">
  12163. <doc xml:space="preserve">Get the tile index of the tile at coordinates @x and @y in the tiled
  12164. image of @x_tiles by @y_tiles.
  12165. Use this method when @mode is of type %GST_VIDEO_TILE_MODE_INDEXED.</doc>
  12166. <return-value transfer-ownership="none">
  12167. <doc xml:space="preserve">the index of the tile at @x and @y in the tiled image of
  12168. @x_tiles by @y_tiles.</doc>
  12169. <type name="guint" c:type="guint"/>
  12170. </return-value>
  12171. <parameters>
  12172. <parameter name="mode" transfer-ownership="none">
  12173. <doc xml:space="preserve">a #GstVideoTileMode</doc>
  12174. <type name="VideoTileMode" c:type="GstVideoTileMode"/>
  12175. </parameter>
  12176. <parameter name="x" transfer-ownership="none">
  12177. <doc xml:space="preserve">x coordinate</doc>
  12178. <type name="gint" c:type="gint"/>
  12179. </parameter>
  12180. <parameter name="y" transfer-ownership="none">
  12181. <doc xml:space="preserve">y coordinate</doc>
  12182. <type name="gint" c:type="gint"/>
  12183. </parameter>
  12184. <parameter name="x_tiles" transfer-ownership="none">
  12185. <doc xml:space="preserve">number of horizintal tiles</doc>
  12186. <type name="gint" c:type="gint"/>
  12187. </parameter>
  12188. <parameter name="y_tiles" transfer-ownership="none">
  12189. <doc xml:space="preserve">number of vertical tiles</doc>
  12190. <type name="gint" c:type="gint"/>
  12191. </parameter>
  12192. </parameters>
  12193. </function>
  12194. </namespace>
  12195. </repository>