12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829183018311832183318341835183618371838183918401841184218431844184518461847184818491850185118521853185418551856185718581859186018611862186318641865186618671868186918701871187218731874187518761877187818791880188118821883188418851886188718881889189018911892189318941895189618971898189919001901190219031904190519061907190819091910191119121913191419151916191719181919192019211922192319241925192619271928192919301931193219331934193519361937193819391940194119421943194419451946194719481949195019511952195319541955195619571958195919601961196219631964196519661967196819691970197119721973197419751976197719781979198019811982198319841985198619871988198919901991199219931994199519961997199819992000200120022003200420052006200720082009201020112012201320142015201620172018201920202021202220232024202520262027202820292030203120322033203420352036203720382039204020412042204320442045204620472048204920502051205220532054205520562057205820592060206120622063206420652066206720682069207020712072207320742075207620772078207920802081208220832084208520862087208820892090209120922093209420952096209720982099210021012102210321042105210621072108210921102111211221132114211521162117211821192120212121222123212421252126212721282129213021312132213321342135213621372138213921402141214221432144214521462147214821492150215121522153215421552156215721582159216021612162216321642165216621672168216921702171217221732174217521762177217821792180218121822183218421852186218721882189219021912192219321942195219621972198219922002201220222032204220522062207220822092210221122122213221422152216221722182219222022212222222322242225222622272228222922302231223222332234223522362237223822392240224122422243224422452246224722482249225022512252225322542255225622572258225922602261226222632264226522662267226822692270227122722273227422752276227722782279228022812282228322842285228622872288228922902291229222932294229522962297229822992300230123022303230423052306230723082309231023112312231323142315231623172318231923202321232223232324232523262327232823292330233123322333233423352336233723382339234023412342234323442345234623472348234923502351235223532354235523562357235823592360236123622363236423652366236723682369237023712372237323742375237623772378237923802381238223832384238523862387238823892390239123922393239423952396239723982399240024012402240324042405240624072408240924102411241224132414241524162417241824192420242124222423242424252426242724282429243024312432243324342435243624372438243924402441244224432444244524462447244824492450245124522453245424552456245724582459246024612462246324642465246624672468246924702471247224732474247524762477247824792480248124822483248424852486248724882489249024912492249324942495249624972498249925002501250225032504250525062507250825092510251125122513251425152516251725182519252025212522252325242525252625272528252925302531253225332534253525362537253825392540254125422543254425452546254725482549255025512552255325542555255625572558255925602561256225632564256525662567256825692570257125722573257425752576257725782579258025812582258325842585258625872588258925902591259225932594259525962597259825992600260126022603260426052606260726082609261026112612261326142615261626172618261926202621262226232624262526262627262826292630263126322633263426352636263726382639264026412642264326442645264626472648264926502651265226532654265526562657265826592660266126622663266426652666266726682669267026712672267326742675267626772678267926802681268226832684268526862687268826892690269126922693269426952696269726982699270027012702270327042705270627072708270927102711271227132714271527162717271827192720272127222723272427252726272727282729273027312732273327342735273627372738273927402741274227432744274527462747274827492750275127522753275427552756275727582759276027612762276327642765276627672768276927702771277227732774277527762777277827792780278127822783278427852786278727882789279027912792279327942795279627972798279928002801280228032804280528062807280828092810281128122813281428152816281728182819282028212822282328242825282628272828282928302831283228332834283528362837283828392840284128422843284428452846284728482849285028512852285328542855285628572858285928602861286228632864286528662867286828692870287128722873287428752876287728782879288028812882288328842885288628872888288928902891289228932894289528962897289828992900290129022903290429052906290729082909291029112912291329142915291629172918291929202921292229232924292529262927292829292930293129322933293429352936293729382939294029412942294329442945294629472948294929502951295229532954295529562957295829592960296129622963296429652966296729682969297029712972297329742975297629772978297929802981298229832984298529862987298829892990299129922993299429952996299729982999300030013002300330043005300630073008300930103011301230133014301530163017301830193020302130223023302430253026302730283029303030313032303330343035303630373038303930403041304230433044304530463047304830493050305130523053305430553056305730583059306030613062306330643065306630673068306930703071307230733074307530763077307830793080308130823083308430853086308730883089309030913092309330943095309630973098309931003101310231033104310531063107310831093110311131123113311431153116311731183119312031213122312331243125312631273128312931303131313231333134313531363137313831393140314131423143314431453146314731483149315031513152315331543155315631573158315931603161316231633164316531663167316831693170317131723173317431753176317731783179318031813182318331843185318631873188318931903191319231933194319531963197319831993200320132023203320432053206320732083209321032113212321332143215321632173218321932203221322232233224322532263227322832293230323132323233323432353236323732383239324032413242324332443245324632473248324932503251325232533254325532563257325832593260326132623263326432653266326732683269327032713272327332743275327632773278327932803281328232833284328532863287328832893290329132923293329432953296329732983299330033013302330333043305330633073308330933103311331233133314331533163317331833193320332133223323332433253326332733283329333033313332333333343335333633373338333933403341334233433344334533463347334833493350335133523353335433553356335733583359336033613362336333643365336633673368336933703371337233733374337533763377337833793380338133823383338433853386338733883389339033913392339333943395339633973398339934003401340234033404340534063407340834093410341134123413341434153416341734183419342034213422342334243425342634273428342934303431343234333434343534363437343834393440344134423443344434453446344734483449345034513452345334543455345634573458345934603461346234633464346534663467346834693470347134723473347434753476347734783479348034813482348334843485348634873488348934903491349234933494349534963497349834993500350135023503350435053506350735083509351035113512351335143515351635173518351935203521352235233524352535263527352835293530353135323533353435353536353735383539354035413542354335443545354635473548354935503551355235533554355535563557355835593560356135623563356435653566356735683569357035713572357335743575357635773578357935803581358235833584358535863587358835893590359135923593359435953596359735983599360036013602360336043605360636073608360936103611361236133614361536163617361836193620362136223623362436253626362736283629363036313632363336343635363636373638363936403641364236433644364536463647364836493650365136523653365436553656365736583659366036613662366336643665366636673668366936703671367236733674367536763677367836793680368136823683368436853686368736883689369036913692369336943695369636973698369937003701370237033704370537063707370837093710371137123713371437153716371737183719372037213722372337243725372637273728372937303731373237333734373537363737373837393740374137423743374437453746374737483749375037513752375337543755375637573758375937603761376237633764376537663767376837693770377137723773377437753776377737783779378037813782378337843785378637873788378937903791379237933794379537963797379837993800380138023803380438053806380738083809381038113812381338143815381638173818381938203821382238233824382538263827382838293830383138323833383438353836383738383839384038413842384338443845384638473848384938503851385238533854385538563857385838593860386138623863386438653866386738683869387038713872387338743875387638773878387938803881388238833884388538863887388838893890389138923893389438953896389738983899390039013902390339043905390639073908390939103911391239133914391539163917391839193920392139223923392439253926392739283929393039313932393339343935393639373938393939403941394239433944394539463947394839493950395139523953395439553956395739583959396039613962396339643965396639673968396939703971397239733974397539763977397839793980398139823983398439853986398739883989399039913992399339943995399639973998399940004001400240034004400540064007400840094010401140124013401440154016401740184019402040214022402340244025402640274028402940304031403240334034403540364037403840394040404140424043404440454046404740484049405040514052405340544055405640574058405940604061406240634064406540664067406840694070407140724073407440754076407740784079408040814082408340844085408640874088408940904091409240934094409540964097409840994100410141024103410441054106410741084109411041114112411341144115411641174118411941204121412241234124412541264127412841294130413141324133413441354136413741384139414041414142414341444145414641474148414941504151415241534154415541564157415841594160416141624163416441654166416741684169417041714172417341744175417641774178417941804181418241834184418541864187418841894190419141924193419441954196419741984199420042014202420342044205420642074208420942104211421242134214421542164217421842194220422142224223422442254226422742284229423042314232423342344235423642374238423942404241424242434244424542464247424842494250425142524253425442554256425742584259426042614262426342644265426642674268426942704271427242734274427542764277427842794280428142824283428442854286428742884289429042914292429342944295429642974298429943004301430243034304430543064307430843094310431143124313431443154316431743184319432043214322432343244325432643274328432943304331433243334334433543364337433843394340434143424343434443454346434743484349435043514352435343544355435643574358435943604361436243634364436543664367436843694370437143724373437443754376437743784379438043814382438343844385438643874388438943904391439243934394439543964397439843994400440144024403440444054406440744084409441044114412441344144415441644174418441944204421442244234424442544264427442844294430443144324433443444354436443744384439444044414442444344444445444644474448444944504451445244534454445544564457445844594460446144624463446444654466446744684469447044714472447344744475447644774478447944804481448244834484448544864487448844894490449144924493449444954496449744984499450045014502450345044505450645074508450945104511451245134514451545164517451845194520452145224523452445254526452745284529453045314532453345344535453645374538453945404541454245434544454545464547454845494550455145524553455445554556455745584559456045614562456345644565456645674568456945704571457245734574457545764577457845794580458145824583458445854586458745884589459045914592459345944595459645974598459946004601460246034604460546064607460846094610461146124613461446154616461746184619462046214622462346244625462646274628462946304631463246334634463546364637463846394640464146424643464446454646464746484649465046514652465346544655465646574658465946604661466246634664466546664667466846694670467146724673467446754676467746784679468046814682468346844685468646874688468946904691469246934694469546964697469846994700470147024703470447054706470747084709471047114712471347144715471647174718471947204721472247234724472547264727472847294730473147324733473447354736473747384739474047414742474347444745474647474748474947504751475247534754475547564757475847594760476147624763476447654766476747684769477047714772477347744775477647774778477947804781478247834784478547864787478847894790479147924793479447954796479747984799480048014802480348044805480648074808480948104811481248134814481548164817481848194820482148224823482448254826482748284829483048314832483348344835483648374838483948404841484248434844484548464847484848494850485148524853485448554856485748584859486048614862486348644865486648674868486948704871487248734874487548764877487848794880488148824883488448854886488748884889489048914892489348944895489648974898489949004901490249034904490549064907490849094910491149124913491449154916491749184919492049214922492349244925492649274928492949304931493249334934493549364937493849394940494149424943494449454946494749484949495049514952495349544955495649574958495949604961496249634964496549664967496849694970497149724973497449754976497749784979498049814982498349844985498649874988498949904991499249934994499549964997499849995000500150025003500450055006500750085009501050115012501350145015501650175018501950205021502250235024502550265027502850295030503150325033503450355036503750385039504050415042504350445045504650475048504950505051505250535054505550565057505850595060506150625063506450655066506750685069507050715072507350745075507650775078507950805081508250835084508550865087508850895090509150925093509450955096509750985099510051015102510351045105510651075108510951105111511251135114511551165117511851195120512151225123512451255126512751285129513051315132513351345135513651375138513951405141514251435144514551465147514851495150515151525153515451555156515751585159516051615162516351645165516651675168516951705171517251735174517551765177517851795180518151825183518451855186518751885189519051915192519351945195519651975198519952005201520252035204520552065207520852095210521152125213521452155216521752185219522052215222522352245225522652275228522952305231523252335234523552365237523852395240524152425243524452455246524752485249525052515252525352545255525652575258525952605261526252635264526552665267526852695270527152725273527452755276527752785279528052815282528352845285528652875288528952905291529252935294529552965297529852995300530153025303530453055306530753085309531053115312531353145315531653175318531953205321532253235324532553265327532853295330533153325333533453355336533753385339534053415342534353445345534653475348534953505351535253535354535553565357535853595360536153625363536453655366536753685369537053715372537353745375537653775378537953805381538253835384538553865387538853895390539153925393539453955396539753985399540054015402540354045405540654075408540954105411541254135414541554165417541854195420542154225423542454255426542754285429543054315432543354345435543654375438543954405441544254435444544554465447544854495450545154525453545454555456545754585459546054615462546354645465546654675468546954705471547254735474547554765477547854795480548154825483548454855486548754885489549054915492549354945495549654975498549955005501550255035504550555065507550855095510551155125513551455155516551755185519552055215522552355245525552655275528552955305531553255335534553555365537553855395540554155425543554455455546554755485549555055515552555355545555555655575558555955605561556255635564556555665567556855695570557155725573557455755576557755785579558055815582558355845585558655875588558955905591559255935594559555965597559855995600560156025603560456055606560756085609561056115612561356145615561656175618561956205621562256235624562556265627562856295630563156325633563456355636563756385639564056415642564356445645564656475648564956505651565256535654565556565657565856595660566156625663566456655666566756685669567056715672567356745675567656775678567956805681568256835684568556865687568856895690569156925693569456955696569756985699570057015702570357045705570657075708570957105711571257135714571557165717571857195720572157225723572457255726572757285729573057315732573357345735573657375738573957405741574257435744574557465747574857495750575157525753575457555756575757585759576057615762576357645765576657675768576957705771577257735774577557765777577857795780578157825783578457855786578757885789579057915792579357945795579657975798579958005801580258035804580558065807580858095810581158125813581458155816581758185819582058215822582358245825582658275828582958305831583258335834583558365837583858395840584158425843584458455846584758485849585058515852585358545855585658575858585958605861586258635864586558665867586858695870587158725873587458755876587758785879588058815882588358845885588658875888588958905891589258935894589558965897589858995900590159025903590459055906590759085909591059115912591359145915591659175918591959205921592259235924592559265927592859295930593159325933593459355936593759385939594059415942594359445945594659475948594959505951595259535954595559565957595859595960596159625963596459655966596759685969597059715972597359745975597659775978597959805981598259835984598559865987598859895990599159925993599459955996599759985999600060016002600360046005600660076008600960106011601260136014601560166017601860196020602160226023602460256026602760286029603060316032603360346035603660376038603960406041604260436044604560466047604860496050605160526053605460556056605760586059606060616062606360646065606660676068606960706071607260736074607560766077607860796080608160826083608460856086608760886089609060916092609360946095609660976098609961006101610261036104610561066107610861096110611161126113611461156116611761186119612061216122612361246125612661276128612961306131613261336134613561366137613861396140614161426143614461456146614761486149615061516152615361546155615661576158615961606161616261636164616561666167616861696170617161726173617461756176617761786179618061816182618361846185618661876188618961906191619261936194619561966197619861996200620162026203620462056206620762086209621062116212621362146215621662176218621962206221622262236224622562266227622862296230623162326233623462356236623762386239624062416242624362446245624662476248624962506251625262536254625562566257625862596260626162626263626462656266626762686269627062716272627362746275627662776278627962806281628262836284628562866287628862896290629162926293629462956296629762986299630063016302630363046305630663076308630963106311631263136314631563166317631863196320632163226323632463256326632763286329633063316332633363346335633663376338633963406341634263436344634563466347634863496350635163526353635463556356635763586359636063616362636363646365636663676368636963706371637263736374637563766377637863796380638163826383638463856386638763886389639063916392639363946395639663976398639964006401640264036404640564066407640864096410641164126413641464156416641764186419642064216422642364246425642664276428642964306431643264336434643564366437643864396440644164426443644464456446644764486449645064516452645364546455645664576458645964606461646264636464646564666467646864696470647164726473647464756476647764786479648064816482648364846485648664876488648964906491649264936494649564966497649864996500650165026503650465056506650765086509651065116512651365146515651665176518651965206521652265236524652565266527652865296530653165326533653465356536653765386539654065416542654365446545654665476548654965506551655265536554655565566557655865596560656165626563656465656566656765686569657065716572657365746575657665776578657965806581658265836584658565866587658865896590659165926593659465956596659765986599660066016602660366046605660666076608660966106611661266136614661566166617661866196620662166226623662466256626662766286629663066316632663366346635663666376638663966406641664266436644664566466647664866496650665166526653665466556656665766586659666066616662666366646665666666676668666966706671667266736674667566766677667866796680668166826683668466856686668766886689669066916692669366946695669666976698669967006701670267036704670567066707670867096710671167126713671467156716671767186719672067216722672367246725672667276728672967306731673267336734673567366737673867396740674167426743674467456746674767486749675067516752675367546755675667576758675967606761676267636764676567666767676867696770677167726773677467756776677767786779678067816782678367846785678667876788678967906791679267936794679567966797679867996800680168026803680468056806680768086809681068116812681368146815681668176818681968206821682268236824682568266827682868296830683168326833683468356836683768386839684068416842684368446845684668476848684968506851685268536854685568566857685868596860686168626863686468656866686768686869687068716872687368746875687668776878687968806881688268836884688568866887688868896890689168926893689468956896689768986899690069016902690369046905690669076908690969106911691269136914691569166917691869196920692169226923692469256926692769286929693069316932693369346935693669376938693969406941694269436944694569466947694869496950695169526953695469556956695769586959696069616962696369646965696669676968696969706971697269736974697569766977697869796980698169826983698469856986698769886989699069916992699369946995699669976998699970007001700270037004700570067007700870097010701170127013701470157016701770187019702070217022702370247025702670277028702970307031703270337034703570367037703870397040704170427043704470457046704770487049705070517052705370547055705670577058705970607061706270637064706570667067706870697070707170727073707470757076707770787079708070817082708370847085708670877088708970907091709270937094709570967097709870997100710171027103710471057106710771087109711071117112711371147115711671177118711971207121712271237124712571267127712871297130713171327133713471357136713771387139714071417142714371447145714671477148714971507151715271537154715571567157715871597160716171627163716471657166716771687169717071717172717371747175717671777178717971807181718271837184718571867187718871897190719171927193719471957196719771987199720072017202720372047205720672077208720972107211721272137214721572167217721872197220722172227223722472257226722772287229723072317232723372347235723672377238723972407241724272437244724572467247724872497250725172527253725472557256725772587259726072617262726372647265726672677268726972707271727272737274727572767277727872797280728172827283728472857286728772887289729072917292729372947295729672977298729973007301730273037304730573067307730873097310731173127313731473157316731773187319732073217322732373247325732673277328732973307331733273337334733573367337733873397340734173427343734473457346734773487349735073517352735373547355735673577358735973607361736273637364736573667367736873697370737173727373737473757376737773787379738073817382738373847385738673877388738973907391739273937394739573967397739873997400740174027403740474057406740774087409741074117412741374147415741674177418741974207421742274237424742574267427742874297430743174327433743474357436743774387439744074417442744374447445744674477448744974507451745274537454745574567457745874597460746174627463746474657466746774687469747074717472747374747475747674777478747974807481748274837484748574867487748874897490749174927493749474957496749774987499750075017502750375047505750675077508750975107511751275137514751575167517751875197520752175227523752475257526752775287529753075317532753375347535753675377538753975407541754275437544754575467547754875497550755175527553755475557556755775587559756075617562756375647565756675677568756975707571757275737574757575767577757875797580758175827583758475857586758775887589759075917592759375947595759675977598759976007601760276037604760576067607760876097610761176127613761476157616761776187619762076217622762376247625762676277628762976307631763276337634763576367637763876397640764176427643764476457646764776487649765076517652765376547655765676577658765976607661766276637664766576667667766876697670767176727673767476757676767776787679768076817682768376847685768676877688768976907691769276937694769576967697769876997700770177027703770477057706770777087709771077117712771377147715771677177718771977207721772277237724772577267727772877297730773177327733773477357736773777387739774077417742774377447745774677477748774977507751775277537754775577567757775877597760776177627763776477657766776777687769777077717772777377747775777677777778777977807781778277837784778577867787778877897790779177927793779477957796779777987799780078017802780378047805780678077808780978107811781278137814781578167817781878197820782178227823782478257826782778287829783078317832783378347835783678377838783978407841784278437844784578467847784878497850785178527853785478557856785778587859786078617862786378647865786678677868786978707871787278737874787578767877787878797880788178827883788478857886788778887889789078917892789378947895789678977898789979007901790279037904790579067907790879097910791179127913791479157916791779187919792079217922792379247925792679277928792979307931793279337934793579367937793879397940794179427943794479457946794779487949795079517952795379547955795679577958795979607961796279637964796579667967796879697970797179727973797479757976797779787979798079817982798379847985798679877988798979907991799279937994799579967997799879998000800180028003800480058006800780088009801080118012801380148015801680178018801980208021802280238024802580268027802880298030803180328033803480358036803780388039804080418042804380448045804680478048804980508051805280538054805580568057805880598060806180628063806480658066806780688069807080718072807380748075807680778078807980808081808280838084808580868087808880898090809180928093809480958096809780988099810081018102810381048105810681078108810981108111811281138114811581168117811881198120812181228123812481258126812781288129813081318132813381348135813681378138813981408141814281438144814581468147814881498150815181528153815481558156815781588159816081618162816381648165816681678168816981708171817281738174817581768177817881798180818181828183818481858186818781888189819081918192819381948195819681978198819982008201820282038204820582068207820882098210821182128213821482158216821782188219822082218222822382248225822682278228822982308231823282338234823582368237823882398240824182428243824482458246824782488249825082518252825382548255825682578258825982608261826282638264826582668267826882698270827182728273827482758276827782788279828082818282828382848285828682878288828982908291829282938294829582968297829882998300830183028303830483058306830783088309831083118312831383148315831683178318831983208321832283238324832583268327832883298330833183328333833483358336833783388339834083418342834383448345834683478348834983508351835283538354835583568357835883598360836183628363836483658366836783688369837083718372837383748375837683778378837983808381838283838384838583868387838883898390839183928393839483958396839783988399840084018402840384048405840684078408840984108411841284138414841584168417841884198420842184228423842484258426842784288429843084318432843384348435843684378438843984408441844284438444844584468447844884498450845184528453845484558456845784588459846084618462846384648465846684678468846984708471847284738474847584768477847884798480848184828483848484858486848784888489849084918492849384948495849684978498849985008501850285038504850585068507850885098510851185128513851485158516851785188519852085218522852385248525852685278528852985308531853285338534853585368537853885398540854185428543854485458546854785488549855085518552855385548555855685578558855985608561856285638564856585668567856885698570857185728573857485758576857785788579858085818582858385848585858685878588858985908591859285938594859585968597859885998600860186028603860486058606860786088609861086118612861386148615861686178618861986208621862286238624862586268627862886298630863186328633863486358636863786388639864086418642864386448645864686478648864986508651865286538654865586568657865886598660866186628663866486658666866786688669867086718672867386748675867686778678867986808681868286838684868586868687868886898690869186928693869486958696869786988699870087018702870387048705870687078708870987108711871287138714871587168717871887198720872187228723872487258726872787288729873087318732873387348735873687378738873987408741874287438744874587468747874887498750875187528753875487558756875787588759876087618762876387648765876687678768876987708771877287738774877587768777877887798780878187828783878487858786878787888789879087918792879387948795879687978798879988008801880288038804880588068807880888098810881188128813881488158816881788188819882088218822882388248825882688278828882988308831883288338834883588368837883888398840884188428843884488458846884788488849885088518852885388548855885688578858885988608861886288638864886588668867886888698870887188728873887488758876887788788879888088818882888388848885888688878888888988908891889288938894889588968897889888998900890189028903890489058906890789088909891089118912891389148915891689178918891989208921892289238924892589268927892889298930893189328933893489358936893789388939894089418942894389448945894689478948894989508951895289538954895589568957895889598960896189628963896489658966896789688969897089718972897389748975897689778978897989808981898289838984898589868987898889898990899189928993899489958996899789988999900090019002900390049005900690079008900990109011901290139014901590169017901890199020902190229023902490259026902790289029903090319032903390349035903690379038903990409041904290439044904590469047904890499050905190529053905490559056905790589059906090619062906390649065906690679068906990709071907290739074907590769077907890799080908190829083908490859086908790889089909090919092909390949095909690979098909991009101910291039104910591069107910891099110911191129113911491159116911791189119912091219122912391249125912691279128912991309131913291339134913591369137913891399140914191429143914491459146914791489149915091519152915391549155915691579158915991609161916291639164916591669167916891699170917191729173917491759176917791789179918091819182918391849185918691879188918991909191919291939194919591969197919891999200920192029203920492059206920792089209921092119212921392149215921692179218921992209221922292239224922592269227922892299230923192329233923492359236923792389239924092419242924392449245924692479248924992509251925292539254925592569257925892599260926192629263926492659266926792689269927092719272927392749275927692779278927992809281928292839284928592869287928892899290929192929293929492959296929792989299930093019302930393049305930693079308930993109311931293139314931593169317931893199320932193229323932493259326932793289329933093319332933393349335933693379338933993409341934293439344934593469347934893499350935193529353935493559356935793589359936093619362936393649365936693679368936993709371937293739374937593769377937893799380938193829383938493859386938793889389939093919392939393949395939693979398939994009401940294039404940594069407940894099410941194129413941494159416941794189419942094219422942394249425942694279428942994309431943294339434943594369437943894399440944194429443944494459446944794489449945094519452945394549455945694579458945994609461946294639464946594669467946894699470947194729473947494759476947794789479948094819482948394849485948694879488948994909491949294939494949594969497949894999500950195029503950495059506950795089509951095119512951395149515951695179518951995209521952295239524952595269527952895299530953195329533953495359536953795389539954095419542954395449545954695479548954995509551955295539554955595569557955895599560956195629563956495659566956795689569957095719572957395749575957695779578957995809581958295839584958595869587958895899590959195929593959495959596959795989599960096019602960396049605960696079608960996109611961296139614961596169617961896199620962196229623962496259626962796289629963096319632963396349635963696379638963996409641964296439644964596469647964896499650965196529653965496559656965796589659966096619662966396649665966696679668966996709671967296739674967596769677967896799680968196829683968496859686968796889689969096919692969396949695969696979698969997009701970297039704970597069707970897099710971197129713971497159716971797189719972097219722972397249725972697279728972997309731973297339734973597369737973897399740974197429743974497459746974797489749975097519752975397549755975697579758975997609761976297639764976597669767976897699770977197729773977497759776977797789779978097819782978397849785978697879788978997909791979297939794979597969797979897999800980198029803980498059806980798089809981098119812981398149815981698179818981998209821982298239824982598269827982898299830983198329833983498359836983798389839984098419842984398449845984698479848984998509851985298539854985598569857985898599860986198629863986498659866986798689869987098719872987398749875987698779878987998809881988298839884988598869887988898899890989198929893989498959896989798989899990099019902990399049905990699079908990999109911991299139914991599169917991899199920992199229923992499259926992799289929993099319932993399349935993699379938993999409941994299439944994599469947994899499950995199529953995499559956995799589959996099619962996399649965996699679968996999709971997299739974997599769977997899799980998199829983998499859986998799889989999099919992999399949995999699979998999910000100011000210003100041000510006100071000810009100101001110012100131001410015100161001710018100191002010021100221002310024100251002610027100281002910030100311003210033100341003510036100371003810039100401004110042100431004410045100461004710048100491005010051100521005310054100551005610057100581005910060100611006210063100641006510066100671006810069100701007110072100731007410075100761007710078100791008010081100821008310084100851008610087100881008910090100911009210093100941009510096100971009810099101001010110102101031010410105101061010710108101091011010111101121011310114101151011610117101181011910120101211012210123101241012510126101271012810129101301013110132101331013410135101361013710138101391014010141101421014310144101451014610147101481014910150101511015210153101541015510156101571015810159101601016110162101631016410165101661016710168101691017010171101721017310174101751017610177101781017910180101811018210183101841018510186101871018810189101901019110192101931019410195101961019710198101991020010201102021020310204102051020610207102081020910210102111021210213102141021510216102171021810219102201022110222102231022410225102261022710228102291023010231102321023310234102351023610237102381023910240102411024210243102441024510246102471024810249102501025110252102531025410255102561025710258102591026010261102621026310264102651026610267102681026910270102711027210273102741027510276102771027810279102801028110282102831028410285102861028710288102891029010291102921029310294102951029610297102981029910300103011030210303103041030510306103071030810309103101031110312103131031410315103161031710318103191032010321103221032310324103251032610327103281032910330103311033210333103341033510336103371033810339103401034110342103431034410345103461034710348103491035010351103521035310354103551035610357103581035910360103611036210363103641036510366103671036810369103701037110372103731037410375103761037710378103791038010381103821038310384103851038610387103881038910390103911039210393103941039510396103971039810399104001040110402104031040410405104061040710408104091041010411104121041310414104151041610417104181041910420104211042210423104241042510426104271042810429104301043110432104331043410435104361043710438104391044010441104421044310444104451044610447104481044910450104511045210453104541045510456104571045810459104601046110462104631046410465104661046710468104691047010471104721047310474104751047610477104781047910480104811048210483104841048510486104871048810489104901049110492104931049410495104961049710498104991050010501105021050310504105051050610507105081050910510105111051210513105141051510516105171051810519105201052110522105231052410525105261052710528105291053010531105321053310534105351053610537105381053910540105411054210543105441054510546105471054810549105501055110552105531055410555105561055710558105591056010561105621056310564105651056610567105681056910570105711057210573105741057510576105771057810579105801058110582105831058410585105861058710588105891059010591105921059310594105951059610597105981059910600106011060210603106041060510606106071060810609106101061110612106131061410615106161061710618106191062010621106221062310624106251062610627106281062910630106311063210633106341063510636106371063810639106401064110642106431064410645106461064710648106491065010651106521065310654106551065610657106581065910660106611066210663106641066510666106671066810669106701067110672106731067410675106761067710678106791068010681106821068310684106851068610687106881068910690106911069210693106941069510696106971069810699107001070110702107031070410705107061070710708107091071010711107121071310714107151071610717107181071910720107211072210723107241072510726107271072810729107301073110732107331073410735107361073710738107391074010741107421074310744107451074610747107481074910750107511075210753107541075510756107571075810759107601076110762107631076410765107661076710768107691077010771107721077310774107751077610777107781077910780107811078210783107841078510786107871078810789107901079110792107931079410795107961079710798107991080010801108021080310804108051080610807108081080910810108111081210813108141081510816108171081810819108201082110822108231082410825108261082710828108291083010831108321083310834108351083610837108381083910840108411084210843108441084510846108471084810849108501085110852108531085410855108561085710858108591086010861108621086310864108651086610867108681086910870108711087210873108741087510876108771087810879108801088110882108831088410885108861088710888108891089010891108921089310894108951089610897108981089910900109011090210903109041090510906109071090810909109101091110912109131091410915109161091710918109191092010921109221092310924109251092610927109281092910930109311093210933109341093510936109371093810939109401094110942109431094410945109461094710948109491095010951109521095310954109551095610957109581095910960109611096210963109641096510966109671096810969109701097110972109731097410975109761097710978109791098010981109821098310984109851098610987109881098910990109911099210993109941099510996109971099810999110001100111002110031100411005110061100711008110091101011011110121101311014110151101611017110181101911020110211102211023110241102511026110271102811029110301103111032110331103411035110361103711038110391104011041110421104311044110451104611047110481104911050110511105211053110541105511056110571105811059110601106111062110631106411065110661106711068110691107011071110721107311074110751107611077110781107911080110811108211083110841108511086110871108811089110901109111092110931109411095110961109711098110991110011101111021110311104111051110611107111081110911110111111111211113111141111511116111171111811119111201112111122111231112411125111261112711128111291113011131111321113311134111351113611137111381113911140111411114211143111441114511146111471114811149111501115111152111531115411155111561115711158111591116011161111621116311164111651116611167111681116911170111711117211173111741117511176111771117811179111801118111182111831118411185111861118711188111891119011191111921119311194111951119611197111981119911200112011120211203112041120511206112071120811209112101121111212112131121411215112161121711218112191122011221112221122311224112251122611227112281122911230112311123211233112341123511236112371123811239112401124111242112431124411245112461124711248112491125011251112521125311254112551125611257112581125911260112611126211263112641126511266112671126811269112701127111272112731127411275112761127711278112791128011281112821128311284112851128611287112881128911290112911129211293112941129511296112971129811299113001130111302113031130411305113061130711308113091131011311113121131311314113151131611317113181131911320113211132211323113241132511326113271132811329113301133111332113331133411335113361133711338113391134011341113421134311344113451134611347113481134911350113511135211353113541135511356113571135811359113601136111362113631136411365113661136711368113691137011371113721137311374113751137611377113781137911380113811138211383113841138511386113871138811389113901139111392113931139411395113961139711398113991140011401114021140311404114051140611407114081140911410114111141211413114141141511416114171141811419114201142111422114231142411425114261142711428114291143011431114321143311434114351143611437114381143911440114411144211443114441144511446114471144811449114501145111452114531145411455114561145711458114591146011461114621146311464114651146611467114681146911470114711147211473114741147511476114771147811479114801148111482114831148411485114861148711488114891149011491114921149311494114951149611497114981149911500115011150211503115041150511506115071150811509115101151111512115131151411515115161151711518115191152011521115221152311524115251152611527115281152911530115311153211533115341153511536115371153811539115401154111542115431154411545115461154711548115491155011551115521155311554115551155611557115581155911560115611156211563115641156511566115671156811569115701157111572115731157411575115761157711578115791158011581115821158311584115851158611587115881158911590115911159211593115941159511596115971159811599116001160111602116031160411605116061160711608116091161011611116121161311614116151161611617116181161911620116211162211623116241162511626116271162811629116301163111632116331163411635116361163711638116391164011641116421164311644116451164611647116481164911650116511165211653116541165511656116571165811659116601166111662116631166411665116661166711668116691167011671116721167311674116751167611677116781167911680116811168211683116841168511686116871168811689116901169111692116931169411695116961169711698116991170011701117021170311704117051170611707117081170911710117111171211713117141171511716117171171811719117201172111722117231172411725117261172711728117291173011731117321173311734117351173611737117381173911740117411174211743117441174511746117471174811749117501175111752117531175411755117561175711758117591176011761117621176311764117651176611767117681176911770117711177211773117741177511776117771177811779117801178111782117831178411785117861178711788117891179011791117921179311794117951179611797117981179911800118011180211803118041180511806118071180811809118101181111812118131181411815118161181711818118191182011821118221182311824118251182611827118281182911830118311183211833118341183511836118371183811839118401184111842118431184411845118461184711848118491185011851118521185311854118551185611857118581185911860118611186211863118641186511866118671186811869118701187111872118731187411875118761187711878118791188011881118821188311884118851188611887118881188911890118911189211893118941189511896118971189811899119001190111902119031190411905119061190711908119091191011911119121191311914119151191611917119181191911920119211192211923119241192511926119271192811929119301193111932119331193411935119361193711938119391194011941119421194311944119451194611947119481194911950119511195211953119541195511956119571195811959119601196111962119631196411965119661196711968119691197011971119721197311974119751197611977119781197911980119811198211983119841198511986119871198811989119901199111992119931199411995119961199711998119991200012001120021200312004120051200612007120081200912010120111201212013120141201512016120171201812019120201202112022120231202412025120261202712028120291203012031120321203312034120351203612037120381203912040120411204212043120441204512046120471204812049120501205112052120531205412055120561205712058120591206012061120621206312064120651206612067120681206912070120711207212073120741207512076120771207812079120801208112082120831208412085120861208712088120891209012091120921209312094120951209612097120981209912100121011210212103121041210512106121071210812109121101211112112121131211412115121161211712118121191212012121121221212312124121251212612127121281212912130121311213212133121341213512136121371213812139121401214112142121431214412145121461214712148121491215012151121521215312154121551215612157121581215912160121611216212163121641216512166121671216812169121701217112172121731217412175121761217712178121791218012181121821218312184121851218612187121881218912190121911219212193121941219512196121971219812199122001220112202122031220412205122061220712208122091221012211122121221312214122151221612217122181221912220122211222212223122241222512226122271222812229122301223112232122331223412235122361223712238122391224012241122421224312244122451224612247122481224912250122511225212253122541225512256122571225812259122601226112262122631226412265122661226712268122691227012271122721227312274122751227612277122781227912280122811228212283122841228512286122871228812289122901229112292122931229412295122961229712298122991230012301123021230312304123051230612307123081230912310123111231212313123141231512316123171231812319123201232112322123231232412325123261232712328123291233012331123321233312334123351233612337123381233912340123411234212343123441234512346123471234812349 |
- <?xml version="1.0"?>
- <!-- This file was automatically generated from C sources - DO NOT EDIT!
- To affect the contents of this file, edit the original C definitions,
- and/or use gtk-doc annotations. -->
- <repository version="1.2"
- xmlns="http://www.gtk.org/introspection/core/1.0"
- xmlns:c="http://www.gtk.org/introspection/c/1.0"
- xmlns:glib="http://www.gtk.org/introspection/glib/1.0">
- <include name="Gst" version="1.0"/>
- <include name="GstBase" version="1.0"/>
- <package name="gstreamer-video-1.0"/>
- <c:include name="gst/video/video.h"/>
- <namespace name="GstVideo"
- version="1.0"
- shared-library="libgstvideo-1.0.so.0"
- c:identifier-prefixes="Gst"
- c:symbol-prefixes="gst">
- <constant name="BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META"
- value="GstBufferPoolOptionVideoAffineTransformation"
- c:type="GST_BUFFER_POOL_OPTION_VIDEO_AFFINE_TRANSFORMATION_META">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="BUFFER_POOL_OPTION_VIDEO_ALIGNMENT"
- value="GstBufferPoolOptionVideoAlignment"
- c:type="GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT">
- <doc xml:space="preserve">A bufferpool option to enable extra padding. When a bufferpool supports this
- option, gst_buffer_pool_config_set_video_alignment() can be called.
- When this option is enabled on the bufferpool,
- #GST_BUFFER_POOL_OPTION_VIDEO_META should also be enabled.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META"
- value="GstBufferPoolOptionVideoGLTextureUploadMeta"
- c:type="GST_BUFFER_POOL_OPTION_VIDEO_GL_TEXTURE_UPLOAD_META"
- version="1.2.2">
- <doc xml:space="preserve">An option that can be activated on a bufferpool to request gl texture upload
- meta on buffers from the pool.
- When this option is enabled on the bufferpool,
- @GST_BUFFER_POOL_OPTION_VIDEO_META should also be enabled.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="BUFFER_POOL_OPTION_VIDEO_META"
- value="GstBufferPoolOptionVideoMeta"
- c:type="GST_BUFFER_POOL_OPTION_VIDEO_META">
- <doc xml:space="preserve">An option that can be activated on bufferpool to request video metadata
- on buffers from the pool.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META"
- value="meta:GstVideoAffineTransformation"
- c:type="GST_CAPS_FEATURE_META_GST_VIDEO_AFFINE_TRANSFORMATION_META">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META"
- value="meta:GstVideoGLTextureUploadMeta"
- c:type="GST_CAPS_FEATURE_META_GST_VIDEO_GL_TEXTURE_UPLOAD_META">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="CAPS_FEATURE_META_GST_VIDEO_META"
- value="meta:GstVideoMeta"
- c:type="GST_CAPS_FEATURE_META_GST_VIDEO_META">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION"
- value="meta:GstVideoOverlayComposition"
- c:type="GST_CAPS_FEATURE_META_GST_VIDEO_OVERLAY_COMPOSITION">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <interface name="ColorBalance"
- c:symbol-prefix="color_balance"
- c:type="GstColorBalance"
- glib:type-name="GstColorBalance"
- glib:get-type="gst_color_balance_get_type"
- glib:type-struct="ColorBalanceInterface">
- <doc xml:space="preserve"><refsect2><para>
- This interface is implemented by elements which can perform some color
- balance operation on video frames they process. For example, modifying
- the brightness, contrast, hue or saturation.
- </para><para>
- Example elements are 'xvimagesink' and 'colorbalance'
- </para>
- </refsect2></doc>
- <virtual-method name="get_balance_type" invoker="get_balance_type">
- <doc xml:space="preserve">Get the #GstColorBalanceType of this implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A the #GstColorBalanceType.</doc>
- <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">The #GstColorBalance implementation</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_value" invoker="get_value">
- <doc xml:space="preserve">Retrieve the current value of the indicated channel, between min_value
- and max_value.
- See Also: The #GstColorBalanceChannel.min_value and
- #GstColorBalanceChannel.max_value members of the
- #GstColorBalanceChannel object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The current value of the channel.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="list_channels" invoker="list_channels">
- <doc xml:space="preserve">Retrieve a list of the available channels.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A
- GList containing pointers to #GstColorBalanceChannel
- objects. The list is owned by the #GstColorBalance
- instance and must not be freed.</doc>
- <type name="GLib.List" c:type="const GList*">
- <type name="ColorBalanceChannel"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_value" invoker="set_value">
- <doc xml:space="preserve">Sets the current value of the channel to the passed value, which must
- be between min_value and max_value.
- See Also: The #GstColorBalanceChannel.min_value and
- #GstColorBalanceChannel.max_value members of the
- #GstColorBalanceChannel object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value for the channel.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="value_changed" invoker="value_changed">
- <doc xml:space="preserve">A helper function called by implementations of the GstColorBalance
- interface. It fires the #GstColorBalance::value-changed signal on the
- instance, and the #GstColorBalanceChannel::value-changed signal on the
- channel object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel whose value has changed</doc>
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value of the channel</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_balance_type"
- c:identifier="gst_color_balance_get_balance_type">
- <doc xml:space="preserve">Get the #GstColorBalanceType of this implementation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A the #GstColorBalanceType.</doc>
- <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">The #GstColorBalance implementation</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_value" c:identifier="gst_color_balance_get_value">
- <doc xml:space="preserve">Retrieve the current value of the indicated channel, between min_value
- and max_value.
- See Also: The #GstColorBalanceChannel.min_value and
- #GstColorBalanceChannel.max_value members of the
- #GstColorBalanceChannel object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The current value of the channel.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </parameter>
- </parameters>
- </method>
- <method name="list_channels"
- c:identifier="gst_color_balance_list_channels">
- <doc xml:space="preserve">Retrieve a list of the available channels.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A
- GList containing pointers to #GstColorBalanceChannel
- objects. The list is owned by the #GstColorBalance
- instance and must not be freed.</doc>
- <type name="GLib.List" c:type="const GList*">
- <type name="ColorBalanceChannel"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_value" c:identifier="gst_color_balance_set_value">
- <doc xml:space="preserve">Sets the current value of the channel to the passed value, which must
- be between min_value and max_value.
- See Also: The #GstColorBalanceChannel.min_value and
- #GstColorBalanceChannel.max_value members of the
- #GstColorBalanceChannel object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value for the channel.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="value_changed"
- c:identifier="gst_color_balance_value_changed">
- <doc xml:space="preserve">A helper function called by implementations of the GstColorBalance
- interface. It fires the #GstColorBalance::value-changed signal on the
- instance, and the #GstColorBalanceChannel::value-changed signal on the
- channel object.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </instance-parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel whose value has changed</doc>
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value of the channel</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <glib:signal name="value-changed" when="last">
- <doc xml:space="preserve">Fired when the value of the indicated channel has changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">The #GstColorBalanceChannel</doc>
- <type name="ColorBalanceChannel"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </glib:signal>
- </interface>
- <class name="ColorBalanceChannel"
- c:symbol-prefix="color_balance_channel"
- c:type="GstColorBalanceChannel"
- parent="GObject.Object"
- glib:type-name="GstColorBalanceChannel"
- glib:get-type="gst_color_balance_channel_get_type"
- glib:type-struct="ColorBalanceChannelClass">
- <doc xml:space="preserve"><refsect2><para>The #GstColorBalanceChannel object represents a parameter
- for modifying the color balance implemented by an element providing the
- #GstColorBalance interface. For example, Hue or Saturation.
- </para></refsect2></doc>
- <virtual-method name="value_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="channel" transfer-ownership="none">
- <type name="ColorBalanceChannel" c:type="GstColorBalanceChannel*"/>
- </instance-parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <field name="parent">
- <type name="GObject.Object" c:type="GObject"/>
- </field>
- <field name="label">
- <doc xml:space="preserve">A string containing a descriptive name for this channel</doc>
- <type name="utf8" c:type="gchar*"/>
- </field>
- <field name="min_value">
- <doc xml:space="preserve">The minimum valid value for this channel.</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="max_value">
- <doc xml:space="preserve">The maximum valid value for this channel.</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <glib:signal name="value-changed" when="last">
- <doc xml:space="preserve">Fired when the value of the indicated channel has changed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </glib:signal>
- </class>
- <record name="ColorBalanceChannelClass"
- c:type="GstColorBalanceChannelClass"
- glib:is-gtype-struct-for="ColorBalanceChannel">
- <doc xml:space="preserve">Color-balance channel class.</doc>
- <field name="parent">
- <doc xml:space="preserve">the parent class</doc>
- <type name="GObject.ObjectClass" c:type="GObjectClass"/>
- </field>
- <field name="value_changed">
- <callback name="value_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="channel" transfer-ownership="none">
- <type name="ColorBalanceChannel"
- c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="ColorBalanceInterface"
- c:type="GstColorBalanceInterface"
- glib:is-gtype-struct-for="ColorBalance">
- <doc xml:space="preserve">Color-balance interface.</doc>
- <field name="iface">
- <doc xml:space="preserve">the parent interface</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="list_channels">
- <callback name="list_channels">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A
- GList containing pointers to #GstColorBalanceChannel
- objects. The list is owned by the #GstColorBalance
- instance and must not be freed.</doc>
- <type name="GLib.List" c:type="const GList*">
- <type name="ColorBalanceChannel"/>
- </type>
- </return-value>
- <parameters>
- <parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_value">
- <callback name="set_value">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
- <type name="ColorBalanceChannel"
- c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value for the channel.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_value">
- <callback name="get_value">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The current value of the channel.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel instance</doc>
- <type name="ColorBalanceChannel"
- c:type="GstColorBalanceChannel*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_balance_type">
- <callback name="get_balance_type">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A the #GstColorBalanceType.</doc>
- <type name="ColorBalanceType" c:type="GstColorBalanceType"/>
- </return-value>
- <parameters>
- <parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">The #GstColorBalance implementation</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="value_changed">
- <callback name="value_changed">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="balance" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalance instance</doc>
- <type name="ColorBalance" c:type="GstColorBalance*"/>
- </parameter>
- <parameter name="channel" transfer-ownership="none">
- <doc xml:space="preserve">A #GstColorBalanceChannel whose value has changed</doc>
- <type name="ColorBalanceChannel"
- c:type="GstColorBalanceChannel*"/>
- </parameter>
- <parameter name="value" transfer-ownership="none">
- <doc xml:space="preserve">The new value of the channel</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <enumeration name="ColorBalanceType"
- glib:type-name="GstColorBalanceType"
- glib:get-type="gst_color_balance_type_get_type"
- c:type="GstColorBalanceType">
- <doc xml:space="preserve">An enumeration indicating whether an element implements color balancing
- operations in software or in dedicated hardware. In general, dedicated
- hardware implementations (such as those provided by xvimagesink) are
- preferred.</doc>
- <member name="hardware"
- value="0"
- c:identifier="GST_COLOR_BALANCE_HARDWARE"
- glib:nick="hardware">
- <doc xml:space="preserve">Color balance is implemented with dedicated
- hardware.</doc>
- </member>
- <member name="software"
- value="1"
- c:identifier="GST_COLOR_BALANCE_SOFTWARE"
- glib:nick="software">
- <doc xml:space="preserve">Color balance is implemented via software
- processing.</doc>
- </member>
- </enumeration>
- <constant name="META_TAG_VIDEO_COLORSPACE_STR"
- value="colorspace"
- c:type="GST_META_TAG_VIDEO_COLORSPACE_STR"
- version="1.2">
- <doc xml:space="preserve">This metadata stays relevant as long as video colorspace is unchanged.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="META_TAG_VIDEO_ORIENTATION_STR"
- value="orientation"
- c:type="GST_META_TAG_VIDEO_ORIENTATION_STR"
- version="1.2">
- <doc xml:space="preserve">This metadata stays relevant as long as video orientation is unchanged.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="META_TAG_VIDEO_SIZE_STR"
- value="size"
- c:type="GST_META_TAG_VIDEO_SIZE_STR"
- version="1.2">
- <doc xml:space="preserve">This metadata stays relevant as long as video size is unchanged.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="META_TAG_VIDEO_STR"
- value="video"
- c:type="GST_META_TAG_VIDEO_STR"
- version="1.2">
- <doc xml:space="preserve">This metadata is relevant for video streams.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <interface name="Navigation"
- c:symbol-prefix="navigation"
- c:type="GstNavigation"
- glib:type-name="GstNavigation"
- glib:get-type="gst_navigation_get_type"
- glib:type-struct="NavigationInterface">
- <doc xml:space="preserve">The Navigation interface is used for creating and injecting navigation related
- events such as mouse button presses, cursor motion and key presses. The associated
- library also provides methods for parsing received events, and for sending and
- receiving navigation related bus events. One main usecase is DVD menu navigation.
- The main parts of the API are:
- <itemizedlist>
- <listitem>
- <para>
- The GstNavigation interface, implemented by elements which provide an application
- with the ability to create and inject navigation events into the pipeline.
- </para>
- </listitem>
- <listitem>
- <para>
- GstNavigation event handling API. GstNavigation events are created in response to
- calls on a GstNavigation interface implementation, and sent in the pipeline. Upstream
- elements can use the navigation event API functions to parse the contents of received
- messages.
- </para>
- </listitem>
- <listitem>
- <para>
- GstNavigation message handling API. GstNavigation messages may be sent on the message
- bus to inform applications of navigation related changes in the pipeline, such as the
- mouse moving over a clickable region, or the set of available angles changing.
- </para><para>
- The GstNavigation message functions provide functions for creating and parsing
- custom bus messages for signaling GstNavigation changes.
- </para>
- </listitem>
- </itemizedlist></doc>
- <function name="event_get_type"
- c:identifier="gst_navigation_event_get_type">
- <doc xml:space="preserve">Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
- #GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event.</doc>
- <return-value transfer-ownership="none">
- <type name="NavigationEventType" c:type="GstNavigationEventType"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_parse_command"
- c:identifier="gst_navigation_event_parse_command">
- <doc xml:space="preserve">Inspect a #GstNavigation command event and retrieve the enum value of the
- associated command.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the navigation command could be extracted, otherwise FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="command" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to GstNavigationCommand to receive the type of the
- navigation event.</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_parse_key_event"
- c:identifier="gst_navigation_event_parse_key_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a location to receive the string identifying the key
- press. The returned string is owned by the event, and valid only until the
- event is unreffed.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_parse_mouse_button_event"
- c:identifier="gst_navigation_event_parse_mouse_button_event">
- <doc xml:space="preserve">Retrieve the details of either a #GstNavigation mouse button press event or
- a mouse button release event. Determine which type the event is using
- gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the button number and both coordinates could be extracted,
- otherwise FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="button" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gint that will receive the button number associated
- with the event.</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse button
- event.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse button
- event.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="event_parse_mouse_move_event"
- c:identifier="gst_navigation_event_parse_mouse_move_event">
- <doc xml:space="preserve">Inspect a #GstNavigation mouse movement event and extract the coordinates
- of the event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if both coordinates could be extracted, otherwise FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse movement.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse movement.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_get_type"
- c:identifier="gst_navigation_message_get_type">
- <doc xml:space="preserve">Check a bus message to see if it is a #GstNavigation event, and return
- the #GstNavigationMessageType identifying the type of the message if so.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The type of the #GstMessage, or
- #GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
- notification.</doc>
- <type name="NavigationMessageType"
- c:type="GstNavigationMessageType"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_new_angles_changed"
- c:identifier="gst_navigation_message_new_angles_changed">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
- that the current angle, or current number of angles available in a
- multiangle video has changed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">The currently selected angle.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">The number of viewing angles now available.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_new_commands_changed"
- c:identifier="gst_navigation_message_new_commands_changed">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_new_event"
- c:identifier="gst_navigation_message_new_event"
- version="1.6">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_EVENT.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A navigation #GstEvent</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_new_mouse_over"
- c:identifier="gst_navigation_message_new_mouse_over">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_MOUSE_OVER.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mouse has entered a clickable area of the display.
- %FALSE if it over a non-clickable area.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_parse_angles_changed"
- c:identifier="gst_navigation_message_parse_angles_changed">
- <doc xml:space="preserve">Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
- and extract the @cur_angle and @n_angles parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a #guint to receive the new current angle number,
- or NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a #guint to receive the new angle count, or NULL.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_parse_event"
- c:identifier="gst_navigation_message_parse_event"
- version="1.6">
- <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_EVENT
- and extract contained #GstEvent. The caller must unref the @event when done
- with it.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="event"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #GstEvent to receive the
- contained navigation event.</doc>
- <type name="Gst.Event" c:type="GstEvent**"/>
- </parameter>
- </parameters>
- </function>
- <function name="message_parse_mouse_over"
- c:identifier="gst_navigation_message_parse_mouse_over">
- <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
- and extract the active/inactive flag. If the mouse over event is marked
- active, it indicates that the mouse is over a clickable area.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a gboolean to receive the active/inactive state,
- or NULL.</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_get_type"
- c:identifier="gst_navigation_query_get_type">
- <doc xml:space="preserve">Inspect a #GstQuery and return the #GstNavigationQueryType associated with
- it if it is a #GstNavigation query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstNavigationQueryType of the query, or
- #GST_NAVIGATION_QUERY_INVALID</doc>
- <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to inspect</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_new_angles"
- c:identifier="gst_navigation_query_new_angles">
- <doc xml:space="preserve">Create a new #GstNavigation angles query. When executed, it will
- query the pipeline for the set of currently available angles, which may be
- greater than one in a multiangle video.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new query.</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </return-value>
- </function>
- <function name="query_new_commands"
- c:identifier="gst_navigation_query_new_commands">
- <doc xml:space="preserve">Create a new #GstNavigation commands query. When executed, it will
- query the pipeline for the set of currently available commands.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new query.</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </return-value>
- </function>
- <function name="query_parse_angles"
- c:identifier="gst_navigation_query_parse_angles">
- <doc xml:space="preserve">Parse the current angle number in the #GstNavigation angles @query into the
- #guint pointed to by the @cur_angle variable, and the number of available
- angles into the #guint pointed to by the @n_angles variable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a #guint into which to store the currently selected
- angle value from the query, or NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a #guint into which to store the number of angles
- value from the query, or NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_parse_commands_length"
- c:identifier="gst_navigation_query_parse_commands_length">
- <doc xml:space="preserve">Parse the number of commands in the #GstNavigation commands @query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="n_cmds"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the number of commands in this query.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_parse_commands_nth"
- c:identifier="gst_navigation_query_parse_commands_nth">
- <doc xml:space="preserve">Parse the #GstNavigation command query and retrieve the @nth command from
- it into @cmd. If the list contains less elements than @nth, @cmd will be
- set to #GST_NAVIGATION_COMMAND_INVALID.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="nth" transfer-ownership="none">
- <doc xml:space="preserve">the nth command to retrieve.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="cmd"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to store the nth command into.</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_set_angles"
- c:identifier="gst_navigation_query_set_angles">
- <doc xml:space="preserve">Set the #GstNavigation angles query result field in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">the current viewing angle to set.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">the number of viewing angles to set.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="query_set_commands"
- c:identifier="gst_navigation_query_set_commands"
- introspectable="0">
- <doc xml:space="preserve">Set the #GstNavigation command query result fields in @query. The number
- of commands passed must be equal to @n_commands.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="n_cmds" transfer-ownership="none">
- <doc xml:space="preserve">the number of commands to set.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="..." transfer-ownership="none">
- <doc xml:space="preserve">A list of @GstNavigationCommand values, @n_cmds entries long.</doc>
- <varargs/>
- </parameter>
- </parameters>
- </function>
- <function name="query_set_commandsv"
- c:identifier="gst_navigation_query_set_commandsv">
- <doc xml:space="preserve">Set the #GstNavigation command query result fields in @query. The number
- of commands passed must be equal to @n_commands.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="n_cmds" transfer-ownership="none">
- <doc xml:space="preserve">the number of commands to set.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cmds" transfer-ownership="none">
- <doc xml:space="preserve">An array containing @n_cmds @GstNavigationCommand values.</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="send_event" invoker="send_event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="navigation" transfer-ownership="none">
- <type name="Navigation" c:type="GstNavigation*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="send_command" c:identifier="gst_navigation_send_command">
- <doc xml:space="preserve">Sends the indicated command to the navigation interface.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="navigation" transfer-ownership="none">
- <doc xml:space="preserve">The navigation interface instance</doc>
- <type name="Navigation" c:type="GstNavigation*"/>
- </instance-parameter>
- <parameter name="command" transfer-ownership="none">
- <doc xml:space="preserve">The command to issue</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_event" c:identifier="gst_navigation_send_event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="navigation" transfer-ownership="none">
- <type name="Navigation" c:type="GstNavigation*"/>
- </instance-parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_key_event"
- c:identifier="gst_navigation_send_key_event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="navigation" transfer-ownership="none">
- <doc xml:space="preserve">The navigation interface instance</doc>
- <type name="Navigation" c:type="GstNavigation*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The type of the key event. Recognised values are "key-press" and
- "key-release"</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">Character representation of the key. This is typically as produced
- by XKeysymToString.</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- </parameters>
- </method>
- <method name="send_mouse_event"
- c:identifier="gst_navigation_send_mouse_event">
- <doc xml:space="preserve">Sends a mouse event to the navigation interface. Mouse event coordinates
- are sent relative to the display space of the related output area. This is
- usually the size in pixels of the window associated with the element
- implementing the #GstNavigation interface.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="navigation" transfer-ownership="none">
- <doc xml:space="preserve">The navigation interface instance</doc>
- <type name="Navigation" c:type="GstNavigation*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">The type of mouse event, as a text string. Recognised values are
- "mouse-button-press", "mouse-button-release" and "mouse-move".</doc>
- <type name="utf8" c:type="const char*"/>
- </parameter>
- <parameter name="button" transfer-ownership="none">
- <doc xml:space="preserve">The button number of the button being pressed or released. Pass 0
- for mouse-move events.</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">The x coordinate of the mouse event.</doc>
- <type name="gdouble" c:type="double"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">The y coordinate of the mouse event.</doc>
- <type name="gdouble" c:type="double"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <enumeration name="NavigationCommand"
- glib:type-name="GstNavigationCommand"
- glib:get-type="gst_navigation_command_get_type"
- c:type="GstNavigationCommand">
- <doc xml:space="preserve">A set of commands that may be issued to an element providing the
- #GstNavigation interface. The available commands can be queried via
- the gst_navigation_query_new_commands() query.
- For convenience in handling DVD navigation, the MENU commands are aliased as:
- GST_NAVIGATION_COMMAND_DVD_MENU = @GST_NAVIGATION_COMMAND_MENU1
- GST_NAVIGATION_COMMAND_DVD_TITLE_MENU = @GST_NAVIGATION_COMMAND_MENU2
- GST_NAVIGATION_COMMAND_DVD_ROOT_MENU = @GST_NAVIGATION_COMMAND_MENU3
- GST_NAVIGATION_COMMAND_DVD_SUBPICTURE_MENU = @GST_NAVIGATION_COMMAND_MENU4
- GST_NAVIGATION_COMMAND_DVD_AUDIO_MENU = @GST_NAVIGATION_COMMAND_MENU5
- GST_NAVIGATION_COMMAND_DVD_ANGLE_MENU = @GST_NAVIGATION_COMMAND_MENU6
- GST_NAVIGATION_COMMAND_DVD_CHAPTER_MENU = @GST_NAVIGATION_COMMAND_MENU7</doc>
- <member name="invalid"
- value="0"
- c:identifier="GST_NAVIGATION_COMMAND_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">An invalid command entry</doc>
- </member>
- <member name="menu1"
- value="1"
- c:identifier="GST_NAVIGATION_COMMAND_MENU1"
- glib:nick="menu1">
- <doc xml:space="preserve">Execute navigation menu command 1. For DVD,
- this enters the DVD root menu, or exits back to the title from the menu.</doc>
- </member>
- <member name="menu2"
- value="2"
- c:identifier="GST_NAVIGATION_COMMAND_MENU2"
- glib:nick="menu2">
- <doc xml:space="preserve">Execute navigation menu command 2. For DVD,
- this jumps to the DVD title menu.</doc>
- </member>
- <member name="menu3"
- value="3"
- c:identifier="GST_NAVIGATION_COMMAND_MENU3"
- glib:nick="menu3">
- <doc xml:space="preserve">Execute navigation menu command 3. For DVD,
- this jumps into the DVD root menu.</doc>
- </member>
- <member name="menu4"
- value="4"
- c:identifier="GST_NAVIGATION_COMMAND_MENU4"
- glib:nick="menu4">
- <doc xml:space="preserve">Execute navigation menu command 4. For DVD,
- this jumps to the Subpicture menu.</doc>
- </member>
- <member name="menu5"
- value="5"
- c:identifier="GST_NAVIGATION_COMMAND_MENU5"
- glib:nick="menu5">
- <doc xml:space="preserve">Execute navigation menu command 5. For DVD,
- the jumps to the audio menu.</doc>
- </member>
- <member name="menu6"
- value="6"
- c:identifier="GST_NAVIGATION_COMMAND_MENU6"
- glib:nick="menu6">
- <doc xml:space="preserve">Execute navigation menu command 6. For DVD,
- this jumps to the angles menu.</doc>
- </member>
- <member name="menu7"
- value="7"
- c:identifier="GST_NAVIGATION_COMMAND_MENU7"
- glib:nick="menu7">
- <doc xml:space="preserve">Execute navigation menu command 7. For DVD,
- this jumps to the chapter menu.</doc>
- </member>
- <member name="left"
- value="20"
- c:identifier="GST_NAVIGATION_COMMAND_LEFT"
- glib:nick="left">
- <doc xml:space="preserve">Select the next button to the left in a menu,
- if such a button exists.</doc>
- </member>
- <member name="right"
- value="21"
- c:identifier="GST_NAVIGATION_COMMAND_RIGHT"
- glib:nick="right">
- <doc xml:space="preserve">Select the next button to the right in a menu,
- if such a button exists.</doc>
- </member>
- <member name="up"
- value="22"
- c:identifier="GST_NAVIGATION_COMMAND_UP"
- glib:nick="up">
- <doc xml:space="preserve">Select the button above the current one in a
- menu, if such a button exists.</doc>
- </member>
- <member name="down"
- value="23"
- c:identifier="GST_NAVIGATION_COMMAND_DOWN"
- glib:nick="down">
- <doc xml:space="preserve">Select the button below the current one in a
- menu, if such a button exists.</doc>
- </member>
- <member name="activate"
- value="24"
- c:identifier="GST_NAVIGATION_COMMAND_ACTIVATE"
- glib:nick="activate">
- <doc xml:space="preserve">Activate (click) the currently selected
- button in a menu, if such a button exists.</doc>
- </member>
- <member name="prev_angle"
- value="30"
- c:identifier="GST_NAVIGATION_COMMAND_PREV_ANGLE"
- glib:nick="prev-angle">
- <doc xml:space="preserve">Switch to the previous angle in a
- multiangle feature.</doc>
- </member>
- <member name="next_angle"
- value="31"
- c:identifier="GST_NAVIGATION_COMMAND_NEXT_ANGLE"
- glib:nick="next-angle">
- <doc xml:space="preserve">Switch to the next angle in a multiangle
- feature.</doc>
- </member>
- </enumeration>
- <enumeration name="NavigationEventType"
- glib:type-name="GstNavigationEventType"
- glib:get-type="gst_navigation_event_type_get_type"
- c:type="GstNavigationEventType">
- <doc xml:space="preserve">Enum values for the various events that an element implementing the
- GstNavigation interface might send up the pipeline.</doc>
- <member name="invalid"
- value="0"
- c:identifier="GST_NAVIGATION_EVENT_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">Returned from
- gst_navigation_event_get_type() when the passed event is not a navigation event.</doc>
- </member>
- <member name="key_press"
- value="1"
- c:identifier="GST_NAVIGATION_EVENT_KEY_PRESS"
- glib:nick="key-press">
- <doc xml:space="preserve">A key press event. Use
- gst_navigation_event_parse_key_event() to extract the details from the event.</doc>
- </member>
- <member name="key_release"
- value="2"
- c:identifier="GST_NAVIGATION_EVENT_KEY_RELEASE"
- glib:nick="key-release">
- <doc xml:space="preserve">A key release event. Use
- gst_navigation_event_parse_key_event() to extract the details from the event.</doc>
- </member>
- <member name="mouse_button_press"
- value="3"
- c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_PRESS"
- glib:nick="mouse-button-press">
- <doc xml:space="preserve">A mouse button press event. Use
- gst_navigation_event_parse_mouse_button_event() to extract the details from the
- event.</doc>
- </member>
- <member name="mouse_button_release"
- value="4"
- c:identifier="GST_NAVIGATION_EVENT_MOUSE_BUTTON_RELEASE"
- glib:nick="mouse-button-release">
- <doc xml:space="preserve">A mouse button release event. Use
- gst_navigation_event_parse_mouse_button_event() to extract the details from the
- event.</doc>
- </member>
- <member name="mouse_move"
- value="5"
- c:identifier="GST_NAVIGATION_EVENT_MOUSE_MOVE"
- glib:nick="mouse-move">
- <doc xml:space="preserve">A mouse movement event. Use
- gst_navigation_event_parse_mouse_move_event() to extract the details from the
- event.</doc>
- </member>
- <member name="command"
- value="6"
- c:identifier="GST_NAVIGATION_EVENT_COMMAND"
- glib:nick="command">
- <doc xml:space="preserve">A navigation command event. Use
- gst_navigation_event_parse_command() to extract the details from the event.</doc>
- </member>
- </enumeration>
- <record name="NavigationInterface"
- c:type="GstNavigationInterface"
- glib:is-gtype-struct-for="Navigation">
- <doc xml:space="preserve">Navigation interface.</doc>
- <field name="iface">
- <doc xml:space="preserve">the parent interface</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="send_event">
- <callback name="send_event">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="navigation" transfer-ownership="none">
- <type name="Navigation" c:type="GstNavigation*"/>
- </parameter>
- <parameter name="structure" transfer-ownership="none">
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <enumeration name="NavigationMessageType"
- glib:type-name="GstNavigationMessageType"
- glib:get-type="gst_navigation_message_type_get_type"
- c:type="GstNavigationMessageType">
- <doc xml:space="preserve">A set of notifications that may be received on the bus when navigation
- related status changes.</doc>
- <member name="invalid"
- value="0"
- c:identifier="GST_NAVIGATION_MESSAGE_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">Returned from
- gst_navigation_message_get_type() when the passed message is not a
- navigation message.</doc>
- </member>
- <member name="mouse_over"
- value="1"
- c:identifier="GST_NAVIGATION_MESSAGE_MOUSE_OVER"
- glib:nick="mouse-over">
- <doc xml:space="preserve">Sent when the mouse moves over or leaves a
- clickable region of the output, such as a DVD menu button.</doc>
- </member>
- <member name="commands_changed"
- value="2"
- c:identifier="GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED"
- glib:nick="commands-changed">
- <doc xml:space="preserve">Sent when the set of available commands
- changes and should re-queried by interested applications.</doc>
- </member>
- <member name="angles_changed"
- value="3"
- c:identifier="GST_NAVIGATION_MESSAGE_ANGLES_CHANGED"
- glib:nick="angles-changed">
- <doc xml:space="preserve">Sent when display angles in a multi-angle
- feature (such as a multiangle DVD) change - either angles have appeared or
- disappeared.</doc>
- </member>
- <member name="event"
- value="4"
- c:identifier="GST_NAVIGATION_MESSAGE_EVENT"
- glib:nick="event">
- <doc xml:space="preserve">Sent when a navigation event was not handled
- by any element in the pipeline (Since 1.6)</doc>
- </member>
- </enumeration>
- <enumeration name="NavigationQueryType"
- glib:type-name="GstNavigationQueryType"
- glib:get-type="gst_navigation_query_type_get_type"
- c:type="GstNavigationQueryType">
- <doc xml:space="preserve">Tyoes of navigation interface queries.</doc>
- <member name="invalid"
- value="0"
- c:identifier="GST_NAVIGATION_QUERY_INVALID"
- glib:nick="invalid">
- <doc xml:space="preserve">invalid query</doc>
- </member>
- <member name="commands"
- value="1"
- c:identifier="GST_NAVIGATION_QUERY_COMMANDS"
- glib:nick="commands">
- <doc xml:space="preserve">command query</doc>
- </member>
- <member name="angles"
- value="2"
- c:identifier="GST_NAVIGATION_QUERY_ANGLES"
- glib:nick="angles">
- <doc xml:space="preserve">viewing angle query</doc>
- </member>
- </enumeration>
- <constant name="VIDEO_COLORIMETRY_BT2020"
- value="bt2020"
- c:type="GST_VIDEO_COLORIMETRY_BT2020">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_COLORIMETRY_BT601"
- value="bt601"
- c:type="GST_VIDEO_COLORIMETRY_BT601">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_COLORIMETRY_BT709"
- value="bt709"
- c:type="GST_VIDEO_COLORIMETRY_BT709">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_COLORIMETRY_SMPTE240M"
- value="smpte240m"
- c:type="GST_VIDEO_COLORIMETRY_SMPTE240M">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_COLORIMETRY_SRGB"
- value="sRGB"
- c:type="GST_VIDEO_COLORIMETRY_SRGB">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_COMP_A" value="3" c:type="GST_VIDEO_COMP_A">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_B" value="2" c:type="GST_VIDEO_COMP_B">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_G" value="1" c:type="GST_VIDEO_COMP_G">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_INDEX" value="0" c:type="GST_VIDEO_COMP_INDEX">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_PALETTE"
- value="1"
- c:type="GST_VIDEO_COMP_PALETTE">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_R" value="0" c:type="GST_VIDEO_COMP_R">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_U" value="1" c:type="GST_VIDEO_COMP_U">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_V" value="2" c:type="GST_VIDEO_COMP_V">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_COMP_Y" value="0" c:type="GST_VIDEO_COMP_Y">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_ALPHA_MODE"
- value="GstVideoConverter.alpha-mode"
- c:type="GST_VIDEO_CONVERTER_OPT_ALPHA_MODE">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_ALPHA_MODE, the alpha mode to use.
- Default is #GST_VIDEO_ALPHA_MODE_COPY.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_ALPHA_VALUE"
- value="GstVideoConverter.alpha-value"
- c:type="GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE">
- <doc xml:space="preserve">#G_TYPE_DOUBLE, the alpha color value to use.
- Default to 1.0</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_BORDER_ARGB"
- value="GstVideoConverter.border-argb"
- c:type="GST_VIDEO_CONVERTER_OPT_BORDER_ARGB">
- <doc xml:space="preserve">#G_TYPE_UINT, the border color to use if #GST_VIDEO_CONVERTER_OPT_FILL_BORDER
- is set to %TRUE. The color is in ARGB format.
- Default 0xff000000</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_CHROMA_MODE"
- value="GstVideoConverter.chroma-mode"
- c:type="GST_VIDEO_CONVERTER_OPT_CHROMA_MODE">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_CHROMA_MODE, set the chroma resample mode subsampled
- formats. Default is #GST_VIDEO_CHROMA_MODE_FULL.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD"
- value="GstVideoConverter.chroma-resampler-method"
- c:type="GST_VIDEO_CONVERTER_OPT_CHROMA_RESAMPLER_METHOD">
- <doc xml:space="preserve">#GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
- chroma resampling. Other options for the resampler can be used, see
- the #GstResampler. Default is #GST_RESAMPLER_METHOD_LINEAR</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_DEST_HEIGHT"
- value="GstVideoConverter.dest-height"
- c:type="GST_VIDEO_CONVERTER_OPT_DEST_HEIGHT">
- <doc xml:space="preserve">#G_TYPE_INT, height in the destination frame, default destination height</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_DEST_WIDTH"
- value="GstVideoConverter.dest-width"
- c:type="GST_VIDEO_CONVERTER_OPT_DEST_WIDTH">
- <doc xml:space="preserve">#G_TYPE_INT, width in the destination frame, default destination width</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_DEST_X"
- value="GstVideoConverter.dest-x"
- c:type="GST_VIDEO_CONVERTER_OPT_DEST_X">
- <doc xml:space="preserve">#G_TYPE_INT, x position in the destination frame, default 0</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_DEST_Y"
- value="GstVideoConverter.dest-y"
- c:type="GST_VIDEO_CONVERTER_OPT_DEST_Y">
- <doc xml:space="preserve">#G_TYPE_INT, y position in the destination frame, default 0</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_DITHER_METHOD"
- value="GstVideoConverter.dither-method"
- c:type="GST_VIDEO_CONVERTER_OPT_DITHER_METHOD">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_DITHER_METHOD, The dither method to use when
- changing bit depth.
- Default is #GST_VIDEO_DITHER_BAYER.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION"
- value="GstVideoConverter.dither-quantization"
- c:type="GST_VIDEO_CONVERTER_OPT_DITHER_QUANTIZATION">
- <doc xml:space="preserve">#G_TYPE_UINT, The quantization amount to dither to. Components will be
- quantized to multiples of this value.
- Default is 1</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_FILL_BORDER"
- value="GstVideoConverter.fill-border"
- c:type="GST_VIDEO_CONVERTER_OPT_FILL_BORDER">
- <doc xml:space="preserve">#G_TYPE_BOOLEAN, if the destination rectangle does not fill the complete
- destination image, render a border with
- #GST_VIDEO_CONVERTER_OPT_BORDER_ARGB. Otherwise the unusded pixels in the
- destination are untouched. Default %TRUE.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_GAMMA_MODE"
- value="GstVideoConverter.gamma-mode"
- c:type="GST_VIDEO_CONVERTER_OPT_GAMMA_MODE">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_GAMMA_MODE, set the gamma mode.
- Default is #GST_VIDEO_GAMMA_MODE_NONE.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_MATRIX_MODE"
- value="GstVideoConverter.matrix-mode"
- c:type="GST_VIDEO_CONVERTER_OPT_MATRIX_MODE">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_MATRIX_MODE, set the color matrix conversion mode for
- converting between Y'PbPr and non-linear RGB (R'G'B').
- Default is #GST_VIDEO_MATRIX_MODE_FULL.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_PRIMARIES_MODE"
- value="GstVideoConverter.primaries-mode"
- c:type="GST_VIDEO_CONVERTER_OPT_PRIMARIES_MODE">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_PRIMARIES_MODE, set the primaries conversion mode.
- Default is #GST_VIDEO_PRIMARIES_MODE_NONE.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_RESAMPLER_METHOD"
- value="GstVideoConverter.resampler-method"
- c:type="GST_VIDEO_CONVERTER_OPT_RESAMPLER_METHOD">
- <doc xml:space="preserve">#GST_TYPE_RESAMPLER_METHOD, The resampler method to use for
- resampling. Other options for the resampler can be used, see
- the #GstResampler. Default is #GST_RESAMPLER_METHOD_CUBIC</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_RESAMPLER_TAPS"
- value="GstVideoConverter.resampler-taps"
- c:type="GST_VIDEO_CONVERTER_OPT_RESAMPLER_TAPS">
- <doc xml:space="preserve">#G_TYPE_UINT, The number of taps for the resampler.
- Default is 0: let the resampler choose a good value.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_SRC_HEIGHT"
- value="GstVideoConverter.src-height"
- c:type="GST_VIDEO_CONVERTER_OPT_SRC_HEIGHT">
- <doc xml:space="preserve">#G_TYPE_INT, source height to convert, default source height</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_SRC_WIDTH"
- value="GstVideoConverter.src-width"
- c:type="GST_VIDEO_CONVERTER_OPT_SRC_WIDTH">
- <doc xml:space="preserve">#G_TYPE_INT, source width to convert, default source width</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_SRC_X"
- value="GstVideoConverter.src-x"
- c:type="GST_VIDEO_CONVERTER_OPT_SRC_X">
- <doc xml:space="preserve">#G_TYPE_INT, source x position to start conversion, default 0</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_CONVERTER_OPT_SRC_Y"
- value="GstVideoConverter.src-y"
- c:type="GST_VIDEO_CONVERTER_OPT_SRC_Y">
- <doc xml:space="preserve">#G_TYPE_INT, source y position to start conversion, default 0</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_DECODER_MAX_ERRORS"
- value="10"
- c:type="GST_VIDEO_DECODER_MAX_ERRORS">
- <doc xml:space="preserve">Default maximum number of errors tolerated before signaling error.</doc>
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_DECODER_SINK_NAME"
- value="sink"
- c:type="GST_VIDEO_DECODER_SINK_NAME">
- <doc xml:space="preserve">The name of the templates for the sink pad.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_DECODER_SRC_NAME"
- value="src"
- c:type="GST_VIDEO_DECODER_SRC_NAME">
- <doc xml:space="preserve">The name of the templates for the source pad.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_ENCODER_SINK_NAME"
- value="sink"
- c:type="GST_VIDEO_ENCODER_SINK_NAME">
- <doc xml:space="preserve">The name of the templates for the sink pad.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_ENCODER_SRC_NAME"
- value="src"
- c:type="GST_VIDEO_ENCODER_SRC_NAME">
- <doc xml:space="preserve">The name of the templates for the source pad.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_FORMATS_ALL"
- 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 }"
- c:type="GST_VIDEO_FORMATS_ALL">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_FPS_RANGE"
- value="(fraction) [ 0, max ]"
- c:type="GST_VIDEO_FPS_RANGE">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_MAX_COMPONENTS"
- value="4"
- c:type="GST_VIDEO_MAX_COMPONENTS">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_MAX_PLANES" value="4" c:type="GST_VIDEO_MAX_PLANES">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS"
- 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 }"
- c:type="GST_VIDEO_OVERLAY_COMPOSITION_BLEND_FORMATS"
- version="1.2">
- <doc xml:space="preserve">Video formats supported by gst_video_overlay_composition_blend(), for
- use in overlay elements' pad template caps.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_RESAMPLER_OPT_CUBIC_B"
- value="GstVideoResampler.cubic-b"
- c:type="GST_VIDEO_RESAMPLER_OPT_CUBIC_B">
- <doc xml:space="preserve">G_TYPE_DOUBLE, B parameter of the cubic filter. The B
- parameter controls the bluriness. Values between 0.0 and
- 2.0 are accepted. 1/3 is the default.
- Below are some values of popular filters:
- B C
- Hermite 0.0 0.0
- Spline 1.0 0.0
- Catmull-Rom 0.0 1/2
- Mitchell 1/3 1/3
- Robidoux 0.3782 0.3109
- Robidoux
- Sharp 0.2620 0.3690
- Robidoux
- Soft 0.6796 0.1602</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_RESAMPLER_OPT_CUBIC_C"
- value="GstVideoResampler.cubic-c"
- c:type="GST_VIDEO_RESAMPLER_OPT_CUBIC_C">
- <doc xml:space="preserve">G_TYPE_DOUBLE, C parameter of the cubic filter. The C
- parameter controls the Keys alpha value. Values between 0.0 and
- 2.0 are accepted. 1/3 is the default.
- See #GST_VIDEO_RESAMPLER_OPT_CUBIC_B for some more common values</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_RESAMPLER_OPT_ENVELOPE"
- value="GstVideoResampler.envelope"
- c:type="GST_VIDEO_RESAMPLER_OPT_ENVELOPE">
- <doc xml:space="preserve">G_TYPE_DOUBLE, specifies the size of filter envelope for
- @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
- 1.0 and 5.0. 2.0 is the default.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_RESAMPLER_OPT_MAX_TAPS"
- value="GstVideoResampler.max-taps"
- c:type="GST_VIDEO_RESAMPLER_OPT_MAX_TAPS">
- <doc xml:space="preserve">G_TYPE_INT, limits the maximum number of taps to use.
- 16 is the default.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_RESAMPLER_OPT_SHARPEN"
- value="GstVideoResampler.sharpen"
- c:type="GST_VIDEO_RESAMPLER_OPT_SHARPEN">
- <doc xml:space="preserve">G_TYPE_DOUBLE, specifies sharpening of the filter for
- @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
- 0.0 and 1.0. 0.0 is the default.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_RESAMPLER_OPT_SHARPNESS"
- value="GstVideoResampler.sharpness"
- c:type="GST_VIDEO_RESAMPLER_OPT_SHARPNESS">
- <doc xml:space="preserve">G_TYPE_DOUBLE, specifies sharpness of the filter for
- @GST_VIDEO_RESAMPLER_METHOD_LANCZOS. values are clamped between
- 0.5 and 1.5. 1.0 is the default.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_SCALER_OPT_DITHER_METHOD"
- value="GstVideoScaler.dither-method"
- c:type="GST_VIDEO_SCALER_OPT_DITHER_METHOD">
- <doc xml:space="preserve">#GST_TYPE_VIDEO_DITHER_METHOD, The dither method to use for propagating
- quatization errors.</doc>
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_SIZE_RANGE"
- value="(int) [ 1, max ]"
- c:type="GST_VIDEO_SIZE_RANGE">
- <type name="utf8" c:type="gchar*"/>
- </constant>
- <constant name="VIDEO_TILE_TYPE_MASK"
- value="0"
- c:type="GST_VIDEO_TILE_TYPE_MASK">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_TILE_TYPE_SHIFT"
- value="16"
- c:type="GST_VIDEO_TILE_TYPE_SHIFT">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_TILE_X_TILES_MASK"
- value="0"
- c:type="GST_VIDEO_TILE_X_TILES_MASK">
- <type name="gint" c:type="gint"/>
- </constant>
- <constant name="VIDEO_TILE_Y_TILES_SHIFT"
- value="16"
- c:type="GST_VIDEO_TILE_Y_TILES_SHIFT">
- <type name="gint" c:type="gint"/>
- </constant>
- <callback name="VideoAffineTransformationGetMatrix"
- c:type="GstVideoAffineTransformationGetMatrix">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="meta" transfer-ownership="none">
- <type name="VideoAffineTransformationMeta"
- c:type="GstVideoAffineTransformationMeta*"/>
- </parameter>
- <parameter name="matrix" transfer-ownership="none">
- <type name="gfloat" c:type="gfloat*"/>
- </parameter>
- </parameters>
- </callback>
- <record name="VideoAffineTransformationMeta"
- c:type="GstVideoAffineTransformationMeta">
- <field name="meta" writable="1">
- <type name="Gst.Meta" c:type="GstMeta"/>
- </field>
- <field name="matrix" writable="1">
- <array zero-terminated="0" c:type="gfloat" fixed-size="16">
- <type name="gfloat" c:type="gfloat"/>
- </array>
- </field>
- <method name="apply_matrix"
- c:identifier="gst_video_affine_transformation_meta_apply_matrix"
- version="1.8">
- <doc xml:space="preserve">Apply a transformation using the given 4x4 transformation matrix</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoAffineTransformationMeta</doc>
- <type name="VideoAffineTransformationMeta"
- c:type="GstVideoAffineTransformationMeta*"/>
- </instance-parameter>
- <parameter name="matrix" transfer-ownership="none">
- <doc xml:space="preserve">a 4x4 transformation matrix to be applied</doc>
- <type name="gfloat" c:type="const gfloat"/>
- </parameter>
- </parameters>
- </method>
- <function name="get_info"
- c:identifier="gst_video_affine_transformation_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <record name="VideoAlignment" c:type="GstVideoAlignment">
- <doc xml:space="preserve">Extra alignment paramters for the memory of video buffers. This
- structure is usually used to configure the bufferpool if it supports the
- #GST_BUFFER_POOL_OPTION_VIDEO_ALIGNMENT.</doc>
- <field name="padding_top" writable="1">
- <doc xml:space="preserve">extra pixels on the top</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="padding_bottom" writable="1">
- <doc xml:space="preserve">extra pixels on the bottom</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="padding_left" writable="1">
- <doc xml:space="preserve">extra pixels on the left side</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="padding_right" writable="1">
- <doc xml:space="preserve">extra pixels on the right side</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="stride_align" writable="1">
- <doc xml:space="preserve">array with extra alignment requirements for the strides</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <method name="reset" c:identifier="gst_video_alignment_reset">
- <doc xml:space="preserve">Set @align to its default values with no padding and no alignment.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="align" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoAlignment</doc>
- <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="VideoAlphaMode"
- version="1.6"
- glib:type-name="GstVideoAlphaMode"
- glib:get-type="gst_video_alpha_mode_get_type"
- c:type="GstVideoAlphaMode">
- <doc xml:space="preserve">Different alpha modes.</doc>
- <member name="copy"
- value="0"
- c:identifier="GST_VIDEO_ALPHA_MODE_COPY"
- glib:nick="copy">
- <doc xml:space="preserve">When input and output have alpha, it will be copied.
- When the input has no alpha, alpha will be set to
- #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
- </member>
- <member name="set"
- value="1"
- c:identifier="GST_VIDEO_ALPHA_MODE_SET"
- glib:nick="set">
- <doc xml:space="preserve">set all alpha to
- #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
- </member>
- <member name="mult"
- value="2"
- c:identifier="GST_VIDEO_ALPHA_MODE_MULT"
- glib:nick="mult">
- <doc xml:space="preserve">multiply all alpha with
- #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE.
- When the input format has no alpha but the output format has, the
- alpha value will be set to #GST_VIDEO_CONVERTER_OPT_ALPHA_VALUE</doc>
- </member>
- </enumeration>
- <bitfield name="VideoBufferFlags"
- glib:type-name="GstVideoBufferFlags"
- glib:get-type="gst_video_buffer_flags_get_type"
- c:type="GstVideoBufferFlags">
- <doc xml:space="preserve">Additional video buffer flags. These flags can potentially be used on any
- buffers carrying video data - even encoded data.</doc>
- <member name="interlaced"
- value="1048576"
- c:identifier="GST_VIDEO_BUFFER_FLAG_INTERLACED"
- glib:nick="interlaced">
- <doc xml:space="preserve">If the #GstBuffer is interlaced. In mixed
- interlace-mode, this flags specifies if the frame is
- interlaced or progressive.</doc>
- </member>
- <member name="tff"
- value="2097152"
- c:identifier="GST_VIDEO_BUFFER_FLAG_TFF"
- glib:nick="tff">
- <doc xml:space="preserve">If the #GstBuffer is interlaced, then the first field
- in the video frame is the top field. If unset, the
- bottom field is first.</doc>
- </member>
- <member name="rff"
- value="4194304"
- c:identifier="GST_VIDEO_BUFFER_FLAG_RFF"
- glib:nick="rff">
- <doc xml:space="preserve">If the #GstBuffer is interlaced, then the first field
- (as defined by the %GST_VIDEO_BUFFER_TFF flag setting)
- is repeated.</doc>
- </member>
- <member name="onefield"
- value="8388608"
- c:identifier="GST_VIDEO_BUFFER_FLAG_ONEFIELD"
- glib:nick="onefield">
- <doc xml:space="preserve">If the #GstBuffer is interlaced, then only the
- first field (as defined by the %GST_VIDEO_BUFFER_TFF
- flag setting) is to be displayed.</doc>
- </member>
- <member name="multiple_view"
- value="16777216"
- c:identifier="GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW"
- glib:nick="multiple-view">
- <doc xml:space="preserve">The #GstBuffer contains one or more specific views,
- such as left or right eye view. This flags is set on
- any buffer that contains non-mono content - even for
- streams that contain only a single viewpoint. In mixed
- mono / non-mono streams, the absense of the flag marks
- mono buffers.</doc>
- </member>
- <member name="first_in_bundle"
- value="33554432"
- c:identifier="GST_VIDEO_BUFFER_FLAG_FIRST_IN_BUNDLE"
- glib:nick="first-in-bundle">
- <doc xml:space="preserve">When conveying stereo/multiview content with
- frame-by-frame methods, this flag marks the first buffer
- in a bundle of frames that belong together.</doc>
- </member>
- <member name="last"
- value="268435456"
- c:identifier="GST_VIDEO_BUFFER_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">Offset to define more flags</doc>
- </member>
- </bitfield>
- <class name="VideoBufferPool"
- c:symbol-prefix="video_buffer_pool"
- c:type="GstVideoBufferPool"
- parent="Gst.BufferPool"
- glib:type-name="GstVideoBufferPool"
- glib:get-type="gst_video_buffer_pool_get_type"
- glib:type-struct="VideoBufferPoolClass">
- <constructor name="new" c:identifier="gst_video_buffer_pool_new">
- <doc xml:space="preserve">Create a new bufferpool that can allocate video frames. This bufferpool
- supports all the video bufferpool options.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a new #GstBufferPool to allocate video frames</doc>
- <type name="Gst.BufferPool" c:type="GstBufferPool*"/>
- </return-value>
- </constructor>
- <field name="bufferpool">
- <type name="Gst.BufferPool" c:type="GstBufferPool"/>
- </field>
- <field name="priv">
- <type name="VideoBufferPoolPrivate"
- c:type="GstVideoBufferPoolPrivate*"/>
- </field>
- </class>
- <record name="VideoBufferPoolClass"
- c:type="GstVideoBufferPoolClass"
- glib:is-gtype-struct-for="VideoBufferPool">
- <field name="parent_class">
- <type name="Gst.BufferPoolClass" c:type="GstBufferPoolClass"/>
- </field>
- </record>
- <record name="VideoBufferPoolPrivate"
- c:type="GstVideoBufferPoolPrivate"
- disguised="1">
- </record>
- <bitfield name="VideoChromaFlags"
- glib:type-name="GstVideoChromaFlags"
- glib:get-type="gst_video_chroma_flags_get_type"
- c:type="GstVideoChromaFlags">
- <doc xml:space="preserve">Extra flags that influence the result from gst_video_chroma_resample_new().</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_CHROMA_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="interlaced"
- value="1"
- c:identifier="GST_VIDEO_CHROMA_FLAG_INTERLACED"
- glib:nick="interlaced">
- <doc xml:space="preserve">the input is interlaced</doc>
- </member>
- </bitfield>
- <enumeration name="VideoChromaMethod"
- glib:type-name="GstVideoChromaMethod"
- glib:get-type="gst_video_chroma_method_get_type"
- c:type="GstVideoChromaMethod">
- <doc xml:space="preserve">Different subsampling and upsampling methods</doc>
- <member name="nearest"
- value="0"
- c:identifier="GST_VIDEO_CHROMA_METHOD_NEAREST"
- glib:nick="nearest">
- <doc xml:space="preserve">Duplicates the chroma samples when
- upsampling and drops when subsampling</doc>
- </member>
- <member name="linear"
- value="1"
- c:identifier="GST_VIDEO_CHROMA_METHOD_LINEAR"
- glib:nick="linear">
- <doc xml:space="preserve">Uses linear interpolation to reconstruct
- missing chroma and averaging to subsample</doc>
- </member>
- </enumeration>
- <enumeration name="VideoChromaMode"
- version="1.6"
- glib:type-name="GstVideoChromaMode"
- glib:get-type="gst_video_chroma_mode_get_type"
- c:type="GstVideoChromaMode">
- <doc xml:space="preserve">Different chroma downsampling and upsampling modes</doc>
- <member name="full"
- value="0"
- c:identifier="GST_VIDEO_CHROMA_MODE_FULL"
- glib:nick="full">
- <doc xml:space="preserve">do full chroma up and down sampling</doc>
- </member>
- <member name="upsample_only"
- value="1"
- c:identifier="GST_VIDEO_CHROMA_MODE_UPSAMPLE_ONLY"
- glib:nick="upsample-only">
- <doc xml:space="preserve">only perform chroma upsampling</doc>
- </member>
- <member name="downsample_only"
- value="2"
- c:identifier="GST_VIDEO_CHROMA_MODE_DOWNSAMPLE_ONLY"
- glib:nick="downsample-only">
- <doc xml:space="preserve">only perform chroma downsampling</doc>
- </member>
- <member name="none"
- value="3"
- c:identifier="GST_VIDEO_CHROMA_MODE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">disable chroma resampling</doc>
- </member>
- </enumeration>
- <record name="VideoChromaResample"
- c:type="GstVideoChromaResample"
- disguised="1">
- <method name=""
- c:identifier="gst_video_chroma_resample"
- moved-to="video_chroma_resample">
- <doc xml:space="preserve">Perform resampling of @width chroma pixels in @lines.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaResample</doc>
- <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
- </instance-parameter>
- <parameter name="lines"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pixel lines</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the number of pixels on one line</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_video_chroma_resample_free">
- <doc xml:space="preserve">Free @resample</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaResample</doc>
- <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_info"
- c:identifier="gst_video_chroma_resample_get_info">
- <doc xml:space="preserve">The resampler must be fed @n_lines at a time. The first line should be
- at @offset.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaResample</doc>
- <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
- </instance-parameter>
- <parameter name="n_lines" transfer-ownership="none">
- <doc xml:space="preserve">the number of input lines</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">the first line</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <function name="new"
- c:identifier="gst_video_chroma_resample_new"
- introspectable="0">
- <doc xml:space="preserve">Create a new resampler object for the given parameters. When @h_factor or
- @v_factor is > 0, upsampling will be used, otherwise subsampling is
- performed.</doc>
- <return-value>
- <doc xml:space="preserve">a new #GstVideoChromaResample that should be freed with
- gst_video_chroma_resample_free() after usage.</doc>
- <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
- </return-value>
- <parameters>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaMethod</doc>
- <type name="VideoChromaMethod" c:type="GstVideoChromaMethod"/>
- </parameter>
- <parameter name="site" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaSite</doc>
- <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoChromaFlags</doc>
- <type name="VideoChromaFlags" c:type="GstVideoChromaFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="h_factor" transfer-ownership="none">
- <doc xml:space="preserve">horizontal resampling factor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="v_factor" transfer-ownership="none">
- <doc xml:space="preserve">vertical resampling factor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <bitfield name="VideoChromaSite"
- glib:type-name="GstVideoChromaSite"
- glib:get-type="gst_video_chroma_site_get_type"
- c:type="GstVideoChromaSite">
- <doc xml:space="preserve">Various Chroma sitings.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_CHROMA_SITE_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown cositing</doc>
- </member>
- <member name="none"
- value="1"
- c:identifier="GST_VIDEO_CHROMA_SITE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no cositing</doc>
- </member>
- <member name="h_cosited"
- value="2"
- c:identifier="GST_VIDEO_CHROMA_SITE_H_COSITED"
- glib:nick="h-cosited">
- <doc xml:space="preserve">chroma is horizontally cosited</doc>
- </member>
- <member name="v_cosited"
- value="4"
- c:identifier="GST_VIDEO_CHROMA_SITE_V_COSITED"
- glib:nick="v-cosited">
- <doc xml:space="preserve">chroma is vertically cosited</doc>
- </member>
- <member name="alt_line"
- value="8"
- c:identifier="GST_VIDEO_CHROMA_SITE_ALT_LINE"
- glib:nick="alt-line">
- <doc xml:space="preserve">choma samples are sited on alternate lines</doc>
- </member>
- <member name="cosited"
- value="6"
- c:identifier="GST_VIDEO_CHROMA_SITE_COSITED"
- glib:nick="cosited">
- <doc xml:space="preserve">chroma samples cosited with luma samples</doc>
- </member>
- <member name="jpeg"
- value="1"
- c:identifier="GST_VIDEO_CHROMA_SITE_JPEG"
- glib:nick="jpeg">
- <doc xml:space="preserve">jpeg style cositing, also for mpeg1 and mjpeg</doc>
- </member>
- <member name="mpeg2"
- value="2"
- c:identifier="GST_VIDEO_CHROMA_SITE_MPEG2"
- glib:nick="mpeg2">
- <doc xml:space="preserve">mpeg2 style cositing</doc>
- </member>
- <member name="dv"
- value="14"
- c:identifier="GST_VIDEO_CHROMA_SITE_DV"
- glib:nick="dv">
- <doc xml:space="preserve">DV style cositing</doc>
- </member>
- </bitfield>
- <record name="VideoCodecFrame"
- c:type="GstVideoCodecFrame"
- glib:type-name="GstVideoCodecFrame"
- glib:get-type="gst_video_codec_frame_get_type"
- c:symbol-prefix="video_codec_frame">
- <doc xml:space="preserve">A #GstVideoCodecFrame represents a video frame both in raw and
- encoded form.</doc>
- <field name="ref_count" readable="0" private="1">
- <type name="gint" c:type="gint"/>
- </field>
- <field name="flags" readable="0" private="1">
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="system_frame_number" writable="1">
- <doc xml:space="preserve">Unique identifier for the frame. Use this if you need
- to get hold of the frame later (like when data is being decoded).
- Typical usage in decoders is to set this on the opaque value provided
- to the library and get back the frame using gst_video_decoder_get_frame()</doc>
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="decode_frame_number" writable="1">
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="presentation_frame_number" writable="1">
- <type name="guint32" c:type="guint32"/>
- </field>
- <field name="dts" writable="1">
- <doc xml:space="preserve">Decoding timestamp</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="pts" writable="1">
- <doc xml:space="preserve">Presentation timestamp</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="duration" writable="1">
- <doc xml:space="preserve">Duration of the frame</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="distance_from_sync" writable="1">
- <doc xml:space="preserve">Distance in frames from the last synchronization point.</doc>
- <type name="gint" c:type="int"/>
- </field>
- <field name="input_buffer" writable="1">
- <doc xml:space="preserve">the input #GstBuffer that created this frame. The buffer is owned
- by the frame and references to the frame instead of the buffer should
- be kept.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="output_buffer" writable="1">
- <doc xml:space="preserve">the output #GstBuffer. Implementations should set this either
- directly, or by using the
- @gst_video_decoder_allocate_output_frame() or
- @gst_video_decoder_allocate_output_buffer() methods. The buffer is
- owned by the frame and references to the frame instead of the
- buffer should be kept.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="deadline" writable="1">
- <doc xml:space="preserve">Running time when the frame will be used.</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="events" readable="0" private="1">
- <type name="GLib.List" c:type="GList*">
- <type name="gpointer" c:type="gpointer"/>
- </type>
- </field>
- <field name="user_data" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="user_data_destroy_notify" readable="0" private="1">
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </field>
- <union name="abidata" c:type="abidata">
- <record name="ABI" c:type="ABI">
- <field name="ts" writable="1">
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </field>
- <field name="ts2" writable="1">
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </field>
- </record>
- <field name="padding" writable="1">
- <array zero-terminated="0" c:type="void" fixed-size="20">
- <type name="gpointer" c:type="void*"/>
- </array>
- </field>
- </union>
- <method name="get_user_data"
- c:identifier="gst_video_codec_frame_get_user_data">
- <doc xml:space="preserve">Gets private data set on the frame by the subclass via
- gst_video_codec_frame_set_user_data() previously.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">The previously set user_data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="ref" c:identifier="gst_video_codec_frame_ref">
- <doc xml:space="preserve">Increases the refcount of the given frame by one.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">@buf</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_user_data"
- c:identifier="gst_video_codec_frame_set_user_data">
- <doc xml:space="preserve">Sets @user_data on the frame and the #GDestroyNotify that will be called when
- the frame is freed. Allows to attach private data by the subclass to frames.
- If a @user_data was previously set, then the previous set @notify will be called
- before the @user_data is replaced.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </instance-parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">private data</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="notify"
- transfer-ownership="none"
- scope="async"
- closure="0">
- <doc xml:space="preserve">a #GDestroyNotify</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="gst_video_codec_frame_unref">
- <doc xml:space="preserve">Decreases the refcount of the frame. If the refcount reaches 0, the frame
- will be freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="VideoCodecFrameFlags" c:type="GstVideoCodecFrameFlags">
- <doc xml:space="preserve">Flags for #GstVideoCodecFrame</doc>
- <member name="decode_only"
- value="1"
- c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_DECODE_ONLY">
- <doc xml:space="preserve">is the frame only meant to be decoded</doc>
- </member>
- <member name="sync_point"
- value="2"
- c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_SYNC_POINT">
- <doc xml:space="preserve">is the frame a synchronization point (keyframe)</doc>
- </member>
- <member name="force_keyframe"
- value="4"
- c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME">
- <doc xml:space="preserve">should the output frame be made a keyframe</doc>
- </member>
- <member name="force_keyframe_headers"
- value="8"
- c:identifier="GST_VIDEO_CODEC_FRAME_FLAG_FORCE_KEYFRAME_HEADERS">
- <doc xml:space="preserve">should the encoder output stream headers</doc>
- </member>
- </bitfield>
- <record name="VideoCodecState"
- c:type="GstVideoCodecState"
- glib:type-name="GstVideoCodecState"
- glib:get-type="gst_video_codec_state_get_type"
- c:symbol-prefix="video_codec_state">
- <doc xml:space="preserve">Structure representing the state of an incoming or outgoing video
- stream for encoders and decoders.
- Decoders and encoders will receive such a state through their
- respective @set_format vmethods.
- Decoders and encoders can set the downstream state, by using the
- @gst_video_decoder_set_output_state() or
- @gst_video_encoder_set_output_state() methods.</doc>
- <field name="ref_count" readable="0" private="1">
- <type name="gint" c:type="gint"/>
- </field>
- <field name="info" writable="1">
- <doc xml:space="preserve">The #GstVideoInfo describing the stream</doc>
- <type name="VideoInfo" c:type="GstVideoInfo"/>
- </field>
- <field name="caps" writable="1">
- <doc xml:space="preserve">The #GstCaps</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </field>
- <field name="codec_data" writable="1">
- <doc xml:space="preserve">a #GstBuffer corresponding to the
- 'codec_data' field of a stream, or NULL.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="void" fixed-size="20">
- <type name="gpointer" c:type="void*"/>
- </array>
- </field>
- <method name="ref" c:identifier="gst_video_codec_state_ref">
- <doc xml:space="preserve">Increases the refcount of the given state by one.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">@buf</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </return-value>
- <parameters>
- <instance-parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecState</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="unref" c:identifier="gst_video_codec_state_unref">
- <doc xml:space="preserve">Decreases the refcount of the state. If the refcount reaches 0, the state
- will be freed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="state" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecState</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="VideoColorMatrix"
- glib:type-name="GstVideoColorMatrix"
- glib:get-type="gst_video_color_matrix_get_type"
- c:type="GstVideoColorMatrix">
- <doc xml:space="preserve">The color matrix is used to convert between Y'PbPr and
- non-linear RGB (R'G'B')</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_COLOR_MATRIX_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown matrix</doc>
- </member>
- <member name="rgb"
- value="1"
- c:identifier="GST_VIDEO_COLOR_MATRIX_RGB"
- glib:nick="rgb">
- <doc xml:space="preserve">identity matrix</doc>
- </member>
- <member name="fcc"
- value="2"
- c:identifier="GST_VIDEO_COLOR_MATRIX_FCC"
- glib:nick="fcc">
- <doc xml:space="preserve">FCC color matrix</doc>
- </member>
- <member name="bt709"
- value="3"
- c:identifier="GST_VIDEO_COLOR_MATRIX_BT709"
- glib:nick="bt709">
- <doc xml:space="preserve">ITU-R BT.709 color matrix</doc>
- </member>
- <member name="bt601"
- value="4"
- c:identifier="GST_VIDEO_COLOR_MATRIX_BT601"
- glib:nick="bt601">
- <doc xml:space="preserve">ITU-R BT.601 color matrix</doc>
- </member>
- <member name="smpte240m"
- value="5"
- c:identifier="GST_VIDEO_COLOR_MATRIX_SMPTE240M"
- glib:nick="smpte240m">
- <doc xml:space="preserve">SMPTE 240M color matrix</doc>
- </member>
- <member name="bt2020"
- value="6"
- c:identifier="GST_VIDEO_COLOR_MATRIX_BT2020"
- glib:nick="bt2020">
- <doc xml:space="preserve">ITU-R BT.2020 color matrix. Since: 1.6.</doc>
- </member>
- <function name="get_Kr_Kb"
- c:identifier="gst_video_color_matrix_get_Kr_Kb"
- version="1.6">
- <doc xml:space="preserve">Get the coefficients used to convert between Y'PbPr and R'G'B' using @matrix.
- When:
- |[
- 0.0 <= [Y',R',G',B'] <= 1.0)
- (-0.5 <= [Pb,Pr] <= 0.5)
- ]|
- the general conversion is given by:
- |[
- Y' = Kr*R' + (1-Kr-Kb)*G' + Kb*B'
- Pb = (B'-Y')/(2*(1-Kb))
- Pr = (R'-Y')/(2*(1-Kr))
- ]|
- and the other way around:
- |[
- R' = Y' + Cr*2*(1-Kr)
- G' = Y' - Cb*2*(1-Kb)*Kb/(1-Kr-Kb) - Cr*2*(1-Kr)*Kr/(1-Kr-Kb)
- B' = Y' + Cb*2*(1-Kb)
- ]|</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if @matrix was a YUV color format and @Kr and @Kb contain valid
- values.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="matrix" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorMatrix</doc>
- <type name="VideoColorMatrix" c:type="GstVideoColorMatrix"/>
- </parameter>
- <parameter name="Kr" transfer-ownership="none">
- <doc xml:space="preserve">result red channel coefficient</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="Kb" transfer-ownership="none">
- <doc xml:space="preserve">result blue channel coefficient</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <enumeration name="VideoColorPrimaries"
- glib:type-name="GstVideoColorPrimaries"
- glib:get-type="gst_video_color_primaries_get_type"
- c:type="GstVideoColorPrimaries">
- <doc xml:space="preserve">The color primaries define the how to transform linear RGB values to and from
- the CIE XYZ colorspace.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown color primaries</doc>
- </member>
- <member name="bt709"
- value="1"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT709"
- glib:nick="bt709">
- <doc xml:space="preserve">BT709 primaries</doc>
- </member>
- <member name="bt470m"
- value="2"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT470M"
- glib:nick="bt470m">
- <doc xml:space="preserve">BT470M primaries</doc>
- </member>
- <member name="bt470bg"
- value="3"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT470BG"
- glib:nick="bt470bg">
- <doc xml:space="preserve">BT470BG primaries</doc>
- </member>
- <member name="smpte170m"
- value="4"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_SMPTE170M"
- glib:nick="smpte170m">
- <doc xml:space="preserve">SMPTE170M primaries</doc>
- </member>
- <member name="smpte240m"
- value="5"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_SMPTE240M"
- glib:nick="smpte240m">
- <doc xml:space="preserve">SMPTE240M primaries</doc>
- </member>
- <member name="film"
- value="6"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_FILM"
- glib:nick="film">
- <doc xml:space="preserve">Generic film</doc>
- </member>
- <member name="bt2020"
- value="7"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_BT2020"
- glib:nick="bt2020">
- <doc xml:space="preserve">BT2020 primaries. Since: 1.6.</doc>
- </member>
- <member name="adobergb"
- value="8"
- c:identifier="GST_VIDEO_COLOR_PRIMARIES_ADOBERGB"
- glib:nick="adobergb">
- <doc xml:space="preserve">Adobe RGB primaries. Since: 1.8</doc>
- </member>
- <function name="get_info"
- c:identifier="gst_video_color_primaries_get_info"
- version="1.6">
- <doc xml:space="preserve">Get information about the chromaticity coordinates of @primaries.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorPrimariesInfo for @primaries.</doc>
- <type name="VideoColorPrimariesInfo"
- c:type="const GstVideoColorPrimariesInfo*"/>
- </return-value>
- <parameters>
- <parameter name="primaries" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorPrimaries</doc>
- <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <record name="VideoColorPrimariesInfo"
- c:type="GstVideoColorPrimariesInfo"
- version="1.6">
- <doc xml:space="preserve">Structure describing the chromaticity coordinates of an RGB system. These
- values can be used to construct a matrix to transform RGB to and from the
- XYZ colorspace.</doc>
- <field name="primaries" writable="1">
- <doc xml:space="preserve">a #GstVideoColorPrimaries</doc>
- <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
- </field>
- <field name="Wx" writable="1">
- <doc xml:space="preserve">reference white x coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="Wy" writable="1">
- <doc xml:space="preserve">reference white y coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="Rx" writable="1">
- <doc xml:space="preserve">red x coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="Ry" writable="1">
- <doc xml:space="preserve">red y coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="Gx" writable="1">
- <doc xml:space="preserve">green x coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="Gy" writable="1">
- <doc xml:space="preserve">green y coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="Bx" writable="1">
- <doc xml:space="preserve">blue x coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- <field name="By" writable="1">
- <doc xml:space="preserve">blue y coordinate</doc>
- <type name="gdouble" c:type="gdouble"/>
- </field>
- </record>
- <enumeration name="VideoColorRange"
- glib:type-name="GstVideoColorRange"
- glib:get-type="gst_video_color_range_get_type"
- c:type="GstVideoColorRange">
- <doc xml:space="preserve">Possible color range values. These constants are defined for 8 bit color
- values and can be scaled for other bit depths.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_COLOR_RANGE_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown range</doc>
- </member>
- <member name="0_255"
- value="1"
- c:identifier="GST_VIDEO_COLOR_RANGE_0_255"
- glib:nick="0-255">
- <doc xml:space="preserve">[0..255] for 8 bit components</doc>
- </member>
- <member name="16_235"
- value="2"
- c:identifier="GST_VIDEO_COLOR_RANGE_16_235"
- glib:nick="16-235">
- <doc xml:space="preserve">[16..235] for 8 bit components. Chroma has
- [16..240] range.</doc>
- </member>
- <function name="offsets" c:identifier="gst_video_color_range_offsets">
- <doc xml:space="preserve">Compute the offset and scale values for each component of @info. For each
- component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
- range [0.0 .. 1.0].
- The reverse operation (c[i] * scale[i]) + offset[i] can be used to convert
- the component values in range [0.0 .. 1.0] back to their representation in
- @info and @range.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="range" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorRange</doc>
- <type name="VideoColorRange" c:type="GstVideoColorRange"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </parameter>
- <parameter name="offset"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">output offsets</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="scale"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">output scale</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <record name="VideoColorimetry" c:type="GstVideoColorimetry">
- <doc xml:space="preserve">Structure describing the color info.</doc>
- <field name="range" writable="1">
- <doc xml:space="preserve">the color range. This is the valid range for the samples.
- It is used to convert the samples to Y'PbPr values.</doc>
- <type name="VideoColorRange" c:type="GstVideoColorRange"/>
- </field>
- <field name="matrix" writable="1">
- <doc xml:space="preserve">the color matrix. Used to convert between Y'PbPr and
- non-linear RGB (R'G'B')</doc>
- <type name="VideoColorMatrix" c:type="GstVideoColorMatrix"/>
- </field>
- <field name="transfer" writable="1">
- <doc xml:space="preserve">the transfer function. used to convert between R'G'B' and RGB</doc>
- <type name="VideoTransferFunction" c:type="GstVideoTransferFunction"/>
- </field>
- <field name="primaries" writable="1">
- <doc xml:space="preserve">color primaries. used to convert between R'G'B' and CIE XYZ</doc>
- <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
- </field>
- <method name="from_string"
- c:identifier="gst_video_colorimetry_from_string">
- <doc xml:space="preserve">Parse the colorimetry string and update @cinfo with the parsed
- values.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if @color points to valid colorimetry info.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorimetry</doc>
- <type name="VideoColorimetry" c:type="GstVideoColorimetry*"/>
- </instance-parameter>
- <parameter name="color" transfer-ownership="none">
- <doc xml:space="preserve">a colorimetry string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="is_equal"
- c:identifier="gst_video_colorimetry_is_equal"
- version="1.6">
- <doc xml:space="preserve">Compare the 2 colorimetry sets for equality</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if @cinfo and @other are equal.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorimetry</doc>
- <type name="VideoColorimetry" c:type="const GstVideoColorimetry*"/>
- </instance-parameter>
- <parameter name="other" transfer-ownership="none">
- <doc xml:space="preserve">another #GstVideoColorimetry</doc>
- <type name="VideoColorimetry" c:type="const GstVideoColorimetry*"/>
- </parameter>
- </parameters>
- </method>
- <method name="matches" c:identifier="gst_video_colorimetry_matches">
- <doc xml:space="preserve">Check if the colorimetry information in @info matches that of the
- string @color.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if @color conveys the same colorimetry info as the color
- information in @info.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="cinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoColorimetry" c:type="GstVideoColorimetry*"/>
- </instance-parameter>
- <parameter name="color" transfer-ownership="none">
- <doc xml:space="preserve">a colorimetry string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_string" c:identifier="gst_video_colorimetry_to_string">
- <doc xml:space="preserve">Make a string representation of @cinfo.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a string representation of @cinfo.</doc>
- <type name="utf8" c:type="gchar*"/>
- </return-value>
- <parameters>
- <instance-parameter name="cinfo" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorimetry</doc>
- <type name="VideoColorimetry" c:type="GstVideoColorimetry*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <callback name="VideoConvertSampleCallback"
- c:type="GstVideoConvertSampleCallback">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="sample" transfer-ownership="none">
- <type name="Gst.Sample" c:type="GstSample*"/>
- </parameter>
- <parameter name="error" transfer-ownership="none">
- <type name="GLib.Error" c:type="GError*"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1"
- closure="2">
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- </parameters>
- </callback>
- <record name="VideoConverter" c:type="GstVideoConverter" disguised="1">
- <method name="frame"
- c:identifier="gst_video_converter_frame"
- version="1.6">
- <doc xml:space="preserve">Convert the pixels of @src into @dest using @convert.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="convert" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoConverter</doc>
- <type name="VideoConverter" c:type="GstVideoConverter*"/>
- </instance-parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="const GstVideoFrame*"/>
- </parameter>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="free"
- c:identifier="gst_video_converter_free"
- version="1.6">
- <doc xml:space="preserve">Free @convert</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="convert" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoConverter</doc>
- <type name="VideoConverter" c:type="GstVideoConverter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_config" c:identifier="gst_video_converter_get_config">
- <doc xml:space="preserve">Get the current configuration of @convert.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure that remains valid for as long as @convert is valid
- or until gst_video_converter_set_config() is called.</doc>
- <type name="Gst.Structure" c:type="const GstStructure*"/>
- </return-value>
- <parameters>
- <instance-parameter name="convert" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoConverter</doc>
- <type name="VideoConverter" c:type="GstVideoConverter*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_config"
- c:identifier="gst_video_converter_set_config"
- version="1.6">
- <doc xml:space="preserve">Set @config as extra configuraion for @convert.
- If the parameters in @config can not be set exactly, this function returns
- %FALSE and will try to update as much state as possible. The new state can
- then be retrieved and refined with gst_video_converter_get_config().
- Look at the #GST_VIDEO_CONVERTER_OPT_* fields to check valid configuration
- option and values.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE when @config could be set.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="convert" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoConverter</doc>
- <type name="VideoConverter" c:type="GstVideoConverter*"/>
- </instance-parameter>
- <parameter name="config" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- <function name="new"
- c:identifier="gst_video_converter_new"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Create a new converter object to convert between @in_info and @out_info
- with @config.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstVideoConverter or %NULL if conversion is not possible.</doc>
- <type name="VideoConverter" c:type="GstVideoConverter*"/>
- </return-value>
- <parameters>
- <parameter name="in_info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="out_info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="config" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure with configuration options</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <record name="VideoCropMeta" c:type="GstVideoCropMeta">
- <doc xml:space="preserve">Extra buffer metadata describing image cropping.</doc>
- <field name="meta" writable="1">
- <doc xml:space="preserve">parent #GstMeta</doc>
- <type name="Gst.Meta" c:type="GstMeta"/>
- </field>
- <field name="x" writable="1">
- <doc xml:space="preserve">the horizontal offset</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="y" writable="1">
- <doc xml:space="preserve">the vertical offset</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="width" writable="1">
- <doc xml:space="preserve">the cropped width</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="height" writable="1">
- <doc xml:space="preserve">the cropped height</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <function name="get_info" c:identifier="gst_video_crop_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <class name="VideoDecoder"
- c:symbol-prefix="video_decoder"
- c:type="GstVideoDecoder"
- parent="Gst.Element"
- abstract="1"
- glib:type-name="GstVideoDecoder"
- glib:get-type="gst_video_decoder_get_type"
- glib:type-struct="VideoDecoderClass">
- <doc xml:space="preserve">This base class is for video decoders turning encoded data into raw video
- frames.
- The GstVideoDecoder base class and derived subclasses should cooperate as
- follows:
- <orderedlist>
- <listitem>
- <itemizedlist><title>Configuration</title>
- <listitem><para>
- Initially, GstVideoDecoder calls @start when the decoder element
- is activated, which allows the subclass to perform any global setup.
- </para></listitem>
- <listitem><para>
- GstVideoDecoder calls @set_format to inform the subclass of caps
- describing input video data that it is about to receive, including
- possibly configuration data.
- While unlikely, it might be called more than once, if changing input
- parameters require reconfiguration.
- </para></listitem>
- <listitem><para>
- Incoming data buffers are processed as needed, described in Data
- Processing below.
- </para></listitem>
- <listitem><para>
- GstVideoDecoder calls @stop at end of all processing.
- </para></listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <itemizedlist>
- <title>Data processing</title>
- <listitem><para>
- The base class gathers input data, and optionally allows subclass
- to parse this into subsequently manageable chunks, typically
- corresponding to and referred to as 'frames'.
- </para></listitem>
- <listitem><para>
- Each input frame is provided in turn to the subclass' @handle_frame
- callback.
- The ownership of the frame is given to the @handle_frame callback.
- </para></listitem>
- <listitem><para>
- If codec processing results in decoded data, the subclass should call
- @gst_video_decoder_finish_frame to have decoded data pushed.
- downstream. Otherwise, the subclass must call
- @gst_video_decoder_drop_frame, to allow the base class to do timestamp
- and offset tracking, and possibly to requeue the frame for a later
- attempt in the case of reverse playback.
- </para></listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <itemizedlist><title>Shutdown phase</title>
- <listitem><para>
- The GstVideoDecoder class calls @stop to inform the subclass that data
- parsing will be stopped.
- </para></listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <itemizedlist><title>Additional Notes</title>
- <listitem>
- <itemizedlist><title>Seeking/Flushing</title>
- <listitem><para>
- When the pipeline is seeked or otherwise flushed, the subclass is
- informed via a call to its @reset callback, with the hard parameter
- set to true. This indicates the subclass should drop any internal data
- queues and timestamps and prepare for a fresh set of buffers to arrive
- for parsing and decoding.
- </para></listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <itemizedlist><title>End Of Stream</title>
- <listitem><para>
- At end-of-stream, the subclass @parse function may be called some final
- times with the at_eos parameter set to true, indicating that the element
- should not expect any more data to be arriving, and it should parse and
- remaining frames and call gst_video_decoder_have_frame() if possible.
- </para></listitem>
- </itemizedlist>
- </listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- The subclass is responsible for providing pad template caps for
- source and sink pads. The pads need to be named "sink" and "src". It also
- needs to provide information about the ouptput caps, when they are known.
- This may be when the base class calls the subclass' @set_format function,
- though it might be during decoding, before calling
- @gst_video_decoder_finish_frame. This is done via
- @gst_video_decoder_set_output_state
- The subclass is also responsible for providing (presentation) timestamps
- (likely based on corresponding input ones). If that is not applicable
- or possible, the base class provides limited framerate based interpolation.
- Similarly, the base class provides some limited (legacy) seeking support
- if specifically requested by the subclass, as full-fledged support
- should rather be left to upstream demuxer, parser or alike. This simple
- approach caters for seeking and duration reporting using estimated input
- bitrates. To enable it, a subclass should call
- @gst_video_decoder_set_estimate_rate to enable handling of incoming
- byte-streams.
- The base class provides some support for reverse playback, in particular
- in case incoming data is not packetized or upstream does not provide
- fragments on keyframe boundaries. However, the subclass should then be
- prepared for the parsing and frame processing stage to occur separately
- (in normal forward processing, the latter immediately follows the former),
- The subclass also needs to ensure the parsing stage properly marks
- keyframes, unless it knows the upstream elements will do so properly for
- incoming data.
- The bare minimum that a functional subclass needs to implement is:
- <itemizedlist>
- <listitem><para>Provide pad templates</para></listitem>
- <listitem><para>
- Inform the base class of output caps via
- @gst_video_decoder_set_output_state
- </para></listitem>
- <listitem><para>
- Parse input data, if it is not considered packetized from upstream
- Data will be provided to @parse which should invoke
- @gst_video_decoder_add_to_frame and @gst_video_decoder_have_frame to
- separate the data belonging to each video frame.
- </para></listitem>
- <listitem><para>
- Accept data in @handle_frame and provide decoded results to
- @gst_video_decoder_finish_frame, or call @gst_video_decoder_drop_frame.
- </para></listitem>
- </itemizedlist></doc>
- <virtual-method name="close">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="decide_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="drain">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="finish">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="getcaps">
- <return-value transfer-ownership="full">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="filter" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handle_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="negotiate" invoker="negotiate">
- <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
- Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
- negotiate fails.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="open">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="parse">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="adapter" transfer-ownership="none">
- <type name="GstBase.Adapter" c:type="GstAdapter*"/>
- </parameter>
- <parameter name="at_eos" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="propose_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reset">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="hard" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_format">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="sink_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="sink_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="src_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="src_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="transform_meta">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="meta" transfer-ownership="none">
- <type name="Gst.Meta" c:type="GstMeta*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="add_to_frame"
- c:identifier="gst_video_decoder_add_to_frame">
- <doc xml:space="preserve">Removes next @n_bytes of input data and adds it to currently parsed frame.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="n_bytes" transfer-ownership="none">
- <doc xml:space="preserve">the number of bytes to add</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="allocate_output_buffer"
- c:identifier="gst_video_decoder_allocate_output_buffer">
- <doc xml:space="preserve">Helper function that allocates a buffer to hold a video frame for @decoder's
- current #GstVideoCodecState.
- You should use gst_video_decoder_allocate_output_frame() instead of this
- function, if possible at all.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">allocated buffer, or NULL if no buffer could be
- allocated (e.g. when downstream is flushing or shutting down)</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="allocate_output_frame"
- c:identifier="gst_video_decoder_allocate_output_frame">
- <doc xml:space="preserve">Helper function that allocates a buffer to hold a video frame for @decoder's
- current #GstVideoCodecState. Subclass should already have configured video
- state and set src pad caps.
- The buffer allocated here is owned by the frame and you should only
- keep references to the frame, not the buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%GST_FLOW_OK if an output buffer could be allocated</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="drop_frame" c:identifier="gst_video_decoder_drop_frame">
- <doc xml:space="preserve">Similar to gst_video_decoder_finish_frame(), but drops @frame in any
- case and posts a QoS message with the frame's details on the bus.
- In any case, the frame is considered finished and released.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn, usually GST_FLOW_OK.</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="full">
- <doc xml:space="preserve">the #GstVideoCodecFrame to drop</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="finish_frame"
- c:identifier="gst_video_decoder_finish_frame">
- <doc xml:space="preserve">@frame should have a valid decoded data buffer, whose metadata fields
- are then appropriately set according to frame data and pushed downstream.
- If no output data is provided, @frame is considered skipped.
- In any case, the frame is considered finished and released.
- After calling this function the output buffer of the frame is to be
- considered read-only. This function will also change the metadata
- of the buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn resulting from sending data downstream</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="full">
- <doc xml:space="preserve">a decoded #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_allocator"
- c:identifier="gst_video_decoder_get_allocator">
- <doc xml:space="preserve">Lets #GstVideoDecoder sub-classes to know the memory @allocator
- used by the base class and its @params.
- Unref the @allocator after use it.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="allocator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstAllocator
- used</doc>
- <type name="Gst.Allocator" c:type="GstAllocator**"/>
- </parameter>
- <parameter name="params"
- direction="out"
- caller-allocates="1"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the
- #GstAllocatorParams of @allocator</doc>
- <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_buffer_pool"
- c:identifier="gst_video_decoder_get_buffer_pool">
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the instance of the #GstBufferPool used
- by the decoder; free it after use it</doc>
- <type name="Gst.BufferPool" c:type="GstBufferPool*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_estimate_rate"
- c:identifier="gst_video_decoder_get_estimate_rate">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">currently configured byte to time conversion setting</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_frame" c:identifier="gst_video_decoder_get_frame">
- <doc xml:space="preserve">Get a pending unfinished #GstVideoCodecFrame</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame identified by @frame_number.</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame_number" transfer-ownership="none">
- <doc xml:space="preserve">system_frame_number of a frame</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_frames" c:identifier="gst_video_decoder_get_frames">
- <doc xml:space="preserve">Get all pending unfinished #GstVideoCodecFrame</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="VideoCodecFrame"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_latency" c:identifier="gst_video_decoder_get_latency">
- <doc xml:space="preserve">Query the configured decoder latency. Results will be returned via
- @min_latency and @max_latency.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="min_latency"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address of variable in which to store the
- configured minimum latency, or %NULL</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="max_latency"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address of variable in which to store the
- configured mximum latency, or %NULL</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_max_decode_time"
- c:identifier="gst_video_decoder_get_max_decode_time">
- <doc xml:space="preserve">Determines maximum possible decoding time for @frame that will
- allow it to decode and arrive in time (as determined by QoS events).
- In particular, a negative result means decoding in time is no longer possible
- and should therefore occur as soon/skippy as possible.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">max decoding time.</doc>
- <type name="Gst.ClockTimeDiff" c:type="GstClockTimeDiff"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_max_errors"
- c:identifier="gst_video_decoder_get_max_errors">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">currently configured decoder tolerated error count.</doc>
- <type name="gint" c:type="gint"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_needs_format"
- c:identifier="gst_video_decoder_get_needs_format"
- version="1.4">
- <doc xml:space="preserve">Queries decoder required format handling.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if required format handling is enabled.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_oldest_frame"
- c:identifier="gst_video_decoder_get_oldest_frame">
- <doc xml:space="preserve">Get the oldest pending unfinished #GstVideoCodecFrame</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">oldest pending unfinished #GstVideoCodecFrame.</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_output_state"
- c:identifier="gst_video_decoder_get_output_state">
- <doc xml:space="preserve">Get the #GstVideoCodecState currently describing the output stream.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GstVideoCodecState describing format of video data.</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_packetized"
- c:identifier="gst_video_decoder_get_packetized">
- <doc xml:space="preserve">Queries whether input data is considered packetized or not by the
- base class.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if input data is considered packetized.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_pending_frame_size"
- c:identifier="gst_video_decoder_get_pending_frame_size"
- version="1.4">
- <doc xml:space="preserve">Returns the number of bytes previously added to the current frame
- by calling gst_video_decoder_add_to_frame().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The number of bytes pending for the current frame</doc>
- <type name="gsize" c:type="gsize"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_qos_proportion"
- c:identifier="gst_video_decoder_get_qos_proportion"
- version="1.0.3">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The current QoS proportion.</doc>
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder
- current QoS proportion, or %NULL</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="have_frame" c:identifier="gst_video_decoder_have_frame">
- <doc xml:space="preserve">Gathers all data collected for currently parsed frame, gathers corresponding
- metadata and passes it along for further processing, i.e. @handle_frame.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="merge_tags" c:identifier="gst_video_decoder_merge_tags">
- <doc xml:space="preserve">Sets the audio decoder tags and how they should be merged with any
- upstream stream tags. This will override any tags previously-set
- with gst_audio_decoder_merge_tags().
- Note that this is provided for convenience, and the subclass is
- not required to use this and can still do tag handling on its own.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="tags"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstTagList to merge, or NULL to unset
- previously-set tags</doc>
- <type name="Gst.TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc>
- <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="negotiate" c:identifier="gst_video_decoder_negotiate">
- <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
- Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
- negotiate fails.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="proxy_getcaps"
- c:identifier="gst_video_decoder_proxy_getcaps"
- version="1.6">
- <doc xml:space="preserve">Returns caps that express @caps (or sink template caps if @caps == NULL)
- restricted to resolution/format/... combinations supported by downstream
- elements.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps owned by caller</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">initial caps</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="filter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">filter caps</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="release_frame"
- c:identifier="gst_video_decoder_release_frame"
- version="1.2.2">
- <doc xml:space="preserve">Similar to gst_video_decoder_drop_frame(), but simply releases @frame
- without any processing other than removing it from list of pending frames,
- after which it is considered finished and released.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="full">
- <doc xml:space="preserve">the #GstVideoCodecFrame to release</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_estimate_rate"
- c:identifier="gst_video_decoder_set_estimate_rate">
- <doc xml:space="preserve">Allows baseclass to perform byte to time estimated conversion.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">whether to enable byte to time conversion</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_latency" c:identifier="gst_video_decoder_set_latency">
- <doc xml:space="preserve">Lets #GstVideoDecoder sub-classes tell the baseclass what the decoder
- latency is. Will also post a LATENCY message on the bus so the pipeline
- can reconfigure its global latency.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="min_latency" transfer-ownership="none">
- <doc xml:space="preserve">minimum latency</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="max_latency" transfer-ownership="none">
- <doc xml:space="preserve">maximum latency</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_max_errors"
- c:identifier="gst_video_decoder_set_max_errors">
- <doc xml:space="preserve">Sets numbers of tolerated decoder errors, where a tolerated one is then only
- warned about, but more than tolerated will lead to fatal error. You can set
- -1 for never returning fatal errors. Default is set to
- GST_VIDEO_DECODER_MAX_ERRORS.
- The '-1' option was added in 1.4</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="num" transfer-ownership="none">
- <doc xml:space="preserve">max tolerated errors</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_needs_format"
- c:identifier="gst_video_decoder_set_needs_format"
- version="1.4">
- <doc xml:space="preserve">Configures decoder format needs. If enabled, subclass needs to be
- negotiated with format caps before it can process any data. It will then
- never be handed any data before it has been configured.
- Otherwise, it might be handed data without having been configured and
- is then expected being able to do so either by default
- or based on the input data.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="dec" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="enabled" transfer-ownership="none">
- <doc xml:space="preserve">new state</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_output_state"
- c:identifier="gst_video_decoder_set_output_state">
- <doc xml:space="preserve">Creates a new #GstVideoCodecState with the specified @fmt, @width and @height
- as the output state for the decoder.
- Any previously set output state on @decoder will be replaced by the newly
- created one.
- If the subclass wishes to copy over existing fields (like pixel aspec ratio,
- or framerate) from an existing #GstVideoCodecState, it can be provided as a
- @reference.
- If the subclass wishes to override some fields from the output state (like
- pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.
- The new output state will only take effect (set on pads and buffers) starting
- from the next call to #gst_video_decoder_finish_frame().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly configured output state.</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="fmt" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">The width in pixels</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">The height in pixels</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="reference"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">An optional reference #GstVideoCodecState</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_packetized"
- c:identifier="gst_video_decoder_set_packetized">
- <doc xml:space="preserve">Allows baseclass to consider input data as packetized or not. If the
- input is packetized, then the @parse method will not be called.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="packetized" transfer-ownership="none">
- <doc xml:space="preserve">whether the input data should be considered as packetized.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_use_default_pad_acceptcaps"
- c:identifier="gst_video_decoder_set_use_default_pad_acceptcaps"
- version="1.6">
- <doc xml:space="preserve">Lets #GstVideoDecoder sub-classes decide if they want the sink pad
- to use the default pad query handler to reply to accept-caps queries.
- By setting this to true it is possible to further customize the default
- handler with %GST_PAD_SET_ACCEPT_INTERSECT and
- %GST_PAD_SET_ACCEPT_TEMPLATE</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </instance-parameter>
- <parameter name="use" transfer-ownership="none">
- <doc xml:space="preserve">if the default pad accept-caps query handling should be used</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <field name="element" readable="0" private="1">
- <type name="Gst.Element" c:type="GstElement"/>
- </field>
- <field name="sinkpad" readable="0" private="1">
- <type name="Gst.Pad" c:type="GstPad*"/>
- </field>
- <field name="srcpad" readable="0" private="1">
- <type name="Gst.Pad" c:type="GstPad*"/>
- </field>
- <field name="stream_lock" readable="0" private="1">
- <type name="GLib.RecMutex" c:type="GRecMutex"/>
- </field>
- <field name="input_segment" readable="0" private="1">
- <type name="Gst.Segment" c:type="GstSegment"/>
- </field>
- <field name="output_segment" readable="0" private="1">
- <type name="Gst.Segment" c:type="GstSegment"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="VideoDecoderPrivate" c:type="GstVideoDecoderPrivate*"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="void" fixed-size="20">
- <type name="gpointer" c:type="void*"/>
- </array>
- </field>
- </class>
- <record name="VideoDecoderClass"
- c:type="GstVideoDecoderClass"
- glib:is-gtype-struct-for="VideoDecoder">
- <doc xml:space="preserve">Subclasses can override any of the available virtual methods or not, as
- needed. At minimum @handle_frame needs to be overridden, and @set_format
- and likely as well. If non-packetized input is supported or expected,
- @parse needs to be overridden as well.</doc>
- <field name="element_class" readable="0" private="1">
- <type name="Gst.ElementClass" c:type="GstElementClass"/>
- </field>
- <field name="open">
- <callback name="open">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close">
- <callback name="close">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start">
- <callback name="start">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop">
- <callback name="stop">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="parse">
- <callback name="parse">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="adapter" transfer-ownership="none">
- <type name="GstBase.Adapter" c:type="GstAdapter*"/>
- </parameter>
- <parameter name="at_eos" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_format">
- <callback name="set_format">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reset">
- <callback name="reset">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="hard" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="finish">
- <callback name="finish">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handle_frame">
- <callback name="handle_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="sink_event">
- <callback name="sink_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="src_event">
- <callback name="src_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="negotiate">
- <callback name="negotiate">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDecoder</doc>
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="decide_allocation">
- <callback name="decide_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="propose_allocation">
- <callback name="propose_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush">
- <callback name="flush">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="sink_query">
- <callback name="sink_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="src_query">
- <callback name="src_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="getcaps">
- <callback name="getcaps">
- <return-value transfer-ownership="full">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="filter" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="drain">
- <callback name="drain">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="transform_meta">
- <callback name="transform_meta">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="decoder" transfer-ownership="none">
- <type name="VideoDecoder" c:type="GstVideoDecoder*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="meta" transfer-ownership="none">
- <type name="Gst.Meta" c:type="GstMeta*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="void" fixed-size="14">
- <type name="gpointer" c:type="void*"/>
- </array>
- </field>
- </record>
- <record name="VideoDecoderPrivate"
- c:type="GstVideoDecoderPrivate"
- disguised="1">
- </record>
- <record name="VideoDither" c:type="GstVideoDither" disguised="1">
- <doc xml:space="preserve">GstVideoDither provides implementations of several dithering algorithms
- that can be applied to lines of video pixels to quantize and dither them.</doc>
- <method name="free" c:identifier="gst_video_dither_free">
- <doc xml:space="preserve">Free @dither</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="dither" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDither</doc>
- <type name="VideoDither" c:type="GstVideoDither*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="line" c:identifier="gst_video_dither_line">
- <doc xml:space="preserve">Dither @width pixels starting from offset @x in @line using @dither.
- @y is the line number of @line in the output image.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="dither" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDither</doc>
- <type name="VideoDither" c:type="GstVideoDither*"/>
- </instance-parameter>
- <parameter name="line"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointer to the pixels of the line</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">x coordinate</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">y coordinate</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the width</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <function name="new"
- c:identifier="gst_video_dither_new"
- introspectable="0">
- <doc xml:space="preserve">Make a new dither object for dithering lines of @format using the
- algorithm described by @method.
- Each component will be quantized to a multiple of @quantizer. Better
- performance is achived when @quantizer is a power of 2.
- @width is the width of the lines that this ditherer will handle.</doc>
- <return-value>
- <doc xml:space="preserve">a new #GstVideoDither</doc>
- <type name="VideoDither" c:type="GstVideoDither*"/>
- </return-value>
- <parameters>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDitherMethod</doc>
- <type name="VideoDitherMethod" c:type="GstVideoDitherMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDitherFlags</doc>
- <type name="VideoDitherFlags" c:type="GstVideoDitherFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="quantizer" transfer-ownership="none">
- <doc xml:space="preserve">quantizer</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the width of the lines</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <bitfield name="VideoDitherFlags"
- glib:type-name="GstVideoDitherFlags"
- glib:get-type="gst_video_dither_flags_get_type"
- c:type="GstVideoDitherFlags">
- <doc xml:space="preserve">Extra flags that influence the result from gst_video_chroma_resample_new().</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_DITHER_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="interlaced"
- value="1"
- c:identifier="GST_VIDEO_DITHER_FLAG_INTERLACED"
- glib:nick="interlaced">
- <doc xml:space="preserve">the input is interlaced</doc>
- </member>
- <member name="quantize"
- value="2"
- c:identifier="GST_VIDEO_DITHER_FLAG_QUANTIZE"
- glib:nick="quantize">
- <doc xml:space="preserve">quantize values in addition to adding dither.</doc>
- </member>
- </bitfield>
- <enumeration name="VideoDitherMethod"
- glib:type-name="GstVideoDitherMethod"
- glib:get-type="gst_video_dither_method_get_type"
- c:type="GstVideoDitherMethod">
- <doc xml:space="preserve">Different dithering methods to use.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_DITHER_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no dithering</doc>
- </member>
- <member name="verterr"
- value="1"
- c:identifier="GST_VIDEO_DITHER_VERTERR"
- glib:nick="verterr">
- <doc xml:space="preserve">propagate rounding errors downwards</doc>
- </member>
- <member name="floyd_steinberg"
- value="2"
- c:identifier="GST_VIDEO_DITHER_FLOYD_STEINBERG"
- glib:nick="floyd-steinberg">
- <doc xml:space="preserve">Dither with floyd-steinberg error diffusion</doc>
- </member>
- <member name="sierra_lite"
- value="3"
- c:identifier="GST_VIDEO_DITHER_SIERRA_LITE"
- glib:nick="sierra-lite">
- <doc xml:space="preserve">Dither with Sierra Lite error diffusion</doc>
- </member>
- <member name="bayer"
- value="4"
- c:identifier="GST_VIDEO_DITHER_BAYER"
- glib:nick="bayer">
- <doc xml:space="preserve">ordered dither using a bayer pattern</doc>
- </member>
- </enumeration>
- <class name="VideoEncoder"
- c:symbol-prefix="video_encoder"
- c:type="GstVideoEncoder"
- parent="Gst.Element"
- abstract="1"
- glib:type-name="GstVideoEncoder"
- glib:get-type="gst_video_encoder_get_type"
- glib:type-struct="VideoEncoderClass">
- <doc xml:space="preserve">This base class is for video encoders turning raw video into
- encoded video data.
- GstVideoEncoder and subclass should cooperate as follows.
- <orderedlist>
- <listitem>
- <itemizedlist><title>Configuration</title>
- <listitem><para>
- Initially, GstVideoEncoder calls @start when the encoder element
- is activated, which allows subclass to perform any global setup.
- </para></listitem>
- <listitem><para>
- GstVideoEncoder calls @set_format to inform subclass of the format
- of input video data that it is about to receive. Subclass should
- setup for encoding and configure base class as appropriate
- (e.g. latency). While unlikely, it might be called more than once,
- if changing input parameters require reconfiguration. Baseclass
- will ensure that processing of current configuration is finished.
- </para></listitem>
- <listitem><para>
- GstVideoEncoder calls @stop at end of all processing.
- </para></listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <itemizedlist>
- <title>Data processing</title>
- <listitem><para>
- Base class collects input data and metadata into a frame and hands
- this to subclass' @handle_frame.
- </para></listitem>
- <listitem><para>
- If codec processing results in encoded data, subclass should call
- @gst_video_encoder_finish_frame to have encoded data pushed
- downstream.
- </para></listitem>
- <listitem><para>
- If implemented, baseclass calls subclass @pre_push just prior to
- pushing to allow subclasses to modify some metadata on the buffer.
- If it returns GST_FLOW_OK, the buffer is pushed downstream.
- </para></listitem>
- <listitem><para>
- GstVideoEncoderClass will handle both srcpad and sinkpad events.
- Sink events will be passed to subclass if @event callback has been
- provided.
- </para></listitem>
- </itemizedlist>
- </listitem>
- <listitem>
- <itemizedlist><title>Shutdown phase</title>
- <listitem><para>
- GstVideoEncoder class calls @stop to inform the subclass that data
- parsing will be stopped.
- </para></listitem>
- </itemizedlist>
- </listitem>
- </orderedlist>
- Subclass is responsible for providing pad template caps for
- source and sink pads. The pads need to be named "sink" and "src". It should
- also be able to provide fixed src pad caps in @getcaps by the time it calls
- @gst_video_encoder_finish_frame.
- Things that subclass need to take care of:
- <itemizedlist>
- <listitem><para>Provide pad templates</para></listitem>
- <listitem><para>
- Provide source pad caps before pushing the first buffer
- </para></listitem>
- <listitem><para>
- Accept data in @handle_frame and provide encoded results to
- @gst_video_encoder_finish_frame.
- </para></listitem>
- </itemizedlist></doc>
- <implements name="Gst.Preset"/>
- <virtual-method name="close">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="decide_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="finish">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="flush">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="getcaps">
- <return-value transfer-ownership="full">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enc" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="filter" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handle_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="negotiate" invoker="negotiate">
- <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
- Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
- negotiate fails.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="open">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="pre_push">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="propose_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="reset">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="hard" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_format">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="sink_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="sink_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="src_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="src_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="start">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="stop">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="transform_meta">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="meta" transfer-ownership="none">
- <type name="Gst.Meta" c:type="GstMeta*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="allocate_output_buffer"
- c:identifier="gst_video_encoder_allocate_output_buffer">
- <doc xml:space="preserve">Helper function that allocates a buffer to hold an encoded video frame
- for @encoder's current #GstVideoCodecState.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">allocated buffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of the buffer</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="allocate_output_frame"
- c:identifier="gst_video_encoder_allocate_output_frame">
- <doc xml:space="preserve">Helper function that allocates a buffer to hold an encoded video frame for @encoder's
- current #GstVideoCodecState. Subclass should already have configured video
- state and set src pad caps.
- The buffer allocated here is owned by the frame and you should only
- keep references to the frame, not the buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%GST_FLOW_OK if an output buffer could be allocated</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="size" transfer-ownership="none">
- <doc xml:space="preserve">size of the buffer</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- </parameters>
- </method>
- <method name="finish_frame"
- c:identifier="gst_video_encoder_finish_frame">
- <doc xml:space="preserve">@frame must have a valid encoded data buffer, whose metadata fields
- are then appropriately set according to frame data or no buffer at
- all if the frame should be dropped.
- It is subsequently pushed downstream or provided to @pre_push.
- In any case, the frame is considered finished and released.
- After calling this function the output buffer of the frame is to be
- considered read-only. This function will also change the metadata
- of the buffer.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstFlowReturn resulting from sending data downstream</doc>
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="full">
- <doc xml:space="preserve">an encoded #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_allocator"
- c:identifier="gst_video_encoder_get_allocator">
- <doc xml:space="preserve">Lets #GstVideoEncoder sub-classes to know the memory @allocator
- used by the base class and its @params.
- Unref the @allocator after use it.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="allocator"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the #GstAllocator
- used</doc>
- <type name="Gst.Allocator" c:type="GstAllocator**"/>
- </parameter>
- <parameter name="params"
- direction="out"
- caller-allocates="1"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">the
- #GstAllocatorParams of @allocator</doc>
- <type name="Gst.AllocationParams" c:type="GstAllocationParams*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_frame" c:identifier="gst_video_encoder_get_frame">
- <doc xml:space="preserve">Get a pending unfinished #GstVideoCodecFrame</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame identified by @frame_number.</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEnccoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="frame_number" transfer-ownership="none">
- <doc xml:space="preserve">system_frame_number of a frame</doc>
- <type name="gint" c:type="int"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_frames" c:identifier="gst_video_encoder_get_frames">
- <doc xml:space="preserve">Get all pending unfinished #GstVideoCodecFrame</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">pending unfinished #GstVideoCodecFrame.</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="VideoCodecFrame"/>
- </type>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_latency" c:identifier="gst_video_encoder_get_latency">
- <doc xml:space="preserve">Query the configured encoding latency. Results will be returned via
- @min_latency and @max_latency.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="min_latency"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address of variable in which to store the
- configured minimum latency, or %NULL</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="max_latency"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address of variable in which to store the
- configured maximum latency, or %NULL</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_oldest_frame"
- c:identifier="gst_video_encoder_get_oldest_frame">
- <doc xml:space="preserve">Get the oldest unfinished pending #GstVideoCodecFrame</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">oldest unfinished pending #GstVideoCodecFrame</doc>
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_output_state"
- c:identifier="gst_video_encoder_get_output_state">
- <doc xml:space="preserve">Get the current #GstVideoCodecState</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">#GstVideoCodecState describing format of video data.</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="merge_tags" c:identifier="gst_video_encoder_merge_tags">
- <doc xml:space="preserve">Sets the video encoder tags and how they should be merged with any
- upstream stream tags. This will override any tags previously-set
- with gst_video_encoder_merge_tags().
- Note that this is provided for convenience, and the subclass is
- not required to use this and can still do tag handling on its own.
- MT safe.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="tags"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstTagList to merge, or NULL to unset
- previously-set tags</doc>
- <type name="Gst.TagList" c:type="const GstTagList*"/>
- </parameter>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">the #GstTagMergeMode to use, usually #GST_TAG_MERGE_REPLACE</doc>
- <type name="Gst.TagMergeMode" c:type="GstTagMergeMode"/>
- </parameter>
- </parameters>
- </method>
- <method name="negotiate" c:identifier="gst_video_encoder_negotiate">
- <doc xml:space="preserve">Negotiate with downstream elements to currently configured #GstVideoCodecState.
- Unmark GST_PAD_FLAG_NEED_RECONFIGURE in any case. But mark it again if
- negotiate fails.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="proxy_getcaps"
- c:identifier="gst_video_encoder_proxy_getcaps">
- <doc xml:space="preserve">Returns caps that express @caps (or sink template caps if @caps == NULL)
- restricted to resolution/format/... combinations supported by downstream
- elements (e.g. muxers).</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a #GstCaps owned by caller</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="enc" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="caps"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">initial caps</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="filter"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">filter caps</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_headers" c:identifier="gst_video_encoder_set_headers">
- <doc xml:space="preserve">Set the codec headers to be sent downstream whenever requested.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="headers" transfer-ownership="full">
- <doc xml:space="preserve">a list of #GstBuffer containing the codec header</doc>
- <type name="GLib.List" c:type="GList*">
- <type name="Gst.Buffer"/>
- </type>
- </parameter>
- </parameters>
- </method>
- <method name="set_latency" c:identifier="gst_video_encoder_set_latency">
- <doc xml:space="preserve">Informs baseclass of encoding latency.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="min_latency" transfer-ownership="none">
- <doc xml:space="preserve">minimum latency</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="max_latency" transfer-ownership="none">
- <doc xml:space="preserve">maximum latency</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_min_pts" c:identifier="gst_video_encoder_set_min_pts">
- <doc xml:space="preserve">Request minimal value for PTS passed to handle_frame.
- For streams with reordered frames this can be used to ensure that there
- is enough time to accomodate first DTS, which may be less than first PTS
- Since 1.6</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="min_pts" transfer-ownership="none">
- <doc xml:space="preserve">minimal PTS that will be passed to handle_frame</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_output_state"
- c:identifier="gst_video_encoder_set_output_state">
- <doc xml:space="preserve">Creates a new #GstVideoCodecState with the specified caps as the output state
- for the encoder.
- Any previously set output state on @encoder will be replaced by the newly
- created one.
- The specified @caps should not contain any resolution, pixel-aspect-ratio,
- framerate, codec-data, .... Those should be specified instead in the returned
- #GstVideoCodecState.
- If the subclass wishes to copy over existing fields (like pixel aspect ratio,
- or framerate) from an existing #GstVideoCodecState, it can be provided as a
- @reference.
- If the subclass wishes to override some fields from the output state (like
- pixel-aspect-ratio or framerate) it can do so on the returned #GstVideoCodecState.
- The new output state will only take effect (set on pads and buffers) starting
- from the next call to #gst_video_encoder_finish_frame().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">the newly configured output state.</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </return-value>
- <parameters>
- <instance-parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="full">
- <doc xml:space="preserve">the #GstCaps to use for the output</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="reference"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">An optional reference @GstVideoCodecState</doc>
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </parameter>
- </parameters>
- </method>
- <field name="element" readable="0" private="1">
- <type name="Gst.Element" c:type="GstElement"/>
- </field>
- <field name="sinkpad" readable="0" private="1">
- <type name="Gst.Pad" c:type="GstPad*"/>
- </field>
- <field name="srcpad" readable="0" private="1">
- <type name="Gst.Pad" c:type="GstPad*"/>
- </field>
- <field name="stream_lock" readable="0" private="1">
- <type name="GLib.RecMutex" c:type="GRecMutex"/>
- </field>
- <field name="input_segment" readable="0" private="1">
- <type name="Gst.Segment" c:type="GstSegment"/>
- </field>
- <field name="output_segment" readable="0" private="1">
- <type name="Gst.Segment" c:type="GstSegment"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="VideoEncoderPrivate" c:type="GstVideoEncoderPrivate*"/>
- </field>
- <field name="padding" readable="0" private="1">
- <array zero-terminated="0" c:type="void" fixed-size="20">
- <type name="gpointer" c:type="void*"/>
- </array>
- </field>
- </class>
- <record name="VideoEncoderClass"
- c:type="GstVideoEncoderClass"
- glib:is-gtype-struct-for="VideoEncoder">
- <doc xml:space="preserve">Subclasses can override any of the available virtual methods or not, as
- needed. At minimum @handle_frame needs to be overridden, and @set_format
- and @get_caps are likely needed as well.</doc>
- <field name="element_class" readable="0" private="1">
- <type name="Gst.ElementClass" c:type="GstElementClass"/>
- </field>
- <field name="open">
- <callback name="open">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="close">
- <callback name="close">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="start">
- <callback name="start">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="stop">
- <callback name="stop">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_format">
- <callback name="set_format">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="state" transfer-ownership="none">
- <type name="VideoCodecState" c:type="GstVideoCodecState*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handle_frame">
- <callback name="handle_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="reset">
- <callback name="reset">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="hard" transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="finish">
- <callback name="finish">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="pre_push">
- <callback name="pre_push">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="getcaps">
- <callback name="getcaps">
- <return-value transfer-ownership="full">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <parameter name="enc" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="filter" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="sink_event">
- <callback name="sink_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="src_event">
- <callback name="src_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="negotiate">
- <callback name="negotiate">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if the negotiation succeeded, else #FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoEncoder</doc>
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="decide_allocation">
- <callback name="decide_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="propose_allocation">
- <callback name="propose_allocation">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="flush">
- <callback name="flush">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="sink_query">
- <callback name="sink_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="src_query">
- <callback name="src_query">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="query" transfer-ownership="none">
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="transform_meta">
- <callback name="transform_meta">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="encoder" transfer-ownership="none">
- <type name="VideoEncoder" c:type="GstVideoEncoder*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoCodecFrame" c:type="GstVideoCodecFrame*"/>
- </parameter>
- <parameter name="meta" transfer-ownership="none">
- <type name="Gst.Meta" c:type="GstMeta*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="16">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="VideoEncoderPrivate"
- c:type="GstVideoEncoderPrivate"
- disguised="1">
- </record>
- <class name="VideoFilter"
- c:symbol-prefix="video_filter"
- c:type="GstVideoFilter"
- parent="GstBase.BaseTransform"
- abstract="1"
- glib:type-name="GstVideoFilter"
- glib:get-type="gst_video_filter_get_type"
- glib:type-struct="VideoFilterClass">
- <doc xml:space="preserve"><refsect2>
- <para>
- Provides useful functions and a base class for video filters.
- </para>
- <para>
- The videofilter will by default enable QoS on the parent GstBaseTransform
- to implement frame dropping.
- </para>
- </refsect2></doc>
- <virtual-method name="set_info">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="filter" transfer-ownership="none">
- <type name="VideoFilter" c:type="GstVideoFilter*"/>
- </instance-parameter>
- <parameter name="incaps" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="in_info" transfer-ownership="none">
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="outcaps" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="out_info" transfer-ownership="none">
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="transform_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="filter" transfer-ownership="none">
- <type name="VideoFilter" c:type="GstVideoFilter*"/>
- </instance-parameter>
- <parameter name="inframe" transfer-ownership="none">
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- <parameter name="outframe" transfer-ownership="none">
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="transform_frame_ip">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="trans" transfer-ownership="none">
- <type name="VideoFilter" c:type="GstVideoFilter*"/>
- </instance-parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <field name="element">
- <type name="GstBase.BaseTransform" c:type="GstBaseTransform"/>
- </field>
- <field name="negotiated">
- <type name="gboolean" c:type="gboolean"/>
- </field>
- <field name="in_info">
- <type name="VideoInfo" c:type="GstVideoInfo"/>
- </field>
- <field name="out_info">
- <type name="VideoInfo" c:type="GstVideoInfo"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </class>
- <record name="VideoFilterClass"
- c:type="GstVideoFilterClass"
- glib:is-gtype-struct-for="VideoFilter">
- <doc xml:space="preserve">The video filter class structure.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent class structure</doc>
- <type name="GstBase.BaseTransformClass"
- c:type="GstBaseTransformClass"/>
- </field>
- <field name="set_info">
- <callback name="set_info">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="filter" transfer-ownership="none">
- <type name="VideoFilter" c:type="GstVideoFilter*"/>
- </parameter>
- <parameter name="incaps" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="in_info" transfer-ownership="none">
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="outcaps" transfer-ownership="none">
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </parameter>
- <parameter name="out_info" transfer-ownership="none">
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="transform_frame">
- <callback name="transform_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="filter" transfer-ownership="none">
- <type name="VideoFilter" c:type="GstVideoFilter*"/>
- </parameter>
- <parameter name="inframe" transfer-ownership="none">
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- <parameter name="outframe" transfer-ownership="none">
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="transform_frame_ip">
- <callback name="transform_frame_ip">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="trans" transfer-ownership="none">
- <type name="VideoFilter" c:type="GstVideoFilter*"/>
- </parameter>
- <parameter name="frame" transfer-ownership="none">
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <bitfield name="VideoFlags"
- glib:type-name="GstVideoFlags"
- glib:get-type="gst_video_flags_get_type"
- c:type="GstVideoFlags">
- <doc xml:space="preserve">Extra video flags</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="variable_fps"
- value="1"
- c:identifier="GST_VIDEO_FLAG_VARIABLE_FPS"
- glib:nick="variable-fps">
- <doc xml:space="preserve">a variable fps is selected, fps_n and fps_d
- denote the maximum fps of the video</doc>
- </member>
- <member name="premultiplied_alpha"
- value="2"
- c:identifier="GST_VIDEO_FLAG_PREMULTIPLIED_ALPHA"
- glib:nick="premultiplied-alpha">
- <doc xml:space="preserve">Each color has been scaled by the alpha
- value.</doc>
- </member>
- </bitfield>
- <enumeration name="VideoFormat"
- glib:type-name="GstVideoFormat"
- glib:get-type="gst_video_format_get_type"
- c:type="GstVideoFormat">
- <doc xml:space="preserve">Enum value describing the most common video formats.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_FORMAT_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">Unknown or unset video format id</doc>
- </member>
- <member name="encoded"
- value="1"
- c:identifier="GST_VIDEO_FORMAT_ENCODED"
- glib:nick="encoded">
- <doc xml:space="preserve">Encoded video format. Only ever use that in caps for
- special video formats in combination with non-system
- memory GstCapsFeatures where it does not make sense
- to specify a real video format.</doc>
- </member>
- <member name="i420"
- value="2"
- c:identifier="GST_VIDEO_FORMAT_I420"
- glib:nick="i420">
- <doc xml:space="preserve">planar 4:2:0 YUV</doc>
- </member>
- <member name="yv12"
- value="3"
- c:identifier="GST_VIDEO_FORMAT_YV12"
- glib:nick="yv12">
- <doc xml:space="preserve">planar 4:2:0 YVU (like I420 but UV planes swapped)</doc>
- </member>
- <member name="yuy2"
- value="4"
- c:identifier="GST_VIDEO_FORMAT_YUY2"
- glib:nick="yuy2">
- <doc xml:space="preserve">packed 4:2:2 YUV (Y0-U0-Y1-V0 Y2-U2-Y3-V2 Y4 ...)</doc>
- </member>
- <member name="uyvy"
- value="5"
- c:identifier="GST_VIDEO_FORMAT_UYVY"
- glib:nick="uyvy">
- <doc xml:space="preserve">packed 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)</doc>
- </member>
- <member name="ayuv"
- value="6"
- c:identifier="GST_VIDEO_FORMAT_AYUV"
- glib:nick="ayuv">
- <doc xml:space="preserve">packed 4:4:4 YUV with alpha channel (A0-Y0-U0-V0 ...)</doc>
- </member>
- <member name="rgbx"
- value="7"
- c:identifier="GST_VIDEO_FORMAT_RGBx"
- glib:nick="rgbx">
- <doc xml:space="preserve">sparse rgb packed into 32 bit, space last</doc>
- </member>
- <member name="bgrx"
- value="8"
- c:identifier="GST_VIDEO_FORMAT_BGRx"
- glib:nick="bgrx">
- <doc xml:space="preserve">sparse reverse rgb packed into 32 bit, space last</doc>
- </member>
- <member name="xrgb"
- value="9"
- c:identifier="GST_VIDEO_FORMAT_xRGB"
- glib:nick="xrgb">
- <doc xml:space="preserve">sparse rgb packed into 32 bit, space first</doc>
- </member>
- <member name="xbgr"
- value="10"
- c:identifier="GST_VIDEO_FORMAT_xBGR"
- glib:nick="xbgr">
- <doc xml:space="preserve">sparse reverse rgb packed into 32 bit, space first</doc>
- </member>
- <member name="rgba"
- value="11"
- c:identifier="GST_VIDEO_FORMAT_RGBA"
- glib:nick="rgba">
- <doc xml:space="preserve">rgb with alpha channel last</doc>
- </member>
- <member name="bgra"
- value="12"
- c:identifier="GST_VIDEO_FORMAT_BGRA"
- glib:nick="bgra">
- <doc xml:space="preserve">reverse rgb with alpha channel last</doc>
- </member>
- <member name="argb"
- value="13"
- c:identifier="GST_VIDEO_FORMAT_ARGB"
- glib:nick="argb">
- <doc xml:space="preserve">rgb with alpha channel first</doc>
- </member>
- <member name="abgr"
- value="14"
- c:identifier="GST_VIDEO_FORMAT_ABGR"
- glib:nick="abgr">
- <doc xml:space="preserve">reverse rgb with alpha channel first</doc>
- </member>
- <member name="rgb"
- value="15"
- c:identifier="GST_VIDEO_FORMAT_RGB"
- glib:nick="rgb">
- <doc xml:space="preserve">rgb</doc>
- </member>
- <member name="bgr"
- value="16"
- c:identifier="GST_VIDEO_FORMAT_BGR"
- glib:nick="bgr">
- <doc xml:space="preserve">reverse rgb</doc>
- </member>
- <member name="y41b"
- value="17"
- c:identifier="GST_VIDEO_FORMAT_Y41B"
- glib:nick="y41b">
- <doc xml:space="preserve">planar 4:1:1 YUV</doc>
- </member>
- <member name="y42b"
- value="18"
- c:identifier="GST_VIDEO_FORMAT_Y42B"
- glib:nick="y42b">
- <doc xml:space="preserve">planar 4:2:2 YUV</doc>
- </member>
- <member name="yvyu"
- value="19"
- c:identifier="GST_VIDEO_FORMAT_YVYU"
- glib:nick="yvyu">
- <doc xml:space="preserve">packed 4:2:2 YUV (Y0-V0-Y1-U0 Y2-V2-Y3-U2 Y4 ...)</doc>
- </member>
- <member name="y444"
- value="20"
- c:identifier="GST_VIDEO_FORMAT_Y444"
- glib:nick="y444">
- <doc xml:space="preserve">planar 4:4:4 YUV</doc>
- </member>
- <member name="v210"
- value="21"
- c:identifier="GST_VIDEO_FORMAT_v210"
- glib:nick="v210">
- <doc xml:space="preserve">packed 4:2:2 10-bit YUV, complex format</doc>
- </member>
- <member name="v216"
- value="22"
- c:identifier="GST_VIDEO_FORMAT_v216"
- glib:nick="v216">
- <doc xml:space="preserve">packed 4:2:2 16-bit YUV, Y0-U0-Y1-V1 order</doc>
- </member>
- <member name="nv12"
- value="23"
- c:identifier="GST_VIDEO_FORMAT_NV12"
- glib:nick="nv12">
- <doc xml:space="preserve">planar 4:2:0 YUV with interleaved UV plane</doc>
- </member>
- <member name="nv21"
- value="24"
- c:identifier="GST_VIDEO_FORMAT_NV21"
- glib:nick="nv21">
- <doc xml:space="preserve">planar 4:2:0 YUV with interleaved VU plane</doc>
- </member>
- <member name="gray8"
- value="25"
- c:identifier="GST_VIDEO_FORMAT_GRAY8"
- glib:nick="gray8">
- <doc xml:space="preserve">8-bit grayscale</doc>
- </member>
- <member name="gray16_be"
- value="26"
- c:identifier="GST_VIDEO_FORMAT_GRAY16_BE"
- glib:nick="gray16-be">
- <doc xml:space="preserve">16-bit grayscale, most significant byte first</doc>
- </member>
- <member name="gray16_le"
- value="27"
- c:identifier="GST_VIDEO_FORMAT_GRAY16_LE"
- glib:nick="gray16-le">
- <doc xml:space="preserve">16-bit grayscale, least significant byte first</doc>
- </member>
- <member name="v308"
- value="28"
- c:identifier="GST_VIDEO_FORMAT_v308"
- glib:nick="v308">
- <doc xml:space="preserve">packed 4:4:4 YUV</doc>
- </member>
- <member name="rgb16"
- value="29"
- c:identifier="GST_VIDEO_FORMAT_RGB16"
- glib:nick="rgb16">
- <doc xml:space="preserve">rgb 5-6-5 bits per component</doc>
- </member>
- <member name="bgr16"
- value="30"
- c:identifier="GST_VIDEO_FORMAT_BGR16"
- glib:nick="bgr16">
- <doc xml:space="preserve">reverse rgb 5-6-5 bits per component</doc>
- </member>
- <member name="rgb15"
- value="31"
- c:identifier="GST_VIDEO_FORMAT_RGB15"
- glib:nick="rgb15">
- <doc xml:space="preserve">rgb 5-5-5 bits per component</doc>
- </member>
- <member name="bgr15"
- value="32"
- c:identifier="GST_VIDEO_FORMAT_BGR15"
- glib:nick="bgr15">
- <doc xml:space="preserve">reverse rgb 5-5-5 bits per component</doc>
- </member>
- <member name="uyvp"
- value="33"
- c:identifier="GST_VIDEO_FORMAT_UYVP"
- glib:nick="uyvp">
- <doc xml:space="preserve">packed 10-bit 4:2:2 YUV (U0-Y0-V0-Y1 U2-Y2-V2-Y3 U4 ...)</doc>
- </member>
- <member name="a420"
- value="34"
- c:identifier="GST_VIDEO_FORMAT_A420"
- glib:nick="a420">
- <doc xml:space="preserve">planar 4:4:2:0 AYUV</doc>
- </member>
- <member name="rgb8p"
- value="35"
- c:identifier="GST_VIDEO_FORMAT_RGB8P"
- glib:nick="rgb8p">
- <doc xml:space="preserve">8-bit paletted RGB</doc>
- </member>
- <member name="yuv9"
- value="36"
- c:identifier="GST_VIDEO_FORMAT_YUV9"
- glib:nick="yuv9">
- <doc xml:space="preserve">planar 4:1:0 YUV</doc>
- </member>
- <member name="yvu9"
- value="37"
- c:identifier="GST_VIDEO_FORMAT_YVU9"
- glib:nick="yvu9">
- <doc xml:space="preserve">planar 4:1:0 YUV (like YUV9 but UV planes swapped)</doc>
- </member>
- <member name="iyu1"
- value="38"
- c:identifier="GST_VIDEO_FORMAT_IYU1"
- glib:nick="iyu1">
- <doc xml:space="preserve">packed 4:1:1 YUV (Cb-Y0-Y1-Cr-Y2-Y3 ...)</doc>
- </member>
- <member name="argb64"
- value="39"
- c:identifier="GST_VIDEO_FORMAT_ARGB64"
- glib:nick="argb64">
- <doc xml:space="preserve">rgb with alpha channel first, 16 bits per channel</doc>
- </member>
- <member name="ayuv64"
- value="40"
- c:identifier="GST_VIDEO_FORMAT_AYUV64"
- glib:nick="ayuv64">
- <doc xml:space="preserve">packed 4:4:4 YUV with alpha channel, 16 bits per channel (A0-Y0-U0-V0 ...)</doc>
- </member>
- <member name="r210"
- value="41"
- c:identifier="GST_VIDEO_FORMAT_r210"
- glib:nick="r210">
- <doc xml:space="preserve">packed 4:4:4 RGB, 10 bits per channel</doc>
- </member>
- <member name="i420_10be"
- value="42"
- c:identifier="GST_VIDEO_FORMAT_I420_10BE"
- glib:nick="i420-10be">
- <doc xml:space="preserve">planar 4:2:0 YUV, 10 bits per channel</doc>
- </member>
- <member name="i420_10le"
- value="43"
- c:identifier="GST_VIDEO_FORMAT_I420_10LE"
- glib:nick="i420-10le">
- <doc xml:space="preserve">planar 4:2:0 YUV, 10 bits per channel</doc>
- </member>
- <member name="i422_10be"
- value="44"
- c:identifier="GST_VIDEO_FORMAT_I422_10BE"
- glib:nick="i422-10be">
- <doc xml:space="preserve">planar 4:2:2 YUV, 10 bits per channel</doc>
- </member>
- <member name="i422_10le"
- value="45"
- c:identifier="GST_VIDEO_FORMAT_I422_10LE"
- glib:nick="i422-10le">
- <doc xml:space="preserve">planar 4:2:2 YUV, 10 bits per channel</doc>
- </member>
- <member name="y444_10be"
- value="46"
- c:identifier="GST_VIDEO_FORMAT_Y444_10BE"
- glib:nick="y444-10be">
- <doc xml:space="preserve">planar 4:4:4 YUV, 10 bits per channel</doc>
- </member>
- <member name="y444_10le"
- value="47"
- c:identifier="GST_VIDEO_FORMAT_Y444_10LE"
- glib:nick="y444-10le">
- <doc xml:space="preserve">planar 4:4:4 YUV, 10 bits per channel</doc>
- </member>
- <member name="gbr"
- value="48"
- c:identifier="GST_VIDEO_FORMAT_GBR"
- glib:nick="gbr">
- <doc xml:space="preserve">planar 4:4:4 RGB, 8 bits per channel</doc>
- </member>
- <member name="gbr_10be"
- value="49"
- c:identifier="GST_VIDEO_FORMAT_GBR_10BE"
- glib:nick="gbr-10be">
- <doc xml:space="preserve">planar 4:4:4 RGB, 10 bits per channel</doc>
- </member>
- <member name="gbr_10le"
- value="50"
- c:identifier="GST_VIDEO_FORMAT_GBR_10LE"
- glib:nick="gbr-10le">
- <doc xml:space="preserve">planar 4:4:4 RGB, 10 bits per channel</doc>
- </member>
- <member name="nv16"
- value="51"
- c:identifier="GST_VIDEO_FORMAT_NV16"
- glib:nick="nv16">
- <doc xml:space="preserve">planar 4:2:2 YUV with interleaved UV plane</doc>
- </member>
- <member name="nv24"
- value="52"
- c:identifier="GST_VIDEO_FORMAT_NV24"
- glib:nick="nv24">
- <doc xml:space="preserve">planar 4:4:4 YUV with interleaved UV plane</doc>
- </member>
- <member name="nv12_64z32"
- value="53"
- c:identifier="GST_VIDEO_FORMAT_NV12_64Z32"
- glib:nick="nv12-64z32">
- <doc xml:space="preserve">NV12 with 64x32 tiling in zigzag pattern</doc>
- </member>
- <member name="a420_10be"
- value="54"
- c:identifier="GST_VIDEO_FORMAT_A420_10BE"
- glib:nick="a420-10be">
- <doc xml:space="preserve">planar 4:4:2:0 YUV, 10 bits per channel</doc>
- </member>
- <member name="a420_10le"
- value="55"
- c:identifier="GST_VIDEO_FORMAT_A420_10LE"
- glib:nick="a420-10le">
- <doc xml:space="preserve">planar 4:4:2:0 YUV, 10 bits per channel</doc>
- </member>
- <member name="a422_10be"
- value="56"
- c:identifier="GST_VIDEO_FORMAT_A422_10BE"
- glib:nick="a422-10be">
- <doc xml:space="preserve">planar 4:4:2:2 YUV, 10 bits per channel</doc>
- </member>
- <member name="a422_10le"
- value="57"
- c:identifier="GST_VIDEO_FORMAT_A422_10LE"
- glib:nick="a422-10le">
- <doc xml:space="preserve">planar 4:4:2:2 YUV, 10 bits per channel</doc>
- </member>
- <member name="a444_10be"
- value="58"
- c:identifier="GST_VIDEO_FORMAT_A444_10BE"
- glib:nick="a444-10be">
- <doc xml:space="preserve">planar 4:4:4:4 YUV, 10 bits per channel</doc>
- </member>
- <member name="a444_10le"
- value="59"
- c:identifier="GST_VIDEO_FORMAT_A444_10LE"
- glib:nick="a444-10le">
- <doc xml:space="preserve">planar 4:4:4:4 YUV, 10 bits per channel</doc>
- </member>
- <member name="nv61"
- value="60"
- c:identifier="GST_VIDEO_FORMAT_NV61"
- glib:nick="nv61">
- <doc xml:space="preserve">planar 4:2:2 YUV with interleaved VU plane (Since 1.6)</doc>
- </member>
- <function name="from_fourcc" c:identifier="gst_video_format_from_fourcc">
- <doc xml:space="preserve">Converts a FOURCC value into the corresponding #GstVideoFormat.
- If the FOURCC cannot be represented by #GstVideoFormat,
- #GST_VIDEO_FORMAT_UNKNOWN is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFormat describing the FOURCC value</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </return-value>
- <parameters>
- <parameter name="fourcc" transfer-ownership="none">
- <doc xml:space="preserve">a FOURCC value representing raw YUV video</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </function>
- <function name="from_masks" c:identifier="gst_video_format_from_masks">
- <doc xml:space="preserve">Find the #GstVideoFormat for the given parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
- not specify a known format.</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </return-value>
- <parameters>
- <parameter name="depth" transfer-ownership="none">
- <doc xml:space="preserve">the amount of bits used for a pixel</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="bpp" transfer-ownership="none">
- <doc xml:space="preserve">the amount of bits used to store a pixel. This value is bigger than
- @depth</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="endianness" transfer-ownership="none">
- <doc xml:space="preserve">the endianness of the masks, #G_LITTLE_ENDIAN or #G_BIG_ENDIAN</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="red_mask" transfer-ownership="none">
- <doc xml:space="preserve">the red mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="green_mask" transfer-ownership="none">
- <doc xml:space="preserve">the green mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="blue_mask" transfer-ownership="none">
- <doc xml:space="preserve">the blue mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="alpha_mask" transfer-ownership="none">
- <doc xml:space="preserve">the alpha mask, or 0 if no alpha mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="from_string" c:identifier="gst_video_format_from_string">
- <doc xml:space="preserve">Convert the @format string to its #GstVideoFormat.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFormat for @format or GST_VIDEO_FORMAT_UNKNOWN when the
- string is not a known format.</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_info" c:identifier="gst_video_format_get_info">
- <doc xml:space="preserve">Get the #GstVideoFormatInfo for @format</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstVideoFormatInfo for @format.</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="get_palette"
- c:identifier="gst_video_format_get_palette"
- version="1.2">
- <doc xml:space="preserve">Get the default palette of @format. This the palette used in the pack
- function for paletted formats.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the default palette of @format or %NULL when
- @format does not have a palette.</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">size of the palette in bytes</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_fourcc" c:identifier="gst_video_format_to_fourcc">
- <doc xml:space="preserve">Converts a #GstVideoFormat value into the corresponding FOURCC. Only
- a few YUV formats have corresponding FOURCC values. If @format has
- no corresponding FOURCC value, 0 is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the FOURCC corresponding to @format</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_string" c:identifier="gst_video_format_to_string">
- <doc xml:space="preserve">Returns a string containing a descriptive name for
- the #GstVideoFormat if there is one, or NULL otherwise.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name corresponding to @format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <bitfield name="VideoFormatFlags"
- glib:type-name="GstVideoFormatFlags"
- glib:get-type="gst_video_format_flags_get_type"
- c:type="GstVideoFormatFlags">
- <doc xml:space="preserve">The different video flags that a format info can have.</doc>
- <member name="yuv"
- value="1"
- c:identifier="GST_VIDEO_FORMAT_FLAG_YUV"
- glib:nick="yuv">
- <doc xml:space="preserve">The video format is YUV, components are numbered
- 0=Y, 1=U, 2=V.</doc>
- </member>
- <member name="rgb"
- value="2"
- c:identifier="GST_VIDEO_FORMAT_FLAG_RGB"
- glib:nick="rgb">
- <doc xml:space="preserve">The video format is RGB, components are numbered
- 0=R, 1=G, 2=B.</doc>
- </member>
- <member name="gray"
- value="4"
- c:identifier="GST_VIDEO_FORMAT_FLAG_GRAY"
- glib:nick="gray">
- <doc xml:space="preserve">The video is gray, there is one gray component
- with index 0.</doc>
- </member>
- <member name="alpha"
- value="8"
- c:identifier="GST_VIDEO_FORMAT_FLAG_ALPHA"
- glib:nick="alpha">
- <doc xml:space="preserve">The video format has an alpha components with
- the number 3.</doc>
- </member>
- <member name="le"
- value="16"
- c:identifier="GST_VIDEO_FORMAT_FLAG_LE"
- glib:nick="le">
- <doc xml:space="preserve">The video format has data stored in little
- endianness.</doc>
- </member>
- <member name="palette"
- value="32"
- c:identifier="GST_VIDEO_FORMAT_FLAG_PALETTE"
- glib:nick="palette">
- <doc xml:space="preserve">The video format has a palette. The palette
- is stored in the second plane and indexes are stored in the first plane.</doc>
- </member>
- <member name="complex"
- value="64"
- c:identifier="GST_VIDEO_FORMAT_FLAG_COMPLEX"
- glib:nick="complex">
- <doc xml:space="preserve">The video format has a complex layout that
- can't be described with the usual information in the #GstVideoFormatInfo.</doc>
- </member>
- <member name="unpack"
- value="128"
- c:identifier="GST_VIDEO_FORMAT_FLAG_UNPACK"
- glib:nick="unpack">
- <doc xml:space="preserve">This format can be used in a
- #GstVideoFormatUnpack and #GstVideoFormatPack function.</doc>
- </member>
- <member name="tiled"
- value="256"
- c:identifier="GST_VIDEO_FORMAT_FLAG_TILED"
- glib:nick="tiled">
- <doc xml:space="preserve">The format is tiled, there is tiling information
- in the last plane.</doc>
- </member>
- </bitfield>
- <record name="VideoFormatInfo" c:type="GstVideoFormatInfo">
- <doc xml:space="preserve">Information for a video format.</doc>
- <field name="format" writable="1">
- <doc xml:space="preserve">#GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </field>
- <field name="name" writable="1">
- <doc xml:space="preserve">string representation of the format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="description" writable="1">
- <doc xml:space="preserve">use readable description of the format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">#GstVideoFormatFlags</doc>
- <type name="VideoFormatFlags" c:type="GstVideoFormatFlags"/>
- </field>
- <field name="bits" writable="1">
- <doc xml:space="preserve">The number of bits used to pack data items. This can be less than 8
- when multiple pixels are stored in a byte. for values > 8 multiple bytes
- should be read according to the endianness flag before applying the shift
- and mask.</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="n_components" writable="1">
- <doc xml:space="preserve">the number of components in the video format.</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="shift" writable="1">
- <doc xml:space="preserve">the number of bits to shift away to get the component data</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <field name="depth" writable="1">
- <doc xml:space="preserve">the depth in bits for each component</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <field name="pixel_stride" writable="1">
- <doc xml:space="preserve">the pixel stride of each component. This is the amount of
- bytes to the pixel immediately to the right. When bits < 8, the stride is
- expressed in bits. For 24-bit RGB, this would be 3 bytes, for example,
- while it would be 4 bytes for RGBx or ARGB.</doc>
- <array zero-terminated="0" c:type="gint" fixed-size="4">
- <type name="gint" c:type="gint"/>
- </array>
- </field>
- <field name="n_planes" writable="1">
- <doc xml:space="preserve">the number of planes for this format. The number of planes can be
- less than the amount of components when multiple components are packed into
- one plane.</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="plane" writable="1">
- <doc xml:space="preserve">the plane number where a component can be found</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <field name="poffset" writable="1">
- <doc xml:space="preserve">the offset in the plane where the first pixel of the components
- can be found.</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <field name="w_sub" writable="1">
- <doc xml:space="preserve">subsampling factor of the width for the component. Use
- GST_VIDEO_SUB_SCALE to scale a width.</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <field name="h_sub" writable="1">
- <doc xml:space="preserve">subsampling factor of the height for the component. Use
- GST_VIDEO_SUB_SCALE to scale a height.</doc>
- <array zero-terminated="0" c:type="guint" fixed-size="4">
- <type name="guint" c:type="guint"/>
- </array>
- </field>
- <field name="unpack_format" writable="1">
- <doc xml:space="preserve">the format of the unpacked pixels. This format must have the
- #GST_VIDEO_FORMAT_FLAG_UNPACK flag set.</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </field>
- <field name="unpack_func" writable="1">
- <doc xml:space="preserve">an unpack function for this format</doc>
- <type name="VideoFormatUnpack" c:type="GstVideoFormatUnpack"/>
- </field>
- <field name="pack_lines" writable="1">
- <doc xml:space="preserve">the amount of lines that will be packed</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="pack_func" writable="1">
- <doc xml:space="preserve">an pack function for this format</doc>
- <type name="VideoFormatPack" c:type="GstVideoFormatPack"/>
- </field>
- <field name="tile_mode" writable="1">
- <doc xml:space="preserve">The tiling mode</doc>
- <type name="VideoTileMode" c:type="GstVideoTileMode"/>
- </field>
- <field name="tile_ws" writable="1">
- <doc xml:space="preserve">The width of a tile, in bytes, represented as a shift</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="tile_hs" writable="1">
- <doc xml:space="preserve">The height of a tile, in bytes, represented as a shift</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <callback name="VideoFormatPack" c:type="GstVideoFormatPack">
- <doc xml:space="preserve">Packs @width pixels from @src to the given planes and strides in the
- format @info. The pixels from source have each component interleaved
- and will be packed into the planes in @data.
- This function operates on pack_lines lines, meaning that @src should
- contain at least pack_lines lines with a stride of @sstride and @y
- should be a multiple of pack_lines.
- Subsampled formats will use the horizontally and vertically cosited
- component from the source. Subsampling should be performed before
- packing.
- Because this function does not have a x coordinate, it is not possible to
- pack pixels starting from an unaligned position. For tiled images this
- means that packing should start from a tile coordinate. For subsampled
- formats this means that a complete pixel needs to be packed.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags to control the packing</doc>
- <type name="VideoPackFlags" c:type="GstVideoPackFlags"/>
- </parameter>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a source array</doc>
- <type name="gpointer" c:type="const gpointer"/>
- </parameter>
- <parameter name="sstride" transfer-ownership="none">
- <doc xml:space="preserve">the source array stride</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointers to the destination data planes</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="stride" transfer-ownership="none">
- <doc xml:space="preserve">strides of the destination planes</doc>
- <type name="gint" c:type="const gint"/>
- </parameter>
- <parameter name="chroma_site" transfer-ownership="none">
- <doc xml:space="preserve">the chroma siting of the target when subsampled (not used)</doc>
- <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">the y position in the image to pack to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the amount of pixels to pack.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- <callback name="VideoFormatUnpack" c:type="GstVideoFormatUnpack">
- <doc xml:space="preserve">Unpacks @width pixels from the given planes and strides containing data of
- format @info. The pixels will be unpacked into @dest with each component
- interleaved as per @info's unpack_format, which will usually be one of
- #GST_VIDEO_FORMAT_ARGB, #GST_VIDEO_FORMAT_AYUV, #GST_VIDEO_FORMAT_ARGB64 or
- #GST_VIDEO_FORMAT_AYUV64 depending on the format to unpack.
- @dest should at least be big enough to hold @width * bytes_per_pixel bytes
- where bytes_per_pixel relates to the unpack format and will usually be
- either 4 or 8 depending on the unpack format. bytes_per_pixel will be
- the same as the pixel stride for plane 0 for the above formats.
- For subsampled formats, the components will be duplicated in the destination
- array. Reconstruction of the missing components can be performed in a
- separate step after unpacking.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags to control the unpacking</doc>
- <type name="VideoPackFlags" c:type="GstVideoPackFlags"/>
- </parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a destination array</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pointers to the data planes</doc>
- <type name="gpointer" c:type="const gpointer"/>
- </parameter>
- <parameter name="stride" transfer-ownership="none">
- <doc xml:space="preserve">strides of the planes</doc>
- <type name="gint" c:type="const gint"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">the x position in the image to start from</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">the y position in the image to start from</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the amount of pixels to unpack.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- <record name="VideoFrame" c:type="GstVideoFrame">
- <doc xml:space="preserve">A video frame obtained from gst_video_frame_map()</doc>
- <field name="info" writable="1">
- <doc xml:space="preserve">the #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">#GstVideoFrameFlags for the frame</doc>
- <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
- </field>
- <field name="buffer" writable="1">
- <doc xml:space="preserve">the mapped buffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="meta" writable="1">
- <doc xml:space="preserve">pointer to metadata if any</doc>
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="id" writable="1">
- <doc xml:space="preserve">id of the mapped frame. the id can for example be used to
- indentify the frame in case of multiview video.</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="data" writable="1">
- <doc xml:space="preserve">pointers to the plane data</doc>
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <field name="map" writable="1">
- <doc xml:space="preserve">mappings of the planes</doc>
- <array zero-terminated="0" c:type="GstMapInfo" fixed-size="4">
- <type name="Gst.MapInfo" c:type="GstMapInfo"/>
- </array>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <method name="copy" c:identifier="gst_video_frame_copy">
- <doc xml:space="preserve">Copy the contents from @src to @dest.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the contents could be copied.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </instance-parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="const GstVideoFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy_plane" c:identifier="gst_video_frame_copy_plane">
- <doc xml:space="preserve">Copy the plane with index @plane from @src to @dest.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the contents could be copied.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </instance-parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="const GstVideoFrame*"/>
- </parameter>
- <parameter name="plane" transfer-ownership="none">
- <doc xml:space="preserve">a plane</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="map" c:identifier="gst_video_frame_map">
- <doc xml:space="preserve">Use @info and @buffer to fill in the values of @frame. @frame is usually
- allocated on the stack, and you will pass the address to the #GstVideoFrame
- structure allocated on the stack; gst_video_frame_map() will then fill in
- the structures with the various video-specific information you need to access
- the pixels of the video buffer. You can then use accessor macros such as
- GST_VIDEO_FRAME_COMP_DATA(), GST_VIDEO_FRAME_PLANE_DATA(),
- GST_VIDEO_FRAME_COMP_STRIDE(), GST_VIDEO_FRAME_PLANE_STRIDE() etc.
- to get to the pixels.
- |[<!-- language="C" -->
- GstVideoFrame vframe;
- ...
- // set RGB pixels to black one at a time
- if (gst_video_frame_map (&amp;vframe, video_info, video_buffer)) {
- guint8 *pixels = GST_VIDEO_FRAME_PLANE_DATA (vframe, 0);
- guint stride = GST_VIDEO_FRAME_PLANE_STRIDE (vframe, 0);
- guint pixel_stride = GST_VIDEO_FRAME_PLANE_PSTRIDE (vframe, 0);
- for (h = 0; h < height; ++h) {
- for (w = 0; w < width; ++w) {
- guint8 *pixel = pixels + h * stride + w * pixel_stride;
- memset (pixel, 0, pixel_stride);
- }
- }
- }
- ...
- ]|
- All video planes of @buffer will be mapped and the pointers will be set in
- @frame->data.
- The purpose of this function is to make it easy for you to get to the video
- pixels in a generic way, without you having to worry too much about details
- such as whether the video data is allocated in one contiguous memory chunk
- or multiple memory chunks (e.g. one for each plane); or if custom strides
- and custom plane offsets are used or not (as signalled by GstVideoMeta on
- each buffer). This function will just fill the #GstVideoFrame structure
- with the right values and if you use the accessor macros everything will
- just work and you can access the data easily. It also maps the underlying
- memory chunks for you.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">pointer to #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer to map</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstMapFlags</doc>
- <type name="Gst.MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="map_id" c:identifier="gst_video_frame_map_id">
- <doc xml:space="preserve">Use @info and @buffer to fill in the values of @frame with the video frame
- information of frame @id.
- When @id is -1, the default frame is mapped. When @id != -1, this function
- will return %FALSE when there is no GstVideoMeta with that id.
- All video planes of @buffer will be mapped and the pointers will be set in
- @frame->data.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE on success.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">pointer to #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </instance-parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">the buffer to map</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">the frame id to map</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstMapFlags</doc>
- <type name="Gst.MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmap" c:identifier="gst_video_frame_unmap">
- <doc xml:space="preserve">Unmap the memory previously mapped with gst_video_frame_map.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="frame" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="VideoFrameFlags"
- glib:type-name="GstVideoFrameFlags"
- glib:get-type="gst_video_frame_flags_get_type"
- c:type="GstVideoFrameFlags">
- <doc xml:space="preserve">Extra video frame flags</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_FRAME_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="interlaced"
- value="1"
- c:identifier="GST_VIDEO_FRAME_FLAG_INTERLACED"
- glib:nick="interlaced">
- <doc xml:space="preserve">The video frame is interlaced. In mixed
- interlace-mode, this flag specifies if the frame is interlaced or
- progressive.</doc>
- </member>
- <member name="tff"
- value="2"
- c:identifier="GST_VIDEO_FRAME_FLAG_TFF"
- glib:nick="tff">
- <doc xml:space="preserve">The video frame has the top field first</doc>
- </member>
- <member name="rff"
- value="4"
- c:identifier="GST_VIDEO_FRAME_FLAG_RFF"
- glib:nick="rff">
- <doc xml:space="preserve">The video frame has the repeat flag</doc>
- </member>
- <member name="onefield"
- value="8"
- c:identifier="GST_VIDEO_FRAME_FLAG_ONEFIELD"
- glib:nick="onefield">
- <doc xml:space="preserve">The video frame has one field</doc>
- </member>
- <member name="multiple_view"
- value="16"
- c:identifier="GST_VIDEO_FRAME_FLAG_MULTIPLE_VIEW"
- glib:nick="multiple-view">
- <doc xml:space="preserve">The video contains one or
- more non-mono views</doc>
- </member>
- <member name="first_in_bundle"
- value="32"
- c:identifier="GST_VIDEO_FRAME_FLAG_FIRST_IN_BUNDLE"
- glib:nick="first-in-bundle">
- <doc xml:space="preserve">The video frame is the first
- in a set of corresponding views provided as sequential frames.</doc>
- </member>
- </bitfield>
- <bitfield name="VideoFrameMapFlags"
- version="1.6"
- glib:type-name="GstVideoFrameMapFlags"
- glib:get-type="gst_video_frame_map_flags_get_type"
- c:type="GstVideoFrameMapFlags">
- <doc xml:space="preserve">Additional mapping flags for gst_video_frame_map().</doc>
- <member name="no_ref"
- value="65536"
- c:identifier="GST_VIDEO_FRAME_MAP_FLAG_NO_REF"
- glib:nick="no-ref">
- <doc xml:space="preserve">Don't take another reference of the buffer and store it in
- the GstVideoFrame. This makes sure that the buffer stays
- writable while the frame is mapped, but requires that the
- buffer reference stays valid until the frame is unmapped again.</doc>
- </member>
- <member name="last"
- value="16777216"
- c:identifier="GST_VIDEO_FRAME_MAP_FLAG_LAST"
- glib:nick="last">
- <doc xml:space="preserve">Offset to define more flags</doc>
- </member>
- </bitfield>
- <enumeration name="VideoGLTextureOrientation"
- c:type="GstVideoGLTextureOrientation">
- <doc xml:space="preserve">The orientation of the GL texture.</doc>
- <member name="normal_y_normal"
- value="0"
- c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_NORMAL">
- <doc xml:space="preserve">Top line first in memory, left row first</doc>
- </member>
- <member name="normal_y_flip"
- value="1"
- c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_NORMAL_Y_FLIP">
- <doc xml:space="preserve">Bottom line first in memory, left row first</doc>
- </member>
- <member name="flip_y_normal"
- value="2"
- c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_NORMAL">
- <doc xml:space="preserve">Top line first in memory, right row first</doc>
- </member>
- <member name="flip_y_flip"
- value="3"
- c:identifier="GST_VIDEO_GL_TEXTURE_ORIENTATION_X_FLIP_Y_FLIP">
- <doc xml:space="preserve">Bottom line first in memory, right row first</doc>
- </member>
- </enumeration>
- <enumeration name="VideoGLTextureType" c:type="GstVideoGLTextureType">
- <doc xml:space="preserve">The GL texture type.</doc>
- <member name="luminance"
- value="0"
- c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE">
- <doc xml:space="preserve">Luminance texture, GL_LUMINANCE</doc>
- </member>
- <member name="luminance_alpha"
- value="1"
- c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_LUMINANCE_ALPHA">
- <doc xml:space="preserve">Luminance-alpha texture, GL_LUMINANCE_ALPHA</doc>
- </member>
- <member name="rgb16"
- value="2"
- c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RGB16">
- <doc xml:space="preserve">RGB 565 texture, GL_RGB</doc>
- </member>
- <member name="rgb"
- value="3"
- c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RGB">
- <doc xml:space="preserve">RGB texture, GL_RGB</doc>
- </member>
- <member name="rgba"
- value="4"
- c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RGBA">
- <doc xml:space="preserve">RGBA texture, GL_RGBA</doc>
- </member>
- <member name="r" value="5" c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_R">
- <doc xml:space="preserve">R texture, GL_RED_EXT</doc>
- </member>
- <member name="rg" value="6" c:identifier="GST_VIDEO_GL_TEXTURE_TYPE_RG">
- <doc xml:space="preserve">RG texture, GL_RG_EXT</doc>
- </member>
- </enumeration>
- <callback name="VideoGLTextureUpload" c:type="GstVideoGLTextureUpload">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="meta" transfer-ownership="none">
- <type name="VideoGLTextureUploadMeta"
- c:type="GstVideoGLTextureUploadMeta*"/>
- </parameter>
- <parameter name="texture_id" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </callback>
- <record name="VideoGLTextureUploadMeta"
- c:type="GstVideoGLTextureUploadMeta">
- <doc xml:space="preserve">Extra buffer metadata for uploading a buffer to an OpenGL texture
- ID. The caller of gst_video_gl_texture_upload_meta_upload() must
- have OpenGL set up and call this from a thread where it is valid
- to upload something to an OpenGL texture.</doc>
- <field name="meta" writable="1">
- <doc xml:space="preserve">parent #GstMeta</doc>
- <type name="Gst.Meta" c:type="GstMeta"/>
- </field>
- <field name="texture_orientation" writable="1">
- <doc xml:space="preserve">Orientation of the textures</doc>
- <type name="VideoGLTextureOrientation"
- c:type="GstVideoGLTextureOrientation"/>
- </field>
- <field name="n_textures" writable="1">
- <doc xml:space="preserve">Number of textures that are generated</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="texture_type" writable="1">
- <doc xml:space="preserve">Type of each texture</doc>
- <array zero-terminated="0"
- c:type="GstVideoGLTextureType"
- fixed-size="4">
- <type name="VideoGLTextureType" c:type="GstVideoGLTextureType"/>
- </array>
- </field>
- <field name="buffer" readable="0" private="1">
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="upload" readable="0" private="1">
- <type name="VideoGLTextureUpload" c:type="GstVideoGLTextureUpload"/>
- </field>
- <field name="user_data" readable="0" private="1">
- <type name="gpointer" c:type="gpointer"/>
- </field>
- <field name="user_data_copy" readable="0" private="1">
- <type name="GObject.BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
- </field>
- <field name="user_data_free" readable="0" private="1">
- <type name="GObject.BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
- </field>
- <method name="upload"
- c:identifier="gst_video_gl_texture_upload_meta_upload">
- <doc xml:space="preserve">Uploads the buffer which owns the meta to a specific texture ID.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if uploading succeeded, %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoGLTextureUploadMeta</doc>
- <type name="VideoGLTextureUploadMeta"
- c:type="GstVideoGLTextureUploadMeta*"/>
- </instance-parameter>
- <parameter name="texture_id" transfer-ownership="none">
- <doc xml:space="preserve">the texture IDs to upload to</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <function name="get_info"
- c:identifier="gst_video_gl_texture_upload_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <enumeration name="VideoGammaMode"
- version="1.6"
- glib:type-name="GstVideoGammaMode"
- glib:get-type="gst_video_gamma_mode_get_type"
- c:type="GstVideoGammaMode">
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_GAMMA_MODE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">disable gamma handling</doc>
- </member>
- <member name="remap"
- value="1"
- c:identifier="GST_VIDEO_GAMMA_MODE_REMAP"
- glib:nick="remap">
- <doc xml:space="preserve">convert between input and output gamma
- Different gamma conversion modes</doc>
- </member>
- </enumeration>
- <record name="VideoInfo"
- c:type="GstVideoInfo"
- glib:type-name="GstVideoInfo"
- glib:get-type="gst_video_info_get_type"
- c:symbol-prefix="video_info">
- <doc xml:space="preserve">Information describing image properties. This information can be filled
- in from GstCaps with gst_video_info_from_caps(). The information is also used
- to store the specific video info when mapping a video frame with
- gst_video_frame_map().
- Use the provided macros to access the info in this structure.</doc>
- <field name="finfo" writable="1">
- <doc xml:space="preserve">the format info of the video</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </field>
- <field name="interlace_mode" writable="1">
- <doc xml:space="preserve">the interlace mode</doc>
- <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">additional video flags</doc>
- <type name="VideoFlags" c:type="GstVideoFlags"/>
- </field>
- <field name="width" writable="1">
- <doc xml:space="preserve">the width of the video</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="height" writable="1">
- <doc xml:space="preserve">the height of the video</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="size" writable="1">
- <doc xml:space="preserve">the default size of one frame</doc>
- <type name="gsize" c:type="gsize"/>
- </field>
- <field name="views" writable="1">
- <doc xml:space="preserve">the number of views for multiview video</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="chroma_site" writable="1">
- <doc xml:space="preserve">a #GstVideoChromaSite.</doc>
- <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
- </field>
- <field name="colorimetry" writable="1">
- <doc xml:space="preserve">the colorimetry info</doc>
- <type name="VideoColorimetry" c:type="GstVideoColorimetry"/>
- </field>
- <field name="par_n" writable="1">
- <doc xml:space="preserve">the pixel-aspect-ratio numerator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="par_d" writable="1">
- <doc xml:space="preserve">the pixel-aspect-ratio demnominator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="fps_n" writable="1">
- <doc xml:space="preserve">the framerate numerator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="fps_d" writable="1">
- <doc xml:space="preserve">the framerate demnominator</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">offsets of the planes</doc>
- <array zero-terminated="0" c:type="gsize" fixed-size="4">
- <type name="gsize" c:type="gsize"/>
- </array>
- </field>
- <field name="stride" writable="1">
- <doc xml:space="preserve">strides of the planes</doc>
- <array zero-terminated="0" c:type="gint" fixed-size="4">
- <type name="gint" c:type="gint"/>
- </array>
- </field>
- <union name="ABI" c:type="ABI">
- <record name="abi" c:type="abi">
- <field name="multiview_mode" writable="1">
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </field>
- <field name="multiview_flags" writable="1">
- <type name="VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/>
- </field>
- </record>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </union>
- <constructor name="new" c:identifier="gst_video_info_new" version="1.6">
- <doc xml:space="preserve">Allocate a new #GstVideoInfo that is also initialized with
- gst_video_info_init().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoInfo. free with gst_video_info_free().</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </return-value>
- </constructor>
- <method name="align" c:identifier="gst_video_info_align">
- <doc xml:space="preserve">Adjust the offset and stride fields in @info so that the padding and
- stride alignment in @align is respected.
- Extra padding will be added to the right side when stride alignment padding
- is required and @align will be updated with the new padding values.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- <parameter name="align" transfer-ownership="none">
- <doc xml:space="preserve">alignment parameters</doc>
- <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
- </parameter>
- </parameters>
- </method>
- <method name="convert" c:identifier="gst_video_info_convert">
- <doc xml:space="preserve">Converts among various #GstFormat types. This function handles
- GST_FORMAT_BYTES, GST_FORMAT_TIME, and GST_FORMAT_DEFAULT. For
- raw video, GST_FORMAT_DEFAULT corresponds to video frames. This
- function can be used to handle pad queries of the type GST_QUERY_CONVERT.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the conversion was successful.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- <parameter name="src_format" transfer-ownership="none">
- <doc xml:space="preserve">#GstFormat of the @src_value</doc>
- <type name="Gst.Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="src_value" transfer-ownership="none">
- <doc xml:space="preserve">value to convert</doc>
- <type name="gint64" c:type="gint64"/>
- </parameter>
- <parameter name="dest_format" transfer-ownership="none">
- <doc xml:space="preserve">#GstFormat of the @dest_value</doc>
- <type name="Gst.Format" c:type="GstFormat"/>
- </parameter>
- <parameter name="dest_value" transfer-ownership="none">
- <doc xml:space="preserve">pointer to destination value</doc>
- <type name="gint64" c:type="gint64*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy" c:identifier="gst_video_info_copy" version="1.6">
- <doc xml:space="preserve">Copy a GstVideoInfo structure.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoInfo. free with gst_video_info_free.</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="const GstVideoInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_video_info_free" version="1.6">
- <doc xml:space="preserve">Free a GstVideoInfo structure previously allocated with gst_video_info_new()
- or gst_video_info_copy().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="from_caps" c:identifier="gst_video_info_from_caps">
- <doc xml:space="preserve">Parse @caps and update @info.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if @caps could be parsed</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- <parameter name="caps" transfer-ownership="none">
- <doc xml:space="preserve">a #GstCaps</doc>
- <type name="Gst.Caps" c:type="const GstCaps*"/>
- </parameter>
- </parameters>
- </method>
- <method name="init" c:identifier="gst_video_info_init">
- <doc xml:space="preserve">Initialize @info with default values.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="is_equal" c:identifier="gst_video_info_is_equal">
- <doc xml:space="preserve">Compares two #GstVideoInfo and returns whether they are equal or not</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if @info and @other are equal, else %FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="const GstVideoInfo*"/>
- </instance-parameter>
- <parameter name="other" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="const GstVideoInfo*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_format" c:identifier="gst_video_info_set_format">
- <doc xml:space="preserve">Set the default info for a video frame of @format and @width and @height.
- Note: This initializes @info first, no values are preserved. This function
- does not set the offsets correctly for interlaced vertically
- subsampled formats.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">a width</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">a height</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="to_caps" c:identifier="gst_video_info_to_caps">
- <doc xml:space="preserve">Convert the values of @info into a #GstCaps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstCaps containing the info of @info.</doc>
- <type name="Gst.Caps" c:type="GstCaps*"/>
- </return-value>
- <parameters>
- <instance-parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="VideoInterlaceMode"
- glib:type-name="GstVideoInterlaceMode"
- glib:get-type="gst_video_interlace_mode_get_type"
- c:type="GstVideoInterlaceMode">
- <doc xml:space="preserve">The possible values of the #GstVideoInterlaceMode describing the interlace
- mode of the stream.</doc>
- <member name="progressive"
- value="0"
- c:identifier="GST_VIDEO_INTERLACE_MODE_PROGRESSIVE"
- glib:nick="progressive">
- <doc xml:space="preserve">all frames are progressive</doc>
- </member>
- <member name="interleaved"
- value="1"
- c:identifier="GST_VIDEO_INTERLACE_MODE_INTERLEAVED"
- glib:nick="interleaved">
- <doc xml:space="preserve">2 fields are interleaved in one video
- frame. Extra buffer flags describe the field order.</doc>
- </member>
- <member name="mixed"
- value="2"
- c:identifier="GST_VIDEO_INTERLACE_MODE_MIXED"
- glib:nick="mixed">
- <doc xml:space="preserve">frames contains both interlaced and
- progressive video, the buffer flags describe the frame and fields.</doc>
- </member>
- <member name="fields"
- value="3"
- c:identifier="GST_VIDEO_INTERLACE_MODE_FIELDS"
- glib:nick="fields">
- <doc xml:space="preserve">2 fields are stored in one buffer, use the
- frame ID to get access to the required field. For multiview (the
- 'views' property > 1) the fields of view N can be found at frame ID
- (N * 2) and (N * 2) + 1.
- Each field has only half the amount of lines as noted in the
- height property. This mode requires multiple GstVideoMeta metadata
- to describe the fields.</doc>
- </member>
- <function name="from_string"
- c:identifier="gst_video_interlace_mode_from_string"
- version="1.6">
- <doc xml:space="preserve">Convert @mode to a #GstVideoInterlaceMode</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoInterlaceMode of @mode or
- #GST_VIDEO_INTERLACE_MODE_PROGRESSIVE when @mode is not a valid
- string representation for a #GstVideoInterlaceMode.</doc>
- <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a mode</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_string"
- c:identifier="gst_video_interlace_mode_to_string"
- version="1.6">
- <doc xml:space="preserve">Convert @mode to its string representation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@mode as a string or NULL if @mode in invalid.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInterlaceMode</doc>
- <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <enumeration name="VideoMatrixMode"
- version="1.6"
- glib:type-name="GstVideoMatrixMode"
- glib:get-type="gst_video_matrix_mode_get_type"
- c:type="GstVideoMatrixMode">
- <doc xml:space="preserve">Different color matrix conversion modes</doc>
- <member name="full"
- value="0"
- c:identifier="GST_VIDEO_MATRIX_MODE_FULL"
- glib:nick="full">
- <doc xml:space="preserve">do conversion between color matrices</doc>
- </member>
- <member name="input_only"
- value="1"
- c:identifier="GST_VIDEO_MATRIX_MODE_INPUT_ONLY"
- glib:nick="input-only">
- <doc xml:space="preserve">use the input color matrix to convert
- to and from R'G'B</doc>
- </member>
- <member name="output_only"
- value="2"
- c:identifier="GST_VIDEO_MATRIX_MODE_OUTPUT_ONLY"
- glib:nick="output-only">
- <doc xml:space="preserve">use the output color matrix to convert
- to and from R'G'B</doc>
- </member>
- <member name="none"
- value="3"
- c:identifier="GST_VIDEO_MATRIX_MODE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">disable color matrix conversion.</doc>
- </member>
- </enumeration>
- <record name="VideoMeta" c:type="GstVideoMeta">
- <doc xml:space="preserve">Extra buffer metadata describing image properties</doc>
- <field name="meta" writable="1">
- <doc xml:space="preserve">parent #GstMeta</doc>
- <type name="Gst.Meta" c:type="GstMeta"/>
- </field>
- <field name="buffer" writable="1">
- <doc xml:space="preserve">the buffer this metadata belongs to</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </field>
- <field name="flags" writable="1">
- <doc xml:space="preserve">additional video flags</doc>
- <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
- </field>
- <field name="format" writable="1">
- <doc xml:space="preserve">the video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </field>
- <field name="id" writable="1">
- <doc xml:space="preserve">identifier of the frame</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="width" writable="1">
- <doc xml:space="preserve">the video width</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="height" writable="1">
- <doc xml:space="preserve">the video height</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="n_planes" writable="1">
- <doc xml:space="preserve">the number of planes in the image</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">array of offsets for the planes. This field might not always be
- valid, it is used by the default implementation of @map.</doc>
- <array zero-terminated="0" c:type="gsize" fixed-size="4">
- <type name="gsize" c:type="gsize"/>
- </array>
- </field>
- <field name="stride" writable="1">
- <doc xml:space="preserve">array of strides for the planes. This field might not always be
- valid, it is used by the default implementation of @map.</doc>
- <array zero-terminated="0" c:type="gint" fixed-size="4">
- <type name="gint" c:type="gint"/>
- </array>
- </field>
- <field name="map">
- <callback name="map">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="meta" transfer-ownership="none">
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </parameter>
- <parameter name="plane" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="data" transfer-ownership="none">
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="stride" transfer-ownership="none">
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="Gst.MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="unmap">
- <callback name="unmap">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="meta" transfer-ownership="none">
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </parameter>
- <parameter name="plane" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <method name="map" c:identifier="gst_video_meta_map">
- <doc xml:space="preserve">Map the video plane with index @plane in @meta and return a pointer to the
- first byte of the plane and the stride of the plane.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the map operation was successful.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoMeta</doc>
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </instance-parameter>
- <parameter name="plane" transfer-ownership="none">
- <doc xml:space="preserve">a plane</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMapInfo</doc>
- <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- <parameter name="data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">the data of @plane</doc>
- <type name="gpointer" c:type="gpointer*"/>
- </parameter>
- <parameter name="stride" transfer-ownership="none">
- <doc xml:space="preserve">the stride of @plane</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">@GstMapFlags</doc>
- <type name="Gst.MapFlags" c:type="GstMapFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="unmap" c:identifier="gst_video_meta_unmap">
- <doc xml:space="preserve">Unmap a previously mapped plane with gst_video_meta_map().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the memory was successfully unmapped.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="meta" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoMeta</doc>
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </instance-parameter>
- <parameter name="plane" transfer-ownership="none">
- <doc xml:space="preserve">a plane</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMapInfo</doc>
- <type name="Gst.MapInfo" c:type="GstMapInfo*"/>
- </parameter>
- </parameters>
- </method>
- <function name="get_info" c:identifier="gst_video_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <record name="VideoMetaTransform" c:type="GstVideoMetaTransform">
- <doc xml:space="preserve">Extra data passed to a video transform #GstMetaTransformFunction such as:
- "gst-video-scale".</doc>
- <field name="in_info" writable="1">
- <doc xml:space="preserve">the input #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </field>
- <field name="out_info" writable="1">
- <doc xml:space="preserve">the output #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </field>
- <function name="scale_get_quark"
- c:identifier="gst_video_meta_transform_scale_get_quark">
- <doc xml:space="preserve">Get the #GQuark for the "gst-video-scale" metadata transform operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- </record>
- <bitfield name="VideoMultiviewFlags"
- glib:type-name="GstVideoMultiviewFlags"
- glib:get-type="gst_video_multiview_flags_get_type"
- c:type="GstVideoMultiviewFlags">
- <doc xml:space="preserve">GstVideoMultiviewFlags are used to indicate extra properties of a
- stereo/multiview stream beyond the frame layout and buffer mapping
- that is conveyed in the #GstMultiviewMode.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flags</doc>
- </member>
- <member name="right_view_first"
- value="1"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_VIEW_FIRST"
- glib:nick="right-view-first">
- <doc xml:space="preserve">For stereo streams, the
- normal arrangement of left and right views is reversed.</doc>
- </member>
- <member name="left_flipped"
- value="2"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLIPPED"
- glib:nick="left-flipped">
- <doc xml:space="preserve">The left view is vertically
- mirrored.</doc>
- </member>
- <member name="left_flopped"
- value="4"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_LEFT_FLOPPED"
- glib:nick="left-flopped">
- <doc xml:space="preserve">The left view is horizontally
- mirrored.</doc>
- </member>
- <member name="right_flipped"
- value="8"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLIPPED"
- glib:nick="right-flipped">
- <doc xml:space="preserve">The right view is
- vertically mirrored.</doc>
- </member>
- <member name="right_flopped"
- value="16"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_RIGHT_FLOPPED"
- glib:nick="right-flopped">
- <doc xml:space="preserve">The right view is
- horizontally mirrored.</doc>
- </member>
- <member name="half_aspect"
- value="16384"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_HALF_ASPECT"
- glib:nick="half-aspect">
- <doc xml:space="preserve">For frame-packed
- multiview modes, indicates that the individual
- views have been encoded with half the true width or height
- and should be scaled back up for display. This flag
- is used for overriding input layout interpretation
- by adjusting pixel-aspect-ratio.
- For side-by-side, column interleaved or checkerboard packings, the
- pixel width will be doubled. For row interleaved and top-bottom
- encodings, pixel height will be doubled.</doc>
- </member>
- <member name="mixed_mono"
- value="32768"
- c:identifier="GST_VIDEO_MULTIVIEW_FLAGS_MIXED_MONO"
- glib:nick="mixed-mono">
- <doc xml:space="preserve">The video stream contains both
- mono and multiview portions, signalled on each buffer by the
- absence or presence of the @GST_VIDEO_BUFFER_FLAG_MULTIPLE_VIEW
- buffer flag.</doc>
- </member>
- </bitfield>
- <class name="VideoMultiviewFlagsSet"
- c:symbol-prefix="video_multiview_flagset"
- parent="Gst.FlagSet"
- glib:type-name="GstVideoMultiviewFlagsSet"
- glib:get-type="gst_video_multiview_flagset_get_type"
- glib:fundamental="1">
- </class>
- <enumeration name="VideoMultiviewFramePacking"
- glib:type-name="GstVideoMultiviewFramePacking"
- glib:get-type="gst_video_multiview_frame_packing_get_type"
- c:type="GstVideoMultiviewFramePacking">
- <doc xml:space="preserve">#GstVideoMultiviewFramePacking represents the subset of #GstVideoMultiviewMode
- values that can be applied to any video frame without needing extra metadata.
- It can be used by elements that provide a property to override the
- multiview interpretation of a video stream when the video doesn't contain
- any markers.
- This enum is used (for example) on playbin, to re-interpret a played
- video stream as a stereoscopic video. The individual enum values are
- equivalent to and have the same value as the matching #GstVideoMultiviewMode.</doc>
- <member name="none"
- value="-1"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_NONE"
- glib:nick="none">
- <doc xml:space="preserve">A special value indicating
- no frame packing info.</doc>
- </member>
- <member name="mono"
- value="0"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_MONO"
- glib:nick="mono">
- <doc xml:space="preserve">All frames are monoscopic.</doc>
- </member>
- <member name="left"
- value="1"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_LEFT"
- glib:nick="left">
- <doc xml:space="preserve">All frames represent a left-eye view.</doc>
- </member>
- <member name="right"
- value="2"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_RIGHT"
- glib:nick="right">
- <doc xml:space="preserve">All frames represent a right-eye view.</doc>
- </member>
- <member name="side_by_side"
- value="3"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE"
- glib:nick="side-by-side">
- <doc xml:space="preserve">Left and right eye views are
- provided in the left and right half of the frame respectively.</doc>
- </member>
- <member name="side_by_side_quincunx"
- value="4"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_SIDE_BY_SIDE_QUINCUNX"
- glib:nick="side-by-side-quincunx">
- <doc xml:space="preserve">Left and right eye
- views are provided in the left and right half of the frame, but
- have been sampled using quincunx method, with half-pixel offset
- between the 2 views.</doc>
- </member>
- <member name="column_interleaved"
- value="5"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_COLUMN_INTERLEAVED"
- glib:nick="column-interleaved">
- <doc xml:space="preserve">Alternating vertical
- columns of pixels represent the left and right eye view respectively.</doc>
- </member>
- <member name="row_interleaved"
- value="6"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_ROW_INTERLEAVED"
- glib:nick="row-interleaved">
- <doc xml:space="preserve">Alternating horizontal
- rows of pixels represent the left and right eye view respectively.</doc>
- </member>
- <member name="top_bottom"
- value="7"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_TOP_BOTTOM"
- glib:nick="top-bottom">
- <doc xml:space="preserve">The top half of the frame
- contains the left eye, and the bottom half the right eye.</doc>
- </member>
- <member name="checkerboard"
- value="8"
- c:identifier="GST_VIDEO_MULTIVIEW_FRAME_PACKING_CHECKERBOARD"
- glib:nick="checkerboard">
- <doc xml:space="preserve">Pixels are arranged with
- alternating pixels representing left and right eye views in a
- checkerboard fashion.</doc>
- </member>
- </enumeration>
- <enumeration name="VideoMultiviewMode"
- glib:type-name="GstVideoMultiviewMode"
- glib:get-type="gst_video_multiview_mode_get_type"
- c:type="GstVideoMultiviewMode">
- <doc xml:space="preserve">All possible stereoscopic 3D and multiview representations.
- In conjunction with #GstVideoMultiviewFlags, describes how
- multiview content is being transported in the stream.</doc>
- <member name="none"
- value="-1"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">A special value indicating
- no multiview information. Used in GstVideoInfo and other places to
- indicate that no specific multiview handling has been requested or
- provided. This value is never carried on caps.</doc>
- </member>
- <member name="mono"
- value="0"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_MONO"
- glib:nick="mono">
- <doc xml:space="preserve">All frames are monoscopic.</doc>
- </member>
- <member name="left"
- value="1"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_LEFT"
- glib:nick="left">
- <doc xml:space="preserve">All frames represent a left-eye view.</doc>
- </member>
- <member name="right"
- value="2"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_RIGHT"
- glib:nick="right">
- <doc xml:space="preserve">All frames represent a right-eye view.</doc>
- </member>
- <member name="side_by_side"
- value="3"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE"
- glib:nick="side-by-side">
- <doc xml:space="preserve">Left and right eye views are
- provided in the left and right half of the frame respectively.</doc>
- </member>
- <member name="side_by_side_quincunx"
- value="4"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_SIDE_BY_SIDE_QUINCUNX"
- glib:nick="side-by-side-quincunx">
- <doc xml:space="preserve">Left and right eye
- views are provided in the left and right half of the frame, but
- have been sampled using quincunx method, with half-pixel offset
- between the 2 views.</doc>
- </member>
- <member name="column_interleaved"
- value="5"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_COLUMN_INTERLEAVED"
- glib:nick="column-interleaved">
- <doc xml:space="preserve">Alternating vertical
- columns of pixels represent the left and right eye view respectively.</doc>
- </member>
- <member name="row_interleaved"
- value="6"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_ROW_INTERLEAVED"
- glib:nick="row-interleaved">
- <doc xml:space="preserve">Alternating horizontal
- rows of pixels represent the left and right eye view respectively.</doc>
- </member>
- <member name="top_bottom"
- value="7"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_TOP_BOTTOM"
- glib:nick="top-bottom">
- <doc xml:space="preserve">The top half of the frame
- contains the left eye, and the bottom half the right eye.</doc>
- </member>
- <member name="checkerboard"
- value="8"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_CHECKERBOARD"
- glib:nick="checkerboard">
- <doc xml:space="preserve">Pixels are arranged with
- alternating pixels representing left and right eye views in a
- checkerboard fashion.</doc>
- </member>
- <member name="frame_by_frame"
- value="32"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME"
- glib:nick="frame-by-frame">
- <doc xml:space="preserve">Left and right eye views
- are provided in separate frames alternately.</doc>
- </member>
- <member name="multiview_frame_by_frame"
- value="33"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME"
- glib:nick="multiview-frame-by-frame">
- <doc xml:space="preserve">Multiple
- independent views are provided in separate frames in sequence.
- This method only applies to raw video buffers at the moment.
- Specific view identification is via the #GstVideoMultiviewMeta
- and #GstVideoMeta(s) on raw video buffers.</doc>
- </member>
- <member name="separated"
- value="34"
- c:identifier="GST_VIDEO_MULTIVIEW_MODE_SEPARATED"
- glib:nick="separated">
- <doc xml:space="preserve">Multiple views are
- provided as separate #GstMemory framebuffers attached to each
- #GstBuffer, described by the #GstVideoMultiviewMeta
- and #GstVideoMeta(s)</doc>
- </member>
- <function name="from_caps_string"
- c:identifier="gst_video_multiview_mode_from_caps_string"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstVideoMultiviewMode value
- Given a string from a caps multiview-mode field,
- output the corresponding #GstVideoMultiviewMode
- or #GST_VIDEO_MULTIVIEW_MODE_NONE</doc>
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </return-value>
- <parameters>
- <parameter name="caps_mview_mode" transfer-ownership="none">
- <doc xml:space="preserve">multiview-mode field string from caps</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="to_caps_string"
- c:identifier="gst_video_multiview_mode_to_caps_string"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The caps string representation of the mode, or NULL if invalid.
- Given a #GstVideoMultiviewMode returns the multiview-mode caps string
- for insertion into a caps structure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mview_mode" transfer-ownership="none">
- <doc xml:space="preserve">A #GstVideoMultiviewMode value</doc>
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </parameter>
- </parameters>
- </function>
- </enumeration>
- <interface name="VideoOrientation"
- c:symbol-prefix="video_orientation"
- c:type="GstVideoOrientation"
- glib:type-name="GstVideoOrientation"
- glib:get-type="gst_video_orientation_get_type"
- glib:type-struct="VideoOrientationInterface">
- <doc xml:space="preserve">The interface allows unified access to control flipping and autocenter
- operation of video-sources or operators.</doc>
- <virtual-method name="get_hcenter" invoker="get_hcenter">
- <doc xml:space="preserve">Get the horizontal centering offset from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_hflip" invoker="get_hflip">
- <doc xml:space="preserve">Get the horizontal flipping state (%TRUE for flipped) from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_vcenter" invoker="get_vcenter">
- <doc xml:space="preserve">Get the vertical centering offset from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="get_vflip" invoker="get_vflip">
- <doc xml:space="preserve">Get the vertical flipping state (%TRUE for flipped) from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_hcenter" invoker="set_hcenter">
- <doc xml:space="preserve">Set the horizontal centering offset for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">centering offset</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_hflip" invoker="set_hflip">
- <doc xml:space="preserve">Set the horizontal flipping state (%TRUE for flipped) for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">use flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_vcenter" invoker="set_vcenter">
- <doc xml:space="preserve">Set the vertical centering offset for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">centering offset</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_vflip" invoker="set_vflip">
- <doc xml:space="preserve">Set the vertical flipping state (%TRUE for flipped) for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">use flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="get_hcenter"
- c:identifier="gst_video_orientation_get_hcenter">
- <doc xml:space="preserve">Get the horizontal centering offset from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_hflip" c:identifier="gst_video_orientation_get_hflip">
- <doc xml:space="preserve">Get the horizontal flipping state (%TRUE for flipped) from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_vcenter"
- c:identifier="gst_video_orientation_get_vcenter">
- <doc xml:space="preserve">Get the vertical centering offset from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_vflip" c:identifier="gst_video_orientation_get_vflip">
- <doc xml:space="preserve">Get the vertical flipping state (%TRUE for flipped) from the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_hcenter"
- c:identifier="gst_video_orientation_set_hcenter">
- <doc xml:space="preserve">Set the horizontal centering offset for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">centering offset</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_hflip" c:identifier="gst_video_orientation_set_hflip">
- <doc xml:space="preserve">Set the horizontal flipping state (%TRUE for flipped) for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">use flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_vcenter"
- c:identifier="gst_video_orientation_set_vcenter">
- <doc xml:space="preserve">Set the vertical centering offset for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">centering offset</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_vflip" c:identifier="gst_video_orientation_set_vflip">
- <doc xml:space="preserve">Set the vertical flipping state (%TRUE for flipped) for the given object.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_orientation"
- transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </instance-parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">use flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="VideoOrientationInterface"
- c:type="GstVideoOrientationInterface"
- glib:is-gtype-struct-for="VideoOrientation">
- <doc xml:space="preserve">#GstVideoOrientationInterface interface.</doc>
- <field name="iface">
- <doc xml:space="preserve">parent interface type.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="get_hflip">
- <callback name="get_hflip">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_vflip">
- <callback name="get_vflip">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_hcenter">
- <callback name="get_hcenter">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="get_vcenter">
- <callback name="get_vcenter">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">return location for the result</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_hflip">
- <callback name="set_hflip">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">use flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_vflip">
- <callback name="set_vflip">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="flip" transfer-ownership="none">
- <doc xml:space="preserve">use flipping</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_hcenter">
- <callback name="set_hcenter">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">centering offset</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_vcenter">
- <callback name="set_vcenter">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE in case the element supports centering</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="video_orientation" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoOrientation interface of a #GstElement</doc>
- <type name="VideoOrientation" c:type="GstVideoOrientation*"/>
- </parameter>
- <parameter name="center" transfer-ownership="none">
- <doc xml:space="preserve">centering offset</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <interface name="VideoOverlay"
- c:symbol-prefix="video_overlay"
- c:type="GstVideoOverlay"
- glib:type-name="GstVideoOverlay"
- glib:get-type="gst_video_overlay_get_type"
- glib:type-struct="VideoOverlayInterface">
- <doc xml:space="preserve"><refsect2>
- <para>
- The #GstVideoOverlay interface is used for 2 main purposes :
- <itemizedlist>
- <listitem>
- <para>
- To get a grab on the Window where the video sink element is going to render.
- This is achieved by either being informed about the Window identifier that
- the video sink element generated, or by forcing the video sink element to use
- a specific Window identifier for rendering.
- </para>
- </listitem>
- <listitem>
- <para>
- To force a redrawing of the latest video frame the video sink element
- displayed on the Window. Indeed if the #GstPipeline is in #GST_STATE_PAUSED
- state, moving the Window around will damage its content. Application
- developers will want to handle the Expose events themselves and force the
- video sink element to refresh the Window's content.
- </para>
- </listitem>
- </itemizedlist>
- </para>
- <para>
- Using the Window created by the video sink is probably the simplest scenario,
- in some cases, though, it might not be flexible enough for application
- developers if they need to catch events such as mouse moves and button
- clicks.
- </para>
- <para>
- Setting a specific Window identifier on the video sink element is the most
- flexible solution but it has some issues. Indeed the application needs to set
- its Window identifier at the right time to avoid internal Window creation
- from the video sink element. To solve this issue a #GstMessage is posted on
- the bus to inform the application that it should set the Window identifier
- immediately. Here is an example on how to do that correctly:
- |[
- static GstBusSyncReply
- create_window (GstBus * bus, GstMessage * message, GstPipeline * pipeline)
- {
- // ignore anything but 'prepare-window-handle' element messages
- if (!gst_is_video_overlay_prepare_window_handle_message (message))
- return GST_BUS_PASS;
- win = XCreateSimpleWindow (disp, root, 0, 0, 320, 240, 0, 0, 0);
- XSetWindowBackgroundPixmap (disp, win, None);
- XMapRaised (disp, win);
- XSync (disp, FALSE);
- gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message)),
- win);
- gst_message_unref (message);
- return GST_BUS_DROP;
- }
- ...
- int
- main (int argc, char **argv)
- {
- ...
- bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
- gst_bus_set_sync_handler (bus, (GstBusSyncHandler) create_window, pipeline,
- NULL);
- ...
- }
- ]|
- </para>
- </refsect2>
- <refsect2>
- <title>Two basic usage scenarios</title>
- <para>
- There are two basic usage scenarios: in the simplest case, the application
- uses #playbin or #plasink or knows exactly what particular element is used
- for video output, which is usually the case when the application creates
- the videosink to use (e.g. #xvimagesink, #ximagesink, etc.) itself; in this
- case, the application can just create the videosink element, create and
- realize the window to render the video on and then
- call gst_video_overlay_set_window_handle() directly with the XID or native
- window handle, before starting up the pipeline.
- As #playbin and #playsink implement the video overlay interface and proxy
- it transparently to the actual video sink even if it is created later, this
- case also applies when using these elements.
- </para>
- <para>
- In the other and more common case, the application does not know in advance
- what GStreamer video sink element will be used for video output. This is
- usually the case when an element such as #autovideosink is used.
- In this case, the video sink element itself is created
- asynchronously from a GStreamer streaming thread some time after the
- pipeline has been started up. When that happens, however, the video sink
- will need to know right then whether to render onto an already existing
- application window or whether to create its own window. This is when it
- posts a prepare-window-handle message, and that is also why this message needs
- to be handled in a sync bus handler which will be called from the streaming
- thread directly (because the video sink will need an answer right then).
- </para>
- <para>
- As response to the prepare-window-handle element message in the bus sync
- handler, the application may use gst_video_overlay_set_window_handle() to tell
- the video sink to render onto an existing window surface. At this point the
- application should already have obtained the window handle / XID, so it
- just needs to set it. It is generally not advisable to call any GUI toolkit
- functions or window system functions from the streaming thread in which the
- prepare-window-handle message is handled, because most GUI toolkits and
- windowing systems are not thread-safe at all and a lot of care would be
- required to co-ordinate the toolkit and window system calls of the
- different threads (Gtk+ users please note: prior to Gtk+ 2.18
- GDK_WINDOW_XID() was just a simple structure access, so generally fine to do
- within the bus sync handler; this macro was changed to a function call in
- Gtk+ 2.18 and later, which is likely to cause problems when called from a
- sync handler; see below for a better approach without GDK_WINDOW_XID()
- used in the callback).
- </para>
- </refsect2>
- <refsect2>
- <title>GstVideoOverlay and Gtk+</title>
- <para>
- |[
- #include &lt;gst/video/videooverlay.h&gt;
- #include &lt;gtk/gtk.h&gt;
- #ifdef GDK_WINDOWING_X11
- #include &lt;gdk/gdkx.h&gt; // for GDK_WINDOW_XID
- #endif
- #ifdef GDK_WINDOWING_WIN32
- #include &lt;gdk/gdkwin32.h&gt; // for GDK_WINDOW_HWND
- #endif
- ...
- static guintptr video_window_handle = 0;
- ...
- static GstBusSyncReply
- bus_sync_handler (GstBus * bus, GstMessage * message, gpointer user_data)
- {
- // ignore anything but 'prepare-window-handle' element messages
- if (!gst_is_video_overlay_prepare_window_handle_message (message))
- return GST_BUS_PASS;
- if (video_window_handle != 0) {
- GstVideoOverlay *overlay;
- // GST_MESSAGE_SRC (message) will be the video sink element
- overlay = GST_VIDEO_OVERLAY (GST_MESSAGE_SRC (message));
- gst_video_overlay_set_window_handle (overlay, video_window_handle);
- } else {
- g_warning ("Should have obtained video_window_handle by now!");
- }
- gst_message_unref (message);
- return GST_BUS_DROP;
- }
- ...
- static void
- video_widget_realize_cb (GtkWidget * widget, gpointer data)
- {
- #if GTK_CHECK_VERSION(2,18,0)
- // Tell Gtk+/Gdk to create a native window for this widget instead of
- // drawing onto the parent widget.
- // This is here just for pedagogical purposes, GDK_WINDOW_XID will call
- // it as well in newer Gtk versions
- if (!gdk_window_ensure_native (widget->window))
- g_error ("Couldn't create native window needed for GstVideoOverlay!");
- #endif
- #ifdef GDK_WINDOWING_X11
- {
- gulong xid = GDK_WINDOW_XID (gtk_widget_get_window (video_window));
- video_window_handle = xid;
- }
- #endif
- #ifdef GDK_WINDOWING_WIN32
- {
- HWND wnd = GDK_WINDOW_HWND (gtk_widget_get_window (video_window));
- video_window_handle = (guintptr) wnd;
- }
- #endif
- }
- ...
- int
- main (int argc, char **argv)
- {
- GtkWidget *video_window;
- GtkWidget *app_window;
- ...
- app_window = gtk_window_new (GTK_WINDOW_TOPLEVEL);
- ...
- video_window = gtk_drawing_area_new ();
- g_signal_connect (video_window, "realize",
- G_CALLBACK (video_widget_realize_cb), NULL);
- gtk_widget_set_double_buffered (video_window, FALSE);
- ...
- // usually the video_window will not be directly embedded into the
- // application window like this, but there will be many other widgets
- // and the video window will be embedded in one of them instead
- gtk_container_add (GTK_CONTAINER (ap_window), video_window);
- ...
- // show the GUI
- gtk_widget_show_all (app_window);
- // realize window now so that the video window gets created and we can
- // obtain its XID/HWND before the pipeline is started up and the videosink
- // asks for the XID/HWND of the window to render onto
- gtk_widget_realize (video_window);
- // we should have the XID/HWND now
- g_assert (video_window_handle != 0);
- ...
- // set up sync handler for setting the xid once the pipeline is started
- bus = gst_pipeline_get_bus (GST_PIPELINE (pipeline));
- gst_bus_set_sync_handler (bus, (GstBusSyncHandler) bus_sync_handler, NULL,
- NULL);
- gst_object_unref (bus);
- ...
- gst_element_set_state (pipeline, GST_STATE_PLAYING);
- ...
- }
- ]|
- </para>
- </refsect2>
- <refsect2>
- <title>GstVideoOverlay and Qt</title>
- <para>
- |[
- #include &lt;glib.h&gt;
- #include &lt;gst/gst.h&gt;
- #include &lt;gst/video/videooverlay.h&gt;
- #include &lt;QApplication&gt;
- #include &lt;QTimer&gt;
- #include &lt;QWidget&gt;
- int main(int argc, char *argv[])
- {
- if (!g_thread_supported ())
- g_thread_init (NULL);
- gst_init (&argc, &argv);
- QApplication app(argc, argv);
- app.connect(&app, SIGNAL(lastWindowClosed()), &app, SLOT(quit ()));
- // prepare the pipeline
- GstElement *pipeline = gst_pipeline_new ("xvoverlay");
- GstElement *src = gst_element_factory_make ("videotestsrc", NULL);
- GstElement *sink = gst_element_factory_make ("xvimagesink", NULL);
- gst_bin_add_many (GST_BIN (pipeline), src, sink, NULL);
- gst_element_link (src, sink);
- // prepare the ui
- QWidget window;
- window.resize(320, 240);
- window.show();
- WId xwinid = window.winId();
- gst_video_overlay_set_window_handle (GST_VIDEO_OVERLAY (sink), xwinid);
- // run the pipeline
- GstStateChangeReturn sret = gst_element_set_state (pipeline,
- GST_STATE_PLAYING);
- if (sret == GST_STATE_CHANGE_FAILURE) {
- gst_element_set_state (pipeline, GST_STATE_NULL);
- gst_object_unref (pipeline);
- // Exit application
- QTimer::singleShot(0, QApplication::activeWindow(), SLOT(quit()));
- }
- int ret = app.exec();
- window.hide();
- gst_element_set_state (pipeline, GST_STATE_NULL);
- gst_object_unref (pipeline);
- return ret;
- }
- ]|
- </para>
- </refsect2></doc>
- <virtual-method name="expose" invoker="expose">
- <doc xml:space="preserve">Tell an overlay that it has been exposed. This will redraw the current frame
- in the drawable even if the pipeline is PAUSED.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="handle_events" invoker="handle_events">
- <doc xml:space="preserve">Tell an overlay that it should handle events from the window system. These
- events are forwarded upstream as navigation events. In some window system,
- events are not propagated in the window hierarchy if a client is listening
- for them. This method allows you to disable events handling completely
- from the #GstVideoOverlay.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="handle_events" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if events should be handled or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_render_rectangle">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="x" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </virtual-method>
- <virtual-method name="set_window_handle" invoker="set_window_handle">
- <doc xml:space="preserve">This will call the video overlay's set_window_handle method. You
- should use this method to tell to an overlay to display video output to a
- specific window (e.g. an XWindow on X11). Passing 0 as the @handle will
- tell the overlay to stop using that window and create an internal one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to set the window on.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a handle referencing the window.</doc>
- <type name="guintptr" c:type="guintptr"/>
- </parameter>
- </parameters>
- </virtual-method>
- <method name="expose" c:identifier="gst_video_overlay_expose">
- <doc xml:space="preserve">Tell an overlay that it has been exposed. This will redraw the current frame
- in the drawable even if the pipeline is PAUSED.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="got_window_handle"
- c:identifier="gst_video_overlay_got_window_handle">
- <doc xml:space="preserve">This will post a "have-window-handle" element message on the bus.
- This function should only be used by video overlay plugin developers.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay which got a window</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a platform-specific handle referencing the window</doc>
- <type name="guintptr" c:type="guintptr"/>
- </parameter>
- </parameters>
- </method>
- <method name="handle_events"
- c:identifier="gst_video_overlay_handle_events">
- <doc xml:space="preserve">Tell an overlay that it should handle events from the window system. These
- events are forwarded upstream as navigation events. In some window system,
- events are not propagated in the window hierarchy if a client is listening
- for them. This method allows you to disable events handling completely
- from the #GstVideoOverlay.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="handle_events" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if events should be handled or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </method>
- <method name="prepare_window_handle"
- c:identifier="gst_video_overlay_prepare_window_handle">
- <doc xml:space="preserve">This will post a "prepare-window-handle" element message on the bus
- to give applications an opportunity to call
- gst_video_overlay_set_window_handle() before a plugin creates its own
- window.
- This function should only be used by video overlay plugin developers.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay which does not yet have an Window handle set</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_render_rectangle"
- c:identifier="gst_video_overlay_set_render_rectangle">
- <doc xml:space="preserve">Configure a subregion as a video target within the window set by
- gst_video_overlay_set_window_handle(). If this is not used or not supported
- the video will fill the area of the window set as the overlay to 100%.
- By specifying the rectangle, the video can be overlayed to a specific region
- of that window only. After setting the new rectangle one should call
- gst_video_overlay_expose() to force a redraw. To unset the region pass -1 for
- the @width and @height parameters.
- This method is needed for non fullscreen video overlay in UI toolkits that
- do not support subwindows.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%FALSE if not supported by the sink.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">the horizontal offset of the render area inside the window</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">the vertical offset of the render area inside the window</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the width of the render area inside the window</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">the height of the render area inside the window</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_window_handle"
- c:identifier="gst_video_overlay_set_window_handle">
- <doc xml:space="preserve">This will call the video overlay's set_window_handle method. You
- should use this method to tell to an overlay to display video output to a
- specific window (e.g. an XWindow on X11). Passing 0 as the @handle will
- tell the overlay to stop using that window and create an internal one.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to set the window on.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </instance-parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a handle referencing the window.</doc>
- <type name="guintptr" c:type="guintptr"/>
- </parameter>
- </parameters>
- </method>
- </interface>
- <record name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition"
- glib:type-name="GstVideoOverlayComposition"
- glib:get-type="gst_video_overlay_composition_get_type"
- c:symbol-prefix="video_overlay_composition">
- <doc xml:space="preserve"><refsect2>
- <para>
- Functions to create and handle overlay compositions on video buffers.
- </para>
- <para>
- An overlay composition describes one or more overlay rectangles to be
- blended on top of a video buffer.
- </para>
- <para>
- This API serves two main purposes:
- <itemizedlist>
- <listitem>
- it can be used to attach overlay information (subtitles or logos)
- to non-raw video buffers such as GL/VAAPI/VDPAU surfaces. The actual
- blending of the overlay can then be done by e.g. the video sink that
- processes these non-raw buffers.
- </listitem>
- <listitem>
- it can also be used to blend overlay rectangles on top of raw video
- buffers, thus consolidating blending functionality for raw video in
- one place.
- </listitem>
- Together, this allows existing overlay elements to easily handle raw
- and non-raw video as input in without major changes (once the overlays
- have been put into a #GstOverlayComposition object anyway) - for raw
- video the overlay can just use the blending function to blend the data
- on top of the video, and for surface buffers it can just attach them to
- the buffer and let the sink render the overlays.
- </itemizedlist>
- </para>
- </refsect2></doc>
- <constructor name="new" c:identifier="gst_video_overlay_composition_new">
- <doc xml:space="preserve">Creates a new video overlay composition object to hold one or more
- overlay rectangles.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoOverlayComposition. Unref with
- gst_video_overlay_composition_unref() when no longer needed.</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </return-value>
- <parameters>
- <parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle to add to the
- composition</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="add_rectangle"
- c:identifier="gst_video_overlay_composition_add_rectangle">
- <doc xml:space="preserve">Adds an overlay rectangle to an existing overlay composition object. This
- must be done right after creating the overlay composition.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- <parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle to add to the
- composition</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </parameter>
- </parameters>
- </method>
- <method name="blend" c:identifier="gst_video_overlay_composition_blend">
- <doc xml:space="preserve">Blends the overlay rectangles in @comp on top of the raw video data
- contained in @video_buf. The data in @video_buf must be writable and
- mapped appropriately.</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- <parameter name="video_buf" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFrame containing raw video data in a supported format</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- </parameters>
- </method>
- <method name="copy" c:identifier="gst_video_overlay_composition_copy">
- <doc xml:space="preserve">Makes a copy of @comp and all contained rectangles, so that it is possible
- to modify the composition and contained rectangles (e.g. add additional
- rectangles or change the render co-ordinates or render dimension). The
- actual overlay pixel data buffers contained in the rectangles are not
- copied.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoOverlayComposition equivalent
- to @comp.</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayComposition to copy</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_rectangle"
- c:identifier="gst_video_overlay_composition_get_rectangle">
- <doc xml:space="preserve">Returns the @n-th #GstVideoOverlayRectangle contained in @comp.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the @n-th rectangle, or NULL if @n is out of
- bounds. Will not return a new reference, the caller will need to
- obtain her own reference using gst_video_overlay_rectangle_ref()
- if needed.</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- <parameter name="n" transfer-ownership="none">
- <doc xml:space="preserve">number of the rectangle to get</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_seqnum"
- c:identifier="gst_video_overlay_composition_get_seqnum">
- <doc xml:space="preserve">Returns the sequence number of this composition. Sequence numbers are
- monotonically increasing and unique for overlay compositions and rectangles
- (meaning there will never be a rectangle with the same sequence number as
- a composition).</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the sequence number of @comp</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="make_writable"
- c:identifier="gst_video_overlay_composition_make_writable">
- <doc xml:space="preserve">Takes ownership of @comp and returns a version of @comp that is writable
- (i.e. can be modified). Will either return @comp right away, or create a
- new writable copy of @comp and unref @comp itself. All the contained
- rectangles will also be copied, but the actual overlay pixel data buffers
- contained in the rectangles are not copied.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a writable #GstVideoOverlayComposition
- equivalent to @comp.</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="full">
- <doc xml:space="preserve">a #GstVideoOverlayComposition to copy</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="n_rectangles"
- c:identifier="gst_video_overlay_composition_n_rectangles">
- <doc xml:space="preserve">Returns the number of #GstVideoOverlayRectangle<!-- -->s contained in @comp.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the number of rectangles</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="comp" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </instance-parameter>
- </parameters>
- </method>
- </record>
- <record name="VideoOverlayCompositionMeta"
- c:type="GstVideoOverlayCompositionMeta">
- <doc xml:space="preserve">Extra buffer metadata describing image overlay data.</doc>
- <field name="meta" writable="1">
- <doc xml:space="preserve">parent #GstMeta</doc>
- <type name="Gst.Meta" c:type="GstMeta"/>
- </field>
- <field name="overlay" writable="1">
- <doc xml:space="preserve">the attached #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </field>
- <function name="get_info"
- c:identifier="gst_video_overlay_composition_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <enumeration name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags">
- <doc xml:space="preserve">Overlay format flags.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_NONE">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="premultiplied_alpha"
- value="1"
- c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_PREMULTIPLIED_ALPHA">
- <doc xml:space="preserve">RGB are premultiplied by A/255.</doc>
- </member>
- <member name="global_alpha"
- value="2"
- c:identifier="GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA">
- <doc xml:space="preserve">a global-alpha value != 1 is set.</doc>
- </member>
- </enumeration>
- <record name="VideoOverlayInterface"
- c:type="GstVideoOverlayInterface"
- glib:is-gtype-struct-for="VideoOverlay">
- <doc xml:space="preserve">#GstVideoOverlay interface</doc>
- <field name="iface">
- <doc xml:space="preserve">parent interface type.</doc>
- <type name="GObject.TypeInterface" c:type="GTypeInterface"/>
- </field>
- <field name="expose">
- <callback name="expose">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="handle_events">
- <callback name="handle_events">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to expose.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </parameter>
- <parameter name="handle_events" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if events should be handled or not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_render_rectangle">
- <callback name="set_render_rectangle">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="overlay" transfer-ownership="none">
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="set_window_handle">
- <callback name="set_window_handle">
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="overlay" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlay to set the window on.</doc>
- <type name="VideoOverlay" c:type="GstVideoOverlay*"/>
- </parameter>
- <parameter name="handle" transfer-ownership="none">
- <doc xml:space="preserve">a handle referencing the window.</doc>
- <type name="guintptr" c:type="guintptr"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- </record>
- <record name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle"
- glib:type-name="GstVideoOverlayRectangle"
- glib:get-type="gst_video_overlay_rectangle_get_type"
- c:symbol-prefix="video_overlay_rectangle">
- <doc xml:space="preserve">An opaque video overlay rectangle object. A rectangle contains a single
- overlay rectangle which can be added to a composition.</doc>
- <constructor name="new_raw"
- c:identifier="gst_video_overlay_rectangle_new_raw">
- <doc xml:space="preserve">Creates a new video overlay rectangle with ARGB or AYUV pixel data.
- The layout in case of ARGB of the components in memory is B-G-R-A
- on little-endian platforms
- (corresponding to #GST_VIDEO_FORMAT_BGRA) and A-R-G-B on big-endian
- platforms (corresponding to #GST_VIDEO_FORMAT_ARGB). In other words,
- pixels are treated as 32-bit words and the lowest 8 bits then contain
- the blue component value and the highest 8 bits contain the alpha
- component value. Unless specified in the flags, the RGB values are
- non-premultiplied. This is the format that is used by most hardware,
- and also many rendering libraries such as Cairo, for example.
- The pixel data buffer must have #GstVideoMeta set.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoOverlayRectangle. Unref with
- gst_video_overlay_rectangle_unref() when no longer needed.</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </return-value>
- <parameters>
- <parameter name="pixels" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer pointing to the pixel memory</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="render_x" transfer-ownership="none">
- <doc xml:space="preserve">the X co-ordinate on the video where the top-left corner of this
- overlay rectangle should be rendered to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="render_y" transfer-ownership="none">
- <doc xml:space="preserve">the Y co-ordinate on the video where the top-left corner of this
- overlay rectangle should be rendered to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="render_width" transfer-ownership="none">
- <doc xml:space="preserve">the render width of this rectangle on the video</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="render_height" transfer-ownership="none">
- <doc xml:space="preserve">the render height of this rectangle on the video</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </constructor>
- <method name="copy" c:identifier="gst_video_overlay_rectangle_copy">
- <doc xml:space="preserve">Makes a copy of @rectangle, so that it is possible to modify it
- (e.g. to change the render co-ordinates or render dimension). The
- actual overlay pixel data buffers contained in the rectangle are not
- copied.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">a new #GstVideoOverlayRectangle equivalent
- to @rectangle.</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle to copy</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_flags"
- c:identifier="gst_video_overlay_rectangle_get_flags">
- <doc xml:space="preserve">Retrieves the flags associated with a #GstVideoOverlayRectangle.
- This is useful if the caller can handle both premultiplied alpha and
- non premultiplied alpha, for example. By knowing whether the rectangle
- uses premultiplied or not, it can request the pixel data in the format
- it is stored in, to avoid unnecessary conversion.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoOverlayFormatFlags associated with the rectangle.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_global_alpha"
- c:identifier="gst_video_overlay_rectangle_get_global_alpha">
- <doc xml:space="preserve">Retrieves the global-alpha value associated with a #GstVideoOverlayRectangle.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the global-alpha value associated with the rectangle.</doc>
- <type name="gfloat" c:type="gfloat"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_pixels_argb"
- c:identifier="gst_video_overlay_rectangle_get_pixels_argb">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding the ARGB pixel data with
- width and height of the render dimensions as per
- gst_video_overlay_rectangle_get_render_rectangle(). This function does
- not return a reference, the caller should obtain a reference of her own
- with gst_buffer_ref() if needed.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags
- If a global_alpha value != 1 is set for the rectangle, the caller
- should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
- if he wants to apply global-alpha himself. If the flag is not set
- global_alpha is applied internally before returning the pixel-data.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pixels_ayuv"
- c:identifier="gst_video_overlay_rectangle_get_pixels_ayuv">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding the AYUV pixel data with
- width and height of the render dimensions as per
- gst_video_overlay_rectangle_get_render_rectangle(). This function does
- not return a reference, the caller should obtain a reference of her own
- with gst_buffer_ref() if needed.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags
- If a global_alpha value != 1 is set for the rectangle, the caller
- should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
- if he wants to apply global-alpha himself. If the flag is not set
- global_alpha is applied internally before returning the pixel-data.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pixels_raw"
- c:identifier="gst_video_overlay_rectangle_get_pixels_raw">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding the pixel data with
- format as originally provided and specified in video meta with
- width and height of the render dimensions as per
- gst_video_overlay_rectangle_get_render_rectangle(). This function does
- not return a reference, the caller should obtain a reference of her own
- with gst_buffer_ref() if needed.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags
- If a global_alpha value != 1 is set for the rectangle, the caller
- should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
- if he wants to apply global-alpha himself. If the flag is not set
- global_alpha is applied internally before returning the pixel-data.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pixels_unscaled_argb"
- c:identifier="gst_video_overlay_rectangle_get_pixels_unscaled_argb">
- <doc xml:space="preserve">Retrieves the pixel data as it is. This is useful if the caller can
- do the scaling itself when handling the overlaying. The rectangle will
- need to be scaled to the render dimensions, which can be retrieved using
- gst_video_overlay_rectangle_get_render_rectangle().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding the ARGB pixel data with
- #GstVideoMeta set. This function does not return a reference, the caller
- should obtain a reference of her own with gst_buffer_ref() if needed.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags.
- If a global_alpha value != 1 is set for the rectangle, the caller
- should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
- if he wants to apply global-alpha himself. If the flag is not set
- global_alpha is applied internally before returning the pixel-data.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pixels_unscaled_ayuv"
- c:identifier="gst_video_overlay_rectangle_get_pixels_unscaled_ayuv">
- <doc xml:space="preserve">Retrieves the pixel data as it is. This is useful if the caller can
- do the scaling itself when handling the overlaying. The rectangle will
- need to be scaled to the render dimensions, which can be retrieved using
- gst_video_overlay_rectangle_get_render_rectangle().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding the AYUV pixel data with
- #GstVideoMeta set. This function does not return a reference, the caller
- should obtain a reference of her own with gst_buffer_ref() if needed.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags.
- If a global_alpha value != 1 is set for the rectangle, the caller
- should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
- if he wants to apply global-alpha himself. If the flag is not set
- global_alpha is applied internally before returning the pixel-data.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_pixels_unscaled_raw"
- c:identifier="gst_video_overlay_rectangle_get_pixels_unscaled_raw">
- <doc xml:space="preserve">Retrieves the pixel data as it is. This is useful if the caller can
- do the scaling itself when handling the overlaying. The rectangle will
- need to be scaled to the render dimensions, which can be retrieved using
- gst_video_overlay_rectangle_get_render_rectangle().</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer holding the pixel data with
- #GstVideoMeta set. This function does not return a reference, the caller
- should obtain a reference of her own with gst_buffer_ref() if needed.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">flags.
- If a global_alpha value != 1 is set for the rectangle, the caller
- should set the #GST_VIDEO_OVERLAY_FORMAT_FLAG_GLOBAL_ALPHA flag
- if he wants to apply global-alpha himself. If the flag is not set
- global_alpha is applied internally before returning the pixel-data.</doc>
- <type name="VideoOverlayFormatFlags"
- c:type="GstVideoOverlayFormatFlags"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_render_rectangle"
- c:identifier="gst_video_overlay_rectangle_get_render_rectangle">
- <doc xml:space="preserve">Retrieves the render position and render dimension of the overlay
- rectangle on the video.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if valid render dimensions were retrieved.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="render_x"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address where to store the X render offset</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="render_y"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address where to store the Y render offset</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="render_width"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address where to store the render width</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="render_height"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">address where to store the render height</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_seqnum"
- c:identifier="gst_video_overlay_rectangle_get_seqnum">
- <doc xml:space="preserve">Returns the sequence number of this rectangle. Sequence numbers are
- monotonically increasing and unique for overlay compositions and rectangles
- (meaning there will never be a rectangle with the same sequence number as
- a composition).
- Using the sequence number of a rectangle as an indicator for changed
- pixel-data of a rectangle is dangereous. Some API calls, like e.g.
- gst_video_overlay_rectangle_set_global_alpha(), automatically update
- the per rectangle sequence number, which is misleading for renderers/
- consumers, that handle global-alpha themselves. For them the
- pixel-data returned by gst_video_overlay_rectangle_get_pixels_*()
- wont be different for different global-alpha values. In this case a
- renderer could also use the GstBuffer pointers as a hint for changed
- pixel-data.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the sequence number of @rectangle</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="set_global_alpha"
- c:identifier="gst_video_overlay_rectangle_set_global_alpha">
- <doc xml:space="preserve">Sets the global alpha value associated with a #GstVideoOverlayRectangle. Per-
- pixel alpha values are multiplied with this value. Valid
- values: 0 <= global_alpha <= 1; 1 to deactivate.
- @rectangle must be writable, meaning its refcount must be 1. You can
- make the rectangles inside a #GstVideoOverlayComposition writable using
- gst_video_overlay_composition_make_writable() or
- gst_video_overlay_composition_copy().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="global_alpha" transfer-ownership="none">
- <doc xml:space="preserve">Global alpha value (0 to 1.0)</doc>
- <type name="gfloat" c:type="gfloat"/>
- </parameter>
- </parameters>
- </method>
- <method name="set_render_rectangle"
- c:identifier="gst_video_overlay_rectangle_set_render_rectangle">
- <doc xml:space="preserve">Sets the render position and dimensions of the rectangle on the video.
- This function is mainly for elements that modify the size of the video
- in some way (e.g. through scaling or cropping) and need to adjust the
- details of any overlays to match the operation that changed the size.
- @rectangle must be writable, meaning its refcount must be 1. You can
- make the rectangles inside a #GstVideoOverlayComposition writable using
- gst_video_overlay_composition_make_writable() or
- gst_video_overlay_composition_copy().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="rectangle" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayRectangle</doc>
- <type name="VideoOverlayRectangle"
- c:type="GstVideoOverlayRectangle*"/>
- </instance-parameter>
- <parameter name="render_x" transfer-ownership="none">
- <doc xml:space="preserve">render X position of rectangle on video</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="render_y" transfer-ownership="none">
- <doc xml:space="preserve">render Y position of rectangle on video</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="render_width" transfer-ownership="none">
- <doc xml:space="preserve">render width of rectangle</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="render_height" transfer-ownership="none">
- <doc xml:space="preserve">render height of rectangle</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <bitfield name="VideoPackFlags"
- glib:type-name="GstVideoPackFlags"
- glib:get-type="gst_video_pack_flags_get_type"
- c:type="GstVideoPackFlags">
- <doc xml:space="preserve">The different flags that can be used when packing and unpacking.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_PACK_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">No flag</doc>
- </member>
- <member name="truncate_range"
- value="1"
- c:identifier="GST_VIDEO_PACK_FLAG_TRUNCATE_RANGE"
- glib:nick="truncate-range">
- <doc xml:space="preserve">When the source has a smaller depth
- than the target format, set the least significant bits of the target
- to 0. This is likely sightly faster but less accurate. When this flag
- is not specified, the most significant bits of the source are duplicated
- in the least significant bits of the destination.</doc>
- </member>
- <member name="interlaced"
- value="2"
- c:identifier="GST_VIDEO_PACK_FLAG_INTERLACED"
- glib:nick="interlaced">
- <doc xml:space="preserve">The source is interlaced. The unpacked
- format will be interlaced as well with each line containing
- information from alternating fields. (Since 1.2)</doc>
- </member>
- </bitfield>
- <enumeration name="VideoPrimariesMode"
- version="1.6"
- glib:type-name="GstVideoPrimariesMode"
- glib:get-type="gst_video_primaries_mode_get_type"
- c:type="GstVideoPrimariesMode">
- <doc xml:space="preserve">Different primaries conversion modes</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_PRIMARIES_MODE_NONE"
- glib:nick="none">
- <doc xml:space="preserve">disable conversion between primaries</doc>
- </member>
- <member name="merge_only"
- value="1"
- c:identifier="GST_VIDEO_PRIMARIES_MODE_MERGE_ONLY"
- glib:nick="merge-only">
- <doc xml:space="preserve">do conversion between primaries only
- when it can be merged with color matrix conversion.</doc>
- </member>
- <member name="fast"
- value="2"
- c:identifier="GST_VIDEO_PRIMARIES_MODE_FAST"
- glib:nick="fast">
- <doc xml:space="preserve">fast conversion between primaries</doc>
- </member>
- </enumeration>
- <record name="VideoRectangle" c:type="GstVideoRectangle">
- <doc xml:space="preserve">Helper structure representing a rectangular area.</doc>
- <field name="x" writable="1">
- <doc xml:space="preserve">X coordinate of rectangle's top-left point</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="y" writable="1">
- <doc xml:space="preserve">Y coordinate of rectangle's top-left point</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="w" writable="1">
- <doc xml:space="preserve">width of the rectangle</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="h" writable="1">
- <doc xml:space="preserve">height of the rectangle</doc>
- <type name="gint" c:type="gint"/>
- </field>
- </record>
- <record name="VideoRegionOfInterestMeta"
- c:type="GstVideoRegionOfInterestMeta">
- <doc xml:space="preserve">Extra buffer metadata describing an image region of interest</doc>
- <field name="meta" writable="1">
- <doc xml:space="preserve">parent #GstMeta</doc>
- <type name="Gst.Meta" c:type="GstMeta"/>
- </field>
- <field name="roi_type" writable="1">
- <doc xml:space="preserve">GQuark describing the semantic of the Roi (f.i. a face, a pedestrian)</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </field>
- <field name="id" writable="1">
- <doc xml:space="preserve">identifier of this particular ROI</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="parent_id" writable="1">
- <doc xml:space="preserve">identifier of its parent ROI, used f.i. for ROI hierarchisation.</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="x" writable="1">
- <doc xml:space="preserve">x component of upper-left corner</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="y" writable="1">
- <doc xml:space="preserve">y component of upper-left corner</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="w" writable="1">
- <doc xml:space="preserve">bounding box width</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="h" writable="1">
- <doc xml:space="preserve">bounding box height</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <function name="get_info"
- c:identifier="gst_video_region_of_interest_meta_get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- </record>
- <record name="VideoResampler" c:type="GstVideoResampler" version="1.6">
- <doc xml:space="preserve">#GstVideoResampler is a structure which holds the information
- required to perform various kinds of resampling filtering.</doc>
- <field name="in_size" writable="1">
- <doc xml:space="preserve">the input size</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="out_size" writable="1">
- <doc xml:space="preserve">the output size</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="max_taps" writable="1">
- <doc xml:space="preserve">the maximum number of taps</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="n_phases" writable="1">
- <doc xml:space="preserve">the number of phases</doc>
- <type name="guint" c:type="guint"/>
- </field>
- <field name="offset" writable="1">
- <doc xml:space="preserve">array with the source offset for each output element</doc>
- <type name="guint32" c:type="guint32*"/>
- </field>
- <field name="phase" writable="1">
- <doc xml:space="preserve">array with the phase to use for each output element</doc>
- <type name="guint32" c:type="guint32*"/>
- </field>
- <field name="n_taps" writable="1">
- <doc xml:space="preserve">array with new number of taps for each phase</doc>
- <type name="guint32" c:type="guint32*"/>
- </field>
- <field name="taps" writable="1">
- <doc xml:space="preserve">the taps for all phases</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- <method name="clear"
- c:identifier="gst_video_resampler_clear"
- version="1.6">
- <doc xml:space="preserve">Clear a previously initialized #GstVideoResampler @resampler.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="resampler" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoResampler</doc>
- <type name="VideoResampler" c:type="GstVideoResampler*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="init" c:identifier="gst_video_resampler_init">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <instance-parameter name="resampler" transfer-ownership="none">
- <type name="VideoResampler" c:type="GstVideoResampler*"/>
- </instance-parameter>
- <parameter name="method" transfer-ownership="none">
- <type name="VideoResamplerMethod"
- c:type="GstVideoResamplerMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <type name="VideoResamplerFlags" c:type="GstVideoResamplerFlags"/>
- </parameter>
- <parameter name="n_phases" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_taps" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="shift" transfer-ownership="none">
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- <parameter name="in_size" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="out_size" transfer-ownership="none">
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="options" transfer-ownership="none">
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </method>
- </record>
- <enumeration name="VideoResamplerFlags"
- version="1.6"
- glib:type-name="GstVideoResamplerFlags"
- glib:get-type="gst_video_resampler_flags_get_type"
- c:type="GstVideoResamplerFlags">
- <doc xml:space="preserve">Different resampler flags.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_RESAMPLER_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- </enumeration>
- <enumeration name="VideoResamplerMethod"
- version="1.6"
- glib:type-name="GstVideoResamplerMethod"
- glib:get-type="gst_video_resampler_method_get_type"
- c:type="GstVideoResamplerMethod">
- <doc xml:space="preserve">Different subsampling and upsampling methods</doc>
- <member name="nearest"
- value="0"
- c:identifier="GST_VIDEO_RESAMPLER_METHOD_NEAREST"
- glib:nick="nearest">
- <doc xml:space="preserve">Duplicates the samples when
- upsampling and drops when downsampling</doc>
- </member>
- <member name="linear"
- value="1"
- c:identifier="GST_VIDEO_RESAMPLER_METHOD_LINEAR"
- glib:nick="linear">
- <doc xml:space="preserve">Uses linear interpolation to reconstruct
- missing samples and averaging to downsample</doc>
- </member>
- <member name="cubic"
- value="2"
- c:identifier="GST_VIDEO_RESAMPLER_METHOD_CUBIC"
- glib:nick="cubic">
- <doc xml:space="preserve">Uses cubic interpolation</doc>
- </member>
- <member name="sinc"
- value="3"
- c:identifier="GST_VIDEO_RESAMPLER_METHOD_SINC"
- glib:nick="sinc">
- <doc xml:space="preserve">Uses sinc interpolation</doc>
- </member>
- <member name="lanczos"
- value="4"
- c:identifier="GST_VIDEO_RESAMPLER_METHOD_LANCZOS"
- glib:nick="lanczos">
- <doc xml:space="preserve">Uses lanczos interpolation</doc>
- </member>
- </enumeration>
- <record name="VideoScaler" c:type="GstVideoScaler" disguised="1">
- <doc xml:space="preserve">#GstVideoScaler is a utility object for rescaling and resampling
- video frames using various interpolation / sampling methods.</doc>
- <method name="2d" c:identifier="gst_video_scaler_2d">
- <doc xml:space="preserve">Scale a rectangle of pixels in @src with @src_stride to @dest with
- @dest_stride using the horizontal scaler @hscaler and the vertical
- scaler @vscale.
- One or both of @hscale and @vscale can be NULL to only perform scaling in
- one dimension or do a copy without scaling.
- @x and @y are the coordinates in the destination image to process.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="hscale" transfer-ownership="none">
- <doc xml:space="preserve">a horzontal #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- <parameter name="vscale" transfer-ownership="none">
- <doc xml:space="preserve">a vertical #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat for @srcs and @dest</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">source pixels</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="src_stride" transfer-ownership="none">
- <doc xml:space="preserve">source pixels stride</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">destination pixels</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="dest_stride" transfer-ownership="none">
- <doc xml:space="preserve">destination pixels stride</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">the horizontal destination offset</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">the vertical destination offset</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the number of output pixels to scale</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">the number of output lines to scale</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="combine_packed_YUV"
- c:identifier="gst_video_scaler_combine_packed_YUV"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Combine a scaler for Y and UV into one scaler for the packed @format.</doc>
- <return-value>
- <doc xml:space="preserve">a new horizontal videoscaler for @format.</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </return-value>
- <parameters>
- <instance-parameter name="y_scale" transfer-ownership="none">
- <doc xml:space="preserve">a scaler for the Y component</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- <parameter name="uv_scale" transfer-ownership="none">
- <doc xml:space="preserve">a scaler for the U and V components</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </parameter>
- <parameter name="in_format" transfer-ownership="none">
- <doc xml:space="preserve">the input video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="out_format" transfer-ownership="none">
- <doc xml:space="preserve">the output video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </method>
- <method name="free" c:identifier="gst_video_scaler_free">
- <doc xml:space="preserve">Free a previously allocated #GstVideoScaler @scale.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="scale" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="get_coeff" c:identifier="gst_video_scaler_get_coeff">
- <doc xml:space="preserve">For a given pixel at @out_offset, get the first required input pixel at
- @in_offset and the @n_taps filter coefficients.
- Note that for interlaced content, @in_offset needs to be incremented with
- 2 to get the next input line.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">an array of @n_tap gdouble values with filter coefficients.</doc>
- <type name="gdouble" c:type="const gdouble*"/>
- </return-value>
- <parameters>
- <instance-parameter name="scale" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- <parameter name="out_offset" transfer-ownership="none">
- <doc xml:space="preserve">an output offset</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="in_offset" transfer-ownership="none">
- <doc xml:space="preserve">result input offset</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="n_taps" transfer-ownership="none">
- <doc xml:space="preserve">result n_taps</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </method>
- <method name="get_max_taps" c:identifier="gst_video_scaler_get_max_taps">
- <doc xml:space="preserve">Get the maximum number of taps for @scale.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the maximum number of taps</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <instance-parameter name="scale" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- </parameters>
- </method>
- <method name="horizontal" c:identifier="gst_video_scaler_horizontal">
- <doc xml:space="preserve">Horizontally scale the pixels in @src to @dest, starting from @dest_offset
- for @width samples.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="scale" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat for @src and @dest</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="src"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">source pixels</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">destination pixels</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="dest_offset" transfer-ownership="none">
- <doc xml:space="preserve">the horizontal destination offset</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the number of pixels to scale</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <method name="vertical" c:identifier="gst_video_scaler_vertical">
- <doc xml:space="preserve">Vertically combine @width pixels in the lines in @src_lines to @dest.
- @dest is the location of the target line at @dest_offset and
- @srcs are the input lines for @dest_offset, as obtained with
- gst_video_scaler_get_info().</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <instance-parameter name="scale" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoScaler</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </instance-parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat for @srcs and @dest</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="src_lines"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">source pixels lines</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="dest"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">destination pixels</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="dest_offset" transfer-ownership="none">
- <doc xml:space="preserve">the vertical destination offset</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the number of pixels to scale</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </method>
- <function name="new"
- c:identifier="gst_video_scaler_new"
- introspectable="0">
- <doc xml:space="preserve">Make a new @method video scaler. @in_size source lines/pixels will
- be scaled to @out_size destination lines/pixels.
- @n_taps specifies the amount of pixels to use from the source for one output
- pixel. If n_taps is 0, this function chooses a good value automatically based
- on the @method and @in_size/@out_size.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstVideoResample</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </return-value>
- <parameters>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoResamplerMethod</doc>
- <type name="VideoResamplerMethod"
- c:type="GstVideoResamplerMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoScalerFlags</doc>
- <type name="VideoScalerFlags" c:type="GstVideoScalerFlags"/>
- </parameter>
- <parameter name="n_taps" transfer-ownership="none">
- <doc xml:space="preserve">number of taps to use</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="in_size" transfer-ownership="none">
- <doc xml:space="preserve">number of source elements</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="out_size" transfer-ownership="none">
- <doc xml:space="preserve">number of destination elements</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="options"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">extra options</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- </record>
- <bitfield name="VideoScalerFlags"
- glib:type-name="GstVideoScalerFlags"
- glib:get-type="gst_video_scaler_flags_get_type"
- c:type="GstVideoScalerFlags">
- <doc xml:space="preserve">Different scale flags.</doc>
- <member name="none"
- value="0"
- c:identifier="GST_VIDEO_SCALER_FLAG_NONE"
- glib:nick="none">
- <doc xml:space="preserve">no flags</doc>
- </member>
- <member name="interlaced"
- value="1"
- c:identifier="GST_VIDEO_SCALER_FLAG_INTERLACED"
- glib:nick="interlaced">
- <doc xml:space="preserve">Set up a scaler for interlaced content</doc>
- </member>
- </bitfield>
- <class name="VideoSink"
- c:symbol-prefix="video_sink"
- c:type="GstVideoSink"
- parent="GstBase.BaseSink"
- glib:type-name="GstVideoSink"
- glib:get-type="gst_video_sink_get_type"
- glib:type-struct="VideoSinkClass">
- <doc xml:space="preserve"><refsect2>
- <para>
- Provides useful functions and a base class for video sinks.
- </para>
- <para>
- GstVideoSink will configure the default base sink to drop frames that
- arrive later than 20ms as this is considered the default threshold for
- observing out-of-sync frames.
- </para>
- </refsect2></doc>
- <function name="center_rect" c:identifier="gst_video_sink_center_rect">
- <doc xml:space="preserve">Takes @src rectangle and position it at the center of @dst rectangle with or
- without @scaling. It handles clipping if the @src rectangle is bigger than
- the @dst one and @scaling is set to FALSE.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoRectangle describing the source area</doc>
- <type name="VideoRectangle" c:type="GstVideoRectangle"/>
- </parameter>
- <parameter name="dst" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoRectangle describing the destination area</doc>
- <type name="VideoRectangle" c:type="GstVideoRectangle"/>
- </parameter>
- <parameter name="result" transfer-ownership="none">
- <doc xml:space="preserve">a pointer to a #GstVideoRectangle which will receive the result area</doc>
- <type name="VideoRectangle" c:type="GstVideoRectangle*"/>
- </parameter>
- <parameter name="scaling" transfer-ownership="none">
- <doc xml:space="preserve">a #gboolean indicating if scaling should be applied or not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <virtual-method name="show_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <instance-parameter name="video_sink" transfer-ownership="none">
- <type name="VideoSink" c:type="GstVideoSink*"/>
- </instance-parameter>
- <parameter name="buf" transfer-ownership="none">
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </virtual-method>
- <property name="show-preroll-frame"
- writable="1"
- construct="1"
- transfer-ownership="none">
- <doc xml:space="preserve">Whether to show video frames during preroll. If set to #FALSE, video
- frames will only be rendered in PLAYING state.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </property>
- <field name="element">
- <type name="GstBase.BaseSink" c:type="GstBaseSink"/>
- </field>
- <field name="width">
- <doc xml:space="preserve">video width (derived class needs to set this)</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="height">
- <doc xml:space="preserve">video height (derived class needs to set this)</doc>
- <type name="gint" c:type="gint"/>
- </field>
- <field name="priv" readable="0" private="1">
- <type name="VideoSinkPrivate" c:type="GstVideoSinkPrivate*"/>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </class>
- <record name="VideoSinkClass"
- c:type="GstVideoSinkClass"
- glib:is-gtype-struct-for="VideoSink">
- <doc xml:space="preserve">The video sink class structure. Derived classes should override the
- @show_frame virtual function.</doc>
- <field name="parent_class">
- <doc xml:space="preserve">the parent class structure</doc>
- <type name="GstBase.BaseSinkClass" c:type="GstBaseSinkClass"/>
- </field>
- <field name="show_frame">
- <callback name="show_frame">
- <return-value transfer-ownership="none">
- <type name="Gst.FlowReturn" c:type="GstFlowReturn"/>
- </return-value>
- <parameters>
- <parameter name="video_sink" transfer-ownership="none">
- <type name="VideoSink" c:type="GstVideoSink*"/>
- </parameter>
- <parameter name="buf" transfer-ownership="none">
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </callback>
- </field>
- <field name="_gst_reserved" readable="0" private="1">
- <array zero-terminated="0" c:type="gpointer" fixed-size="4">
- <type name="gpointer" c:type="gpointer"/>
- </array>
- </field>
- </record>
- <record name="VideoSinkPrivate" c:type="GstVideoSinkPrivate" disguised="1">
- </record>
- <enumeration name="VideoTileMode"
- glib:type-name="GstVideoTileMode"
- glib:get-type="gst_video_tile_mode_get_type"
- c:type="GstVideoTileMode">
- <doc xml:space="preserve">Enum value describing the available tiling modes.</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_TILE_MODE_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">Unknown or unset tile mode</doc>
- </member>
- <member name="zflipz_2x2"
- value="65536"
- c:identifier="GST_VIDEO_TILE_MODE_ZFLIPZ_2X2"
- glib:nick="zflipz-2x2">
- <doc xml:space="preserve">Every four adjacent blocks - two
- horizontally and two vertically are grouped together and are located
- in memory in Z or flipped Z order. In case of odd rows, the last row
- of blocks is arranged in linear order.</doc>
- </member>
- </enumeration>
- <enumeration name="VideoTileType"
- glib:type-name="GstVideoTileType"
- glib:get-type="gst_video_tile_type_get_type"
- c:type="GstVideoTileType">
- <doc xml:space="preserve">Enum value describing the most common tiling types.</doc>
- <member name="indexed"
- value="0"
- c:identifier="GST_VIDEO_TILE_TYPE_INDEXED"
- glib:nick="indexed">
- <doc xml:space="preserve">Tiles are indexed. Use
- gst_video_tile_get_index () to retrieve the tile at the requested
- coordinates.</doc>
- </member>
- </enumeration>
- <enumeration name="VideoTransferFunction"
- glib:type-name="GstVideoTransferFunction"
- glib:get-type="gst_video_transfer_function_get_type"
- c:type="GstVideoTransferFunction">
- <doc xml:space="preserve">The video transfer function defines the formula for converting between
- non-linear RGB (R'G'B') and linear RGB</doc>
- <member name="unknown"
- value="0"
- c:identifier="GST_VIDEO_TRANSFER_UNKNOWN"
- glib:nick="unknown">
- <doc xml:space="preserve">unknown transfer function</doc>
- </member>
- <member name="gamma10"
- value="1"
- c:identifier="GST_VIDEO_TRANSFER_GAMMA10"
- glib:nick="gamma10">
- <doc xml:space="preserve">linear RGB, gamma 1.0 curve</doc>
- </member>
- <member name="gamma18"
- value="2"
- c:identifier="GST_VIDEO_TRANSFER_GAMMA18"
- glib:nick="gamma18">
- <doc xml:space="preserve">Gamma 1.8 curve</doc>
- </member>
- <member name="gamma20"
- value="3"
- c:identifier="GST_VIDEO_TRANSFER_GAMMA20"
- glib:nick="gamma20">
- <doc xml:space="preserve">Gamma 2.0 curve</doc>
- </member>
- <member name="gamma22"
- value="4"
- c:identifier="GST_VIDEO_TRANSFER_GAMMA22"
- glib:nick="gamma22">
- <doc xml:space="preserve">Gamma 2.2 curve</doc>
- </member>
- <member name="bt709"
- value="5"
- c:identifier="GST_VIDEO_TRANSFER_BT709"
- glib:nick="bt709">
- <doc xml:space="preserve">Gamma 2.2 curve with a linear segment in the lower
- range</doc>
- </member>
- <member name="smpte240m"
- value="6"
- c:identifier="GST_VIDEO_TRANSFER_SMPTE240M"
- glib:nick="smpte240m">
- <doc xml:space="preserve">Gamma 2.2 curve with a linear segment in the
- lower range</doc>
- </member>
- <member name="srgb"
- value="7"
- c:identifier="GST_VIDEO_TRANSFER_SRGB"
- glib:nick="srgb">
- <doc xml:space="preserve">Gamma 2.4 curve with a linear segment in the lower
- range</doc>
- </member>
- <member name="gamma28"
- value="8"
- c:identifier="GST_VIDEO_TRANSFER_GAMMA28"
- glib:nick="gamma28">
- <doc xml:space="preserve">Gamma 2.8 curve</doc>
- </member>
- <member name="log100"
- value="9"
- c:identifier="GST_VIDEO_TRANSFER_LOG100"
- glib:nick="log100">
- <doc xml:space="preserve">Logarithmic transfer characteristic
- 100:1 range</doc>
- </member>
- <member name="log316"
- value="10"
- c:identifier="GST_VIDEO_TRANSFER_LOG316"
- glib:nick="log316">
- <doc xml:space="preserve">Logarithmic transfer characteristic
- 316.22777:1 range</doc>
- </member>
- <member name="bt2020_12"
- value="11"
- c:identifier="GST_VIDEO_TRANSFER_BT2020_12"
- glib:nick="bt2020-12">
- <doc xml:space="preserve">Gamma 2.2 curve with a linear segment in the lower
- range. Used for BT.2020 with 12 bits per
- component. Since: 1.6.</doc>
- </member>
- <member name="adobergb"
- value="12"
- c:identifier="GST_VIDEO_TRANSFER_ADOBERGB"
- glib:nick="adobergb">
- <doc xml:space="preserve">Gamma 2.19921875. Since: 1.8</doc>
- </member>
- </enumeration>
- <function name="buffer_add_video_affine_transformation_meta"
- c:identifier="gst_buffer_add_video_affine_transformation_meta"
- version="1.8">
- <doc xml:space="preserve">Attaches GstVideoAffineTransformationMeta metadata to @buffer with
- the given parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoAffineTransformationMeta on @buffer.</doc>
- <type name="VideoAffineTransformationMeta"
- c:type="GstVideoAffineTransformationMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_add_video_gl_texture_upload_meta"
- c:identifier="gst_buffer_add_video_gl_texture_upload_meta">
- <doc xml:space="preserve">Attaches GstVideoGLTextureUploadMeta metadata to @buffer with the given
- parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoGLTextureUploadMeta on @buffer.</doc>
- <type name="VideoGLTextureUploadMeta"
- c:type="GstVideoGLTextureUploadMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="texture_orientation" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoGLTextureOrientation</doc>
- <type name="VideoGLTextureOrientation"
- c:type="GstVideoGLTextureOrientation"/>
- </parameter>
- <parameter name="n_textures" transfer-ownership="none">
- <doc xml:space="preserve">the number of textures</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="texture_type" transfer-ownership="none">
- <doc xml:space="preserve">array of #GstVideoGLTextureType</doc>
- <type name="VideoGLTextureType" c:type="GstVideoGLTextureType"/>
- </parameter>
- <parameter name="upload"
- transfer-ownership="none"
- scope="call"
- closure="5">
- <doc xml:space="preserve">the function to upload the buffer to a specific texture ID</doc>
- <type name="VideoGLTextureUpload" c:type="GstVideoGLTextureUpload"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">user data for the implementor of @upload</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="user_data_copy"
- transfer-ownership="none"
- scope="call">
- <doc xml:space="preserve">function to copy @user_data</doc>
- <type name="GObject.BoxedCopyFunc" c:type="GBoxedCopyFunc"/>
- </parameter>
- <parameter name="user_data_free"
- transfer-ownership="none"
- scope="call">
- <doc xml:space="preserve">function to free @user_data</doc>
- <type name="GObject.BoxedFreeFunc" c:type="GBoxedFreeFunc"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_add_video_meta"
- c:identifier="gst_buffer_add_video_meta">
- <doc xml:space="preserve">Attaches GstVideoMeta metadata to @buffer with the given parameters and the
- default offsets and strides for @format and @width x @height.
- This function calculates the default offsets and strides and then calls
- gst_buffer_add_video_meta_full() with them.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoMeta on @buffer.</doc>
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoFrameFlags</doc>
- <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the width</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">the height</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_add_video_meta_full"
- c:identifier="gst_buffer_add_video_meta_full">
- <doc xml:space="preserve">Attaches GstVideoMeta metadata to @buffer with the given parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoMeta on @buffer.</doc>
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoFrameFlags</doc>
- <type name="VideoFrameFlags" c:type="GstVideoFrameFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the width</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">the height</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_planes" transfer-ownership="none">
- <doc xml:space="preserve">number of planes</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="offset" transfer-ownership="none">
- <doc xml:space="preserve">offset of each plane</doc>
- <type name="gsize" c:type="gsize"/>
- </parameter>
- <parameter name="stride" transfer-ownership="none">
- <doc xml:space="preserve">stride of each plane</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_add_video_overlay_composition_meta"
- c:identifier="gst_buffer_add_video_overlay_composition_meta">
- <doc xml:space="preserve">Sets an overlay composition on a buffer. The buffer will obtain its own
- reference to the composition, meaning this function does not take ownership
- of @comp.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoOverlayCompositionMeta</doc>
- <type name="VideoOverlayCompositionMeta"
- c:type="GstVideoOverlayCompositionMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buf" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="comp"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">a #GstVideoOverlayComposition</doc>
- <type name="VideoOverlayComposition"
- c:type="GstVideoOverlayComposition*"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_add_video_region_of_interest_meta"
- c:identifier="gst_buffer_add_video_region_of_interest_meta">
- <doc xml:space="preserve">Attaches #GstVideoRegionOfInterestMeta metadata to @buffer with the given
- parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoRegionOfInterestMeta on @buffer.</doc>
- <type name="VideoRegionOfInterestMeta"
- c:type="GstVideoRegionOfInterestMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="roi_type" transfer-ownership="none">
- <doc xml:space="preserve">Type of the region of interest (e.g. "face")</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">X position</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">Y position</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="w" transfer-ownership="none">
- <doc xml:space="preserve">width</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">height</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_add_video_region_of_interest_meta_id"
- c:identifier="gst_buffer_add_video_region_of_interest_meta_id">
- <doc xml:space="preserve">Attaches #GstVideoRegionOfInterestMeta metadata to @buffer with the given
- parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoRegionOfInterestMeta on @buffer.</doc>
- <type name="VideoRegionOfInterestMeta"
- c:type="GstVideoRegionOfInterestMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="roi_type" transfer-ownership="none">
- <doc xml:space="preserve">Type of the region of interest (e.g. "face")</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">X position</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">Y position</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="w" transfer-ownership="none">
- <doc xml:space="preserve">width</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="h" transfer-ownership="none">
- <doc xml:space="preserve">height</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_get_video_meta"
- c:identifier="gst_buffer_get_video_meta">
- <doc xml:space="preserve">Find the #GstVideoMeta on @buffer with the lowest @id.
- Buffers can contain multiple #GstVideoMeta metadata items when dealing with
- multiview buffers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoMeta with lowest id (usually 0) or %NULL when there
- is no such metadata on @buffer.</doc>
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_get_video_meta_id"
- c:identifier="gst_buffer_get_video_meta_id">
- <doc xml:space="preserve">Find the #GstVideoMeta on @buffer with the given @id.
- Buffers can contain multiple #GstVideoMeta metadata items when dealing with
- multiview buffers.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoMeta with @id or %NULL when there is no such metadata
- on @buffer.</doc>
- <type name="VideoMeta" c:type="GstVideoMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">a metadata id</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_get_video_region_of_interest_meta_id"
- c:identifier="gst_buffer_get_video_region_of_interest_meta_id">
- <doc xml:space="preserve">Find the #GstVideoRegionOfInterestMeta on @buffer with the given @id.
- Buffers can contain multiple #GstVideoRegionOfInterestMeta metadata items if
- multiple regions of interests are marked on a frame.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoRegionOfInterestMeta with @id or %NULL when there is
- no such metadata on @buffer.</doc>
- <type name="VideoRegionOfInterestMeta"
- c:type="GstVideoRegionOfInterestMeta*"/>
- </return-value>
- <parameters>
- <parameter name="buffer" transfer-ownership="none">
- <doc xml:space="preserve">a #GstBuffer</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="id" transfer-ownership="none">
- <doc xml:space="preserve">a metadata id</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_pool_config_get_video_alignment"
- c:identifier="gst_buffer_pool_config_get_video_alignment">
- <doc xml:space="preserve">Get the video alignment from the bufferpool configuration @config in
- in @align</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">#TRUE if @config could be parsed correctly.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="align" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoAlignment</doc>
- <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
- </parameter>
- </parameters>
- </function>
- <function name="buffer_pool_config_set_video_alignment"
- c:identifier="gst_buffer_pool_config_set_video_alignment">
- <doc xml:space="preserve">Set the video alignment in @align to the bufferpool configuration
- @config</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="config" transfer-ownership="none">
- <doc xml:space="preserve">a #GstStructure</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- <parameter name="align" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoAlignment</doc>
- <type name="VideoAlignment" c:type="GstVideoAlignment*"/>
- </parameter>
- </parameters>
- </function>
- <function name="is_video_overlay_prepare_window_handle_message"
- c:identifier="gst_is_video_overlay_prepare_window_handle_message">
- <doc xml:space="preserve">Convenience function to check if the given message is a
- "prepare-window-handle" message from a #GstVideoOverlay.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">whether @msg is a "prepare-window-handle" message</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="msg" transfer-ownership="none">
- <doc xml:space="preserve">a #GstMessage</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_event_get_type"
- c:identifier="gst_navigation_event_get_type"
- moved-to="Navigation.event_get_type">
- <doc xml:space="preserve">Inspect a #GstEvent and return the #GstNavigationEventType of the event, or
- #GST_NAVIGATION_EVENT_INVALID if the event is not a #GstNavigation event.</doc>
- <return-value transfer-ownership="none">
- <type name="NavigationEventType" c:type="GstNavigationEventType"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_event_parse_command"
- c:identifier="gst_navigation_event_parse_command"
- moved-to="Navigation.event_parse_command">
- <doc xml:space="preserve">Inspect a #GstNavigation command event and retrieve the enum value of the
- associated command.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the navigation command could be extracted, otherwise FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="command" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to GstNavigationCommand to receive the type of the
- navigation event.</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_event_parse_key_event"
- c:identifier="gst_navigation_event_parse_key_event"
- moved-to="Navigation.event_parse_key_event">
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="key" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a location to receive the string identifying the key
- press. The returned string is owned by the event, and valid only until the
- event is unreffed.</doc>
- <type name="utf8" c:type="const gchar**"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_event_parse_mouse_button_event"
- c:identifier="gst_navigation_event_parse_mouse_button_event"
- moved-to="Navigation.event_parse_mouse_button_event">
- <doc xml:space="preserve">Retrieve the details of either a #GstNavigation mouse button press event or
- a mouse button release event. Determine which type the event is using
- gst_navigation_event_get_type() to retrieve the #GstNavigationEventType.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if the button number and both coordinates could be extracted,
- otherwise FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="button" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gint that will receive the button number associated
- with the event.</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse button
- event.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse button
- event.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_event_parse_mouse_move_event"
- c:identifier="gst_navigation_event_parse_mouse_move_event"
- moved-to="Navigation.event_parse_mouse_move_event">
- <doc xml:space="preserve">Inspect a #GstNavigation mouse movement event and extract the coordinates
- of the event.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if both coordinates could be extracted, otherwise FALSE.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to inspect.</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the x coordinate of the mouse movement.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a gdouble to receive the y coordinate of the mouse movement.</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_get_type"
- c:identifier="gst_navigation_message_get_type"
- moved-to="Navigation.message_get_type">
- <doc xml:space="preserve">Check a bus message to see if it is a #GstNavigation event, and return
- the #GstNavigationMessageType identifying the type of the message if so.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The type of the #GstMessage, or
- #GST_NAVIGATION_MESSAGE_INVALID if the message is not a #GstNavigation
- notification.</doc>
- <type name="NavigationMessageType" c:type="GstNavigationMessageType"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_new_angles_changed"
- c:identifier="gst_navigation_message_new_angles_changed"
- moved-to="Navigation.message_new_angles_changed">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_ANGLES_CHANGED for notifying an application
- that the current angle, or current number of angles available in a
- multiangle video has changed.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">The currently selected angle.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">The number of viewing angles now available.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_new_commands_changed"
- c:identifier="gst_navigation_message_new_commands_changed"
- moved-to="Navigation.message_new_commands_changed">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_COMMANDS_CHANGED</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_new_event"
- c:identifier="gst_navigation_message_new_event"
- moved-to="Navigation.message_new_event"
- version="1.6">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_EVENT.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A navigation #GstEvent</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_new_mouse_over"
- c:identifier="gst_navigation_message_new_mouse_over"
- moved-to="Navigation.message_new_mouse_over">
- <doc xml:space="preserve">Creates a new #GstNavigation message with type
- #GST_NAVIGATION_MESSAGE_MOUSE_OVER.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new #GstMessage.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">A #GstObject to set as source of the new message.</doc>
- <type name="Gst.Object" c:type="GstObject*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the mouse has entered a clickable area of the display.
- %FALSE if it over a non-clickable area.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_parse_angles_changed"
- c:identifier="gst_navigation_message_parse_angles_changed"
- moved-to="Navigation.message_parse_angles_changed">
- <doc xml:space="preserve">Parse a #GstNavigation message of type GST_NAVIGATION_MESSAGE_ANGLES_CHANGED
- and extract the @cur_angle and @n_angles parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a #guint to receive the new current angle number,
- or NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a #guint to receive the new angle count, or NULL.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_parse_event"
- c:identifier="gst_navigation_message_parse_event"
- moved-to="Navigation.message_parse_event"
- version="1.6">
- <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_EVENT
- and extract contained #GstEvent. The caller must unref the @event when done
- with it.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="event"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #GstEvent to receive the
- contained navigation event.</doc>
- <type name="Gst.Event" c:type="GstEvent**"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_message_parse_mouse_over"
- c:identifier="gst_navigation_message_parse_mouse_over"
- moved-to="Navigation.message_parse_mouse_over">
- <doc xml:space="preserve">Parse a #GstNavigation message of type #GST_NAVIGATION_MESSAGE_MOUSE_OVER
- and extract the active/inactive flag. If the mouse over event is marked
- active, it indicates that the mouse is over a clickable area.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the message could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="message" transfer-ownership="none">
- <doc xml:space="preserve">A #GstMessage to inspect.</doc>
- <type name="Gst.Message" c:type="GstMessage*"/>
- </parameter>
- <parameter name="active" transfer-ownership="none">
- <doc xml:space="preserve">A pointer to a gboolean to receive the active/inactive state,
- or NULL.</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_query_get_type"
- c:identifier="gst_navigation_query_get_type"
- moved-to="Navigation.query_get_type">
- <doc xml:space="preserve">Inspect a #GstQuery and return the #GstNavigationQueryType associated with
- it if it is a #GstNavigation query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstNavigationQueryType of the query, or
- #GST_NAVIGATION_QUERY_INVALID</doc>
- <type name="NavigationQueryType" c:type="GstNavigationQueryType"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">The query to inspect</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_query_new_angles"
- c:identifier="gst_navigation_query_new_angles"
- moved-to="Navigation.query_new_angles">
- <doc xml:space="preserve">Create a new #GstNavigation angles query. When executed, it will
- query the pipeline for the set of currently available angles, which may be
- greater than one in a multiangle video.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new query.</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </return-value>
- </function>
- <function name="navigation_query_new_commands"
- c:identifier="gst_navigation_query_new_commands"
- moved-to="Navigation.query_new_commands">
- <doc xml:space="preserve">Create a new #GstNavigation commands query. When executed, it will
- query the pipeline for the set of currently available commands.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new query.</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </return-value>
- </function>
- <function name="navigation_query_parse_angles"
- c:identifier="gst_navigation_query_parse_angles"
- moved-to="Navigation.query_parse_angles">
- <doc xml:space="preserve">Parse the current angle number in the #GstNavigation angles @query into the
- #guint pointed to by the @cur_angle variable, and the number of available
- angles into the #guint pointed to by the @n_angles variable.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a #guint into which to store the currently selected
- angle value from the query, or NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">Pointer to a #guint into which to store the number of angles
- value from the query, or NULL</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_query_parse_commands_length"
- c:identifier="gst_navigation_query_parse_commands_length"
- moved-to="Navigation.query_parse_commands_length">
- <doc xml:space="preserve">Parse the number of commands in the #GstNavigation commands @query.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="n_cmds"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">the number of commands in this query.</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_query_parse_commands_nth"
- c:identifier="gst_navigation_query_parse_commands_nth"
- moved-to="Navigation.query_parse_commands_nth">
- <doc xml:space="preserve">Parse the #GstNavigation command query and retrieve the @nth command from
- it into @cmd. If the list contains less elements than @nth, @cmd will be
- set to #GST_NAVIGATION_COMMAND_INVALID.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the query could be successfully parsed. %FALSE if not.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="nth" transfer-ownership="none">
- <doc xml:space="preserve">the nth command to retrieve.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="cmd"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to store the nth command into.</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_query_set_angles"
- c:identifier="gst_navigation_query_set_angles"
- moved-to="Navigation.query_set_angles">
- <doc xml:space="preserve">Set the #GstNavigation angles query result field in @query.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="cur_angle" transfer-ownership="none">
- <doc xml:space="preserve">the current viewing angle to set.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="n_angles" transfer-ownership="none">
- <doc xml:space="preserve">the number of viewing angles to set.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="navigation_query_set_commandsv"
- c:identifier="gst_navigation_query_set_commandsv"
- moved-to="Navigation.query_set_commandsv">
- <doc xml:space="preserve">Set the #GstNavigation command query result fields in @query. The number
- of commands passed must be equal to @n_commands.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="query" transfer-ownership="none">
- <doc xml:space="preserve">a #GstQuery</doc>
- <type name="Gst.Query" c:type="GstQuery*"/>
- </parameter>
- <parameter name="n_cmds" transfer-ownership="none">
- <doc xml:space="preserve">the number of commands to set.</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="cmds" transfer-ownership="none">
- <doc xml:space="preserve">An array containing @n_cmds @GstNavigationCommand values.</doc>
- <type name="NavigationCommand" c:type="GstNavigationCommand*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_affine_transformation_meta_api_get_type"
- c:identifier="gst_video_affine_transformation_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="video_affine_transformation_meta_get_info"
- c:identifier="gst_video_affine_transformation_meta_get_info"
- moved-to="VideoAffineTransformationMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="video_blend" c:identifier="gst_video_blend">
- <doc xml:space="preserve">Lets you blend the @src image into the @dest image</doc>
- <return-value transfer-ownership="none">
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dest" transfer-ownership="none">
- <doc xml:space="preserve">The #GstVideoFrame where to blend @src in</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFrame that we want to blend into</doc>
- <type name="VideoFrame" c:type="GstVideoFrame*"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">The x offset in pixel where the @src image should be blended</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">the y offset in pixel where the @src image should be blended</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="global_alpha" transfer-ownership="none">
- <doc xml:space="preserve">the global_alpha each per-pixel alpha value is multiplied
- with</doc>
- <type name="gfloat" c:type="gfloat"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_blend_scale_linear_RGBA"
- c:identifier="gst_video_blend_scale_linear_RGBA">
- <doc xml:space="preserve">Scales a buffer containing RGBA (or AYUV) video. This is an internal
- helper function which is used to scale subtitle overlays, and may be
- deprecated in the near future. Use #GstVideoScaler to scale video buffers
- instead.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="src" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoInfo describing the video data in @src_buffer</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="src_buffer" transfer-ownership="none">
- <doc xml:space="preserve">the source buffer containing video pixels to scale</doc>
- <type name="Gst.Buffer" c:type="GstBuffer*"/>
- </parameter>
- <parameter name="dest_height" transfer-ownership="none">
- <doc xml:space="preserve">the height in pixels to scale the video data in @src_buffer to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dest_width" transfer-ownership="none">
- <doc xml:space="preserve">the width in pixels to scale the video data in @src_buffer to</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="dest"
- direction="out"
- caller-allocates="1"
- transfer-ownership="none">
- <doc xml:space="preserve">pointer to a #GstVideoInfo structure that will be filled in
- with the details for @dest_buffer</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="dest_buffer"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">a pointer to a #GstBuffer variable, which will be
- set to a newly-allocated buffer containing the scaled pixels.</doc>
- <type name="Gst.Buffer" c:type="GstBuffer**"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_calculate_display_ratio"
- c:identifier="gst_video_calculate_display_ratio">
- <doc xml:space="preserve">Given the Pixel Aspect Ratio and size of an input video frame, and the
- pixel aspect ratio of the intended display device, calculates the actual
- display ratio the video will be rendered with.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A boolean indicating success and a calculated Display Ratio in the
- dar_n and dar_d parameters.
- The return value is FALSE in the case of integer overflow or other error.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="dar_n"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Numerator of the calculated display_ratio</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="dar_d"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">Denominator of the calculated display_ratio</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- <parameter name="video_width" transfer-ownership="none">
- <doc xml:space="preserve">Width of the video frame in pixels</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="video_height" transfer-ownership="none">
- <doc xml:space="preserve">Height of the video frame in pixels</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="video_par_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of the pixel aspect ratio of the input video.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="video_par_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of the pixel aspect ratio of the input video.</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="display_par_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of the pixel aspect ratio of the display device</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="display_par_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of the pixel aspect ratio of the display device</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_chroma_from_string"
- c:identifier="gst_video_chroma_from_string">
- <doc xml:space="preserve">Convert @s to a #GstVideoChromaSite</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaSite or %GST_VIDEO_CHROMA_SITE_UNKNOWN when @s does
- not contain a valid chroma description.</doc>
- <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
- </return-value>
- <parameters>
- <parameter name="s" transfer-ownership="none">
- <doc xml:space="preserve">a chromasite string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_chroma_resample"
- c:identifier="gst_video_chroma_resample">
- <doc xml:space="preserve">Perform resampling of @width chroma pixels in @lines.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="resample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaResample</doc>
- <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
- </parameter>
- <parameter name="lines"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">pixel lines</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the number of pixels on one line</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_chroma_resample_new"
- c:identifier="gst_video_chroma_resample_new"
- moved-to="VideoChromaResample.new"
- introspectable="0">
- <doc xml:space="preserve">Create a new resampler object for the given parameters. When @h_factor or
- @v_factor is > 0, upsampling will be used, otherwise subsampling is
- performed.</doc>
- <return-value>
- <doc xml:space="preserve">a new #GstVideoChromaResample that should be freed with
- gst_video_chroma_resample_free() after usage.</doc>
- <type name="VideoChromaResample" c:type="GstVideoChromaResample*"/>
- </return-value>
- <parameters>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaMethod</doc>
- <type name="VideoChromaMethod" c:type="GstVideoChromaMethod"/>
- </parameter>
- <parameter name="site" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaSite</doc>
- <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoChromaFlags</doc>
- <type name="VideoChromaFlags" c:type="GstVideoChromaFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="h_factor" transfer-ownership="none">
- <doc xml:space="preserve">horizontal resampling factor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="v_factor" transfer-ownership="none">
- <doc xml:space="preserve">vertical resampling factor</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_chroma_to_string"
- c:identifier="gst_video_chroma_to_string">
- <doc xml:space="preserve">Converts @site to its string representation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a string describing @site.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="site" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoChromaSite</doc>
- <type name="VideoChromaSite" c:type="GstVideoChromaSite"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_color_matrix_get_Kr_Kb"
- c:identifier="gst_video_color_matrix_get_Kr_Kb"
- moved-to="VideoColorMatrix.get_Kr_Kb"
- version="1.6">
- <doc xml:space="preserve">Get the coefficients used to convert between Y'PbPr and R'G'B' using @matrix.
- When:
- |[
- 0.0 <= [Y',R',G',B'] <= 1.0)
- (-0.5 <= [Pb,Pr] <= 0.5)
- ]|
- the general conversion is given by:
- |[
- Y' = Kr*R' + (1-Kr-Kb)*G' + Kb*B'
- Pb = (B'-Y')/(2*(1-Kb))
- Pr = (R'-Y')/(2*(1-Kr))
- ]|
- and the other way around:
- |[
- R' = Y' + Cr*2*(1-Kr)
- G' = Y' - Cb*2*(1-Kb)*Kb/(1-Kr-Kb) - Cr*2*(1-Kr)*Kr/(1-Kr-Kb)
- B' = Y' + Cb*2*(1-Kb)
- ]|</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">TRUE if @matrix was a YUV color format and @Kr and @Kb contain valid
- values.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="matrix" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorMatrix</doc>
- <type name="VideoColorMatrix" c:type="GstVideoColorMatrix"/>
- </parameter>
- <parameter name="Kr" transfer-ownership="none">
- <doc xml:space="preserve">result red channel coefficient</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- <parameter name="Kb" transfer-ownership="none">
- <doc xml:space="preserve">result blue channel coefficient</doc>
- <type name="gdouble" c:type="gdouble*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_color_primaries_get_info"
- c:identifier="gst_video_color_primaries_get_info"
- moved-to="VideoColorPrimaries.get_info"
- version="1.6">
- <doc xml:space="preserve">Get information about the chromaticity coordinates of @primaries.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorPrimariesInfo for @primaries.</doc>
- <type name="VideoColorPrimariesInfo"
- c:type="const GstVideoColorPrimariesInfo*"/>
- </return-value>
- <parameters>
- <parameter name="primaries" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorPrimaries</doc>
- <type name="VideoColorPrimaries" c:type="GstVideoColorPrimaries"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_color_range_offsets"
- c:identifier="gst_video_color_range_offsets"
- moved-to="VideoColorRange.offsets">
- <doc xml:space="preserve">Compute the offset and scale values for each component of @info. For each
- component, (c[i] - offset[i]) / scale[i] will scale the component c[i] to the
- range [0.0 .. 1.0].
- The reverse operation (c[i] * scale[i]) + offset[i] can be used to convert
- the component values in range [0.0 .. 1.0] back to their representation in
- @info and @range.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="range" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoColorRange</doc>
- <type name="VideoColorRange" c:type="GstVideoColorRange"/>
- </parameter>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormatInfo</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </parameter>
- <parameter name="offset"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">output offsets</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="scale"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">output scale</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_color_transfer_decode"
- c:identifier="gst_video_color_transfer_decode"
- version="1.6">
- <doc xml:space="preserve">Convert @val to its gamma decoded value. This is the inverse operation of
- @gst_video_color_transfer_encode().
- For a non-linear value L' in the range [0..1], conversion to the linear
- L is in general performed with a power function like:
- |[
- L = L' ^ gamma
- ]|
- Depending on @func, different formulas might be applied. Some formulas
- encode a linear segment in the lower range.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the gamme decoded value of @val</doc>
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoTransferFunction</doc>
- <type name="VideoTransferFunction"
- c:type="GstVideoTransferFunction"/>
- </parameter>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">a value</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_color_transfer_encode"
- c:identifier="gst_video_color_transfer_encode"
- version="1.6">
- <doc xml:space="preserve">Convert @val to its gamma encoded value.
- For a linear value L in the range [0..1], conversion to the non-linear
- (gamma encoded) L' is in general performed with a power function like:
- |[
- L' = L ^ (1 / gamma)
- ]|
- Depending on @func, different formulas might be applied. Some formulas
- encode a linear segment in the lower range.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the gamme encoded value of @val</doc>
- <type name="gdouble" c:type="gdouble"/>
- </return-value>
- <parameters>
- <parameter name="func" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoTransferFunction</doc>
- <type name="VideoTransferFunction"
- c:type="GstVideoTransferFunction"/>
- </parameter>
- <parameter name="val" transfer-ownership="none">
- <doc xml:space="preserve">a value</doc>
- <type name="gdouble" c:type="gdouble"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_convert_sample"
- c:identifier="gst_video_convert_sample"
- throws="1">
- <doc xml:space="preserve">Converts a raw video buffer into the specified output caps.
- The output caps can be any raw video formats or any image formats (jpeg, png, ...).
- The width, height and pixel-aspect-ratio can also be specified in the output caps.</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The converted #GstSample, or %NULL if an error happened (in which case @err
- will point to the #GError).</doc>
- <type name="Gst.Sample" c:type="GstSample*"/>
- </return-value>
- <parameters>
- <parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Gst.Sample" c:type="GstSample*"/>
- </parameter>
- <parameter name="to_caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to convert to</doc>
- <type name="Gst.Caps" c:type="const GstCaps*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum amount of time allowed for the processing.</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_convert_sample_async"
- c:identifier="gst_video_convert_sample_async">
- <doc xml:space="preserve">Converts a raw video buffer into the specified output caps.
- The output caps can be any raw video formats or any image formats (jpeg, png, ...).
- The width, height and pixel-aspect-ratio can also be specified in the output caps.
- @callback will be called after conversion, when an error occured or if conversion didn't
- finish after @timeout. @callback will always be called from the thread default
- %GMainContext, see g_main_context_get_thread_default(). If GLib before 2.22 is used,
- this will always be the global default main context.
- @destroy_notify will be called after the callback was called and @user_data is not needed
- anymore.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="sample" transfer-ownership="none">
- <doc xml:space="preserve">a #GstSample</doc>
- <type name="Gst.Sample" c:type="GstSample*"/>
- </parameter>
- <parameter name="to_caps" transfer-ownership="none">
- <doc xml:space="preserve">the #GstCaps to convert to</doc>
- <type name="Gst.Caps" c:type="const GstCaps*"/>
- </parameter>
- <parameter name="timeout" transfer-ownership="none">
- <doc xml:space="preserve">the maximum amount of time allowed for the processing.</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="callback"
- transfer-ownership="none"
- scope="notified"
- closure="4"
- destroy="5">
- <doc xml:space="preserve">%GstVideoConvertSampleCallback that will be called after conversion.</doc>
- <type name="VideoConvertSampleCallback"
- c:type="GstVideoConvertSampleCallback"/>
- </parameter>
- <parameter name="user_data"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">extra data that will be passed to the @callback</doc>
- <type name="gpointer" c:type="gpointer"/>
- </parameter>
- <parameter name="destroy_notify"
- transfer-ownership="none"
- scope="async">
- <doc xml:space="preserve">%GDestroyNotify to be called after @user_data is not needed anymore</doc>
- <type name="GLib.DestroyNotify" c:type="GDestroyNotify"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_converter_new"
- c:identifier="gst_video_converter_new"
- moved-to="VideoConverter.new"
- version="1.6"
- introspectable="0">
- <doc xml:space="preserve">Create a new converter object to convert between @in_info and @out_info
- with @config.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstVideoConverter or %NULL if conversion is not possible.</doc>
- <type name="VideoConverter" c:type="GstVideoConverter*"/>
- </return-value>
- <parameters>
- <parameter name="in_info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="out_info" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInfo</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="config" transfer-ownership="full">
- <doc xml:space="preserve">a #GstStructure with configuration options</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_crop_meta_api_get_type"
- c:identifier="gst_video_crop_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="video_crop_meta_get_info"
- c:identifier="gst_video_crop_meta_get_info"
- moved-to="VideoCropMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="video_dither_new"
- c:identifier="gst_video_dither_new"
- moved-to="VideoDither.new"
- introspectable="0">
- <doc xml:space="preserve">Make a new dither object for dithering lines of @format using the
- algorithm described by @method.
- Each component will be quantized to a multiple of @quantizer. Better
- performance is achived when @quantizer is a power of 2.
- @width is the width of the lines that this ditherer will handle.</doc>
- <return-value>
- <doc xml:space="preserve">a new #GstVideoDither</doc>
- <type name="VideoDither" c:type="GstVideoDither*"/>
- </return-value>
- <parameters>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDitherMethod</doc>
- <type name="VideoDitherMethod" c:type="GstVideoDitherMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoDitherFlags</doc>
- <type name="VideoDitherFlags" c:type="GstVideoDitherFlags"/>
- </parameter>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="quantizer" transfer-ownership="none">
- <doc xml:space="preserve">quantizer</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">the width of the lines</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_is_force_key_unit"
- c:identifier="gst_video_event_is_force_key_unit">
- <doc xml:space="preserve">Checks if an event is a force key unit event. Returns true for both upstream
- and downstream force key unit events.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event is a valid force key unit event</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to check</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_new_downstream_force_key_unit"
- c:identifier="gst_video_event_new_downstream_force_key_unit">
- <doc xml:space="preserve">Creates a new downstream force key unit event. A downstream force key unit
- event can be sent down the pipeline to request downstream elements to produce
- a key unit. A downstream force key unit event must also be sent when handling
- an upstream force key unit event to notify downstream that the latter has been
- handled.
- To parse an event created by gst_video_event_new_downstream_force_key_unit() use
- gst_video_event_parse_downstream_force_key_unit().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new GstEvent</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="timestamp" transfer-ownership="none">
- <doc xml:space="preserve">the timestamp of the buffer that starts a new key unit</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="stream_time" transfer-ownership="none">
- <doc xml:space="preserve">the stream_time of the buffer that starts a new key unit</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running_time of the buffer that starts a new key unit</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="all_headers" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to produce headers when starting a new key unit</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">integer that can be used to number key units</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_new_still_frame"
- c:identifier="gst_video_event_new_still_frame">
- <doc xml:space="preserve">Creates a new Still Frame event. If @in_still is %TRUE, then the event
- represents the start of a still frame sequence. If it is %FALSE, then
- the event ends a still frame sequence.
- To parse an event created by gst_video_event_new_still_frame() use
- gst_video_event_parse_still_frame().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new GstEvent</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="in_still" transfer-ownership="none">
- <doc xml:space="preserve">boolean value for the still-frame state of the event.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_new_upstream_force_key_unit"
- c:identifier="gst_video_event_new_upstream_force_key_unit">
- <doc xml:space="preserve">Creates a new upstream force key unit event. An upstream force key unit event
- can be sent to request upstream elements to produce a key unit.
- @running_time can be set to request a new key unit at a specific
- running_time. If set to GST_CLOCK_TIME_NONE, upstream elements will produce a
- new key unit as soon as possible.
- To parse an event created by gst_video_event_new_downstream_force_key_unit() use
- gst_video_event_parse_downstream_force_key_unit().</doc>
- <return-value transfer-ownership="full">
- <doc xml:space="preserve">The new GstEvent</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </return-value>
- <parameters>
- <parameter name="running_time" transfer-ownership="none">
- <doc xml:space="preserve">the running_time at which a new key unit should be produced</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="all_headers" transfer-ownership="none">
- <doc xml:space="preserve">%TRUE to produce headers when starting a new key unit</doc>
- <type name="gboolean" c:type="gboolean"/>
- </parameter>
- <parameter name="count" transfer-ownership="none">
- <doc xml:space="preserve">integer that can be used to number key units</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_parse_downstream_force_key_unit"
- c:identifier="gst_video_event_parse_downstream_force_key_unit">
- <doc xml:space="preserve">Get timestamp, stream-time, running-time, all-headers and count in the force
- key unit event. See gst_video_event_new_downstream_force_key_unit() for a
- full description of the downstream force key unit event.
- @running_time will be adjusted for any pad offsets of pads it was passing through.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event is a valid downstream force key unit event.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to parse</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="timestamp"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the timestamp in the event</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="stream_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the stream-time in the event</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="running_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the running-time in the event</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="all_headers"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the all_headers flag in the event</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="count"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the count field of the event</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_parse_still_frame"
- c:identifier="gst_video_event_parse_still_frame">
- <doc xml:space="preserve">Parse a #GstEvent, identify if it is a Still Frame event, and
- return the still-frame state from the event if it is.
- If the event represents the start of a still frame, the in_still
- variable will be set to TRUE, otherwise FALSE. It is OK to pass NULL for the
- in_still variable order to just check whether the event is a valid still-frame
- event.
- Create a still frame event using gst_video_event_new_still_frame()</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event is a valid still-frame event. %FALSE if not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to parse</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="in_still" transfer-ownership="none">
- <doc xml:space="preserve">A boolean to receive the still-frame status from the event, or NULL</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_event_parse_upstream_force_key_unit"
- c:identifier="gst_video_event_parse_upstream_force_key_unit">
- <doc xml:space="preserve">Get running-time, all-headers and count in the force key unit event. See
- gst_video_event_new_upstream_force_key_unit() for a full description of the
- upstream force key unit event.
- Create an upstream force key unit event using gst_video_event_new_upstream_force_key_unit()
- @running_time will be adjusted for any pad offsets of pads it was passing through.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if the event is a valid upstream force-key-unit event. %FALSE if not</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="event" transfer-ownership="none">
- <doc xml:space="preserve">A #GstEvent to parse</doc>
- <type name="Gst.Event" c:type="GstEvent*"/>
- </parameter>
- <parameter name="running_time"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the running_time in the event</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime*"/>
- </parameter>
- <parameter name="all_headers"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the all_headers flag in the event</doc>
- <type name="gboolean" c:type="gboolean*"/>
- </parameter>
- <parameter name="count"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">A pointer to the count field in the event</doc>
- <type name="guint" c:type="guint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_from_fourcc"
- c:identifier="gst_video_format_from_fourcc"
- moved-to="VideoFormat.from_fourcc">
- <doc xml:space="preserve">Converts a FOURCC value into the corresponding #GstVideoFormat.
- If the FOURCC cannot be represented by #GstVideoFormat,
- #GST_VIDEO_FORMAT_UNKNOWN is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFormat describing the FOURCC value</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </return-value>
- <parameters>
- <parameter name="fourcc" transfer-ownership="none">
- <doc xml:space="preserve">a FOURCC value representing raw YUV video</doc>
- <type name="guint32" c:type="guint32"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_from_masks"
- c:identifier="gst_video_format_from_masks"
- moved-to="VideoFormat.from_masks">
- <doc xml:space="preserve">Find the #GstVideoFormat for the given parameters.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat or GST_VIDEO_FORMAT_UNKNOWN when the parameters to
- not specify a known format.</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </return-value>
- <parameters>
- <parameter name="depth" transfer-ownership="none">
- <doc xml:space="preserve">the amount of bits used for a pixel</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="bpp" transfer-ownership="none">
- <doc xml:space="preserve">the amount of bits used to store a pixel. This value is bigger than
- @depth</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="endianness" transfer-ownership="none">
- <doc xml:space="preserve">the endianness of the masks, #G_LITTLE_ENDIAN or #G_BIG_ENDIAN</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="red_mask" transfer-ownership="none">
- <doc xml:space="preserve">the red mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="green_mask" transfer-ownership="none">
- <doc xml:space="preserve">the green mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="blue_mask" transfer-ownership="none">
- <doc xml:space="preserve">the blue mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="alpha_mask" transfer-ownership="none">
- <doc xml:space="preserve">the alpha mask, or 0 if no alpha mask</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_from_string"
- c:identifier="gst_video_format_from_string"
- moved-to="VideoFormat.from_string">
- <doc xml:space="preserve">Convert the @format string to its #GstVideoFormat.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoFormat for @format or GST_VIDEO_FORMAT_UNKNOWN when the
- string is not a known format.</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a format string</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_get_info"
- c:identifier="gst_video_format_get_info"
- moved-to="VideoFormat.get_info">
- <doc xml:space="preserve">Get the #GstVideoFormatInfo for @format</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstVideoFormatInfo for @format.</doc>
- <type name="VideoFormatInfo" c:type="const GstVideoFormatInfo*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_get_palette"
- c:identifier="gst_video_format_get_palette"
- moved-to="VideoFormat.get_palette"
- version="1.2">
- <doc xml:space="preserve">Get the default palette of @format. This the palette used in the pack
- function for paletted formats.</doc>
- <return-value transfer-ownership="none" nullable="1">
- <doc xml:space="preserve">the default palette of @format or %NULL when
- @format does not have a palette.</doc>
- <type name="gpointer" c:type="gconstpointer"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- <parameter name="size"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full">
- <doc xml:space="preserve">size of the palette in bytes</doc>
- <type name="gsize" c:type="gsize*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_to_fourcc"
- c:identifier="gst_video_format_to_fourcc"
- moved-to="VideoFormat.to_fourcc">
- <doc xml:space="preserve">Converts a #GstVideoFormat value into the corresponding FOURCC. Only
- a few YUV formats have corresponding FOURCC values. If @format has
- no corresponding FOURCC value, 0 is returned.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the FOURCC corresponding to @format</doc>
- <type name="guint32" c:type="guint32"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_format_to_string"
- c:identifier="gst_video_format_to_string"
- moved-to="VideoFormat.to_string">
- <doc xml:space="preserve">Returns a string containing a descriptive name for
- the #GstVideoFormat if there is one, or NULL otherwise.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the name corresponding to @format</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="format" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoFormat video format</doc>
- <type name="VideoFormat" c:type="GstVideoFormat"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_gl_texture_upload_meta_api_get_type"
- c:identifier="gst_video_gl_texture_upload_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="video_gl_texture_upload_meta_get_info"
- c:identifier="gst_video_gl_texture_upload_meta_get_info"
- moved-to="VideoGLTextureUploadMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="video_guess_framerate"
- c:identifier="gst_video_guess_framerate"
- version="1.6">
- <doc xml:space="preserve">Given the nominal duration of one video frame,
- this function will check some standard framerates for
- a close match (within 0.1%) and return one if possible,
- It will calculate an arbitrary framerate if no close
- match was found, and return %FALSE.
- It returns %FALSE if a duration of 0 is passed.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">%TRUE if a close "standard" framerate was
- recognised, and %FALSE otherwise.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="duration" transfer-ownership="none">
- <doc xml:space="preserve">Nominal duration of one frame</doc>
- <type name="Gst.ClockTime" c:type="GstClockTime"/>
- </parameter>
- <parameter name="dest_n"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Numerator of the calculated framerate</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- <parameter name="dest_d"
- direction="out"
- caller-allocates="0"
- transfer-ownership="full"
- optional="1"
- allow-none="1">
- <doc xml:space="preserve">Denominator of the calculated framerate</doc>
- <type name="gint" c:type="gint*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_interlace_mode_from_string"
- c:identifier="gst_video_interlace_mode_from_string"
- moved-to="VideoInterlaceMode.from_string"
- version="1.6">
- <doc xml:space="preserve">Convert @mode to a #GstVideoInterlaceMode</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the #GstVideoInterlaceMode of @mode or
- #GST_VIDEO_INTERLACE_MODE_PROGRESSIVE when @mode is not a valid
- string representation for a #GstVideoInterlaceMode.</doc>
- <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a mode</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_interlace_mode_to_string"
- c:identifier="gst_video_interlace_mode_to_string"
- moved-to="VideoInterlaceMode.to_string"
- version="1.6">
- <doc xml:space="preserve">Convert @mode to its string representation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">@mode as a string or NULL if @mode in invalid.</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoInterlaceMode</doc>
- <type name="VideoInterlaceMode" c:type="GstVideoInterlaceMode"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_meta_api_get_type"
- c:identifier="gst_video_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="video_meta_get_info"
- c:identifier="gst_video_meta_get_info"
- moved-to="VideoMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="video_meta_transform_scale_get_quark"
- c:identifier="gst_video_meta_transform_scale_get_quark"
- moved-to="VideoMetaTransform.scale_get_quark">
- <doc xml:space="preserve">Get the #GQuark for the "gst-video-scale" metadata transform operation.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">a #GQuark</doc>
- <type name="GLib.Quark" c:type="GQuark"/>
- </return-value>
- </function>
- <function name="video_multiview_get_doubled_height_modes"
- c:identifier="gst_video_multiview_get_doubled_height_modes"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A const #GValue containing a list of stereo video modes
- Utility function that returns a #GValue with a GstList of packed stereo
- video modes with double the height of a single view for use in
- caps negotiations. Currently this is top-bottom and row-interleaved.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- </function>
- <function name="video_multiview_get_doubled_size_modes"
- c:identifier="gst_video_multiview_get_doubled_size_modes"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A const #GValue containing a list of stereo video modes
- Utility function that returns a #GValue with a GstList of packed
- stereo video modes that have double the width/height of a single
- view for use in caps negotiation. Currently this is just
- 'checkerboard' layout.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- </function>
- <function name="video_multiview_get_doubled_width_modes"
- c:identifier="gst_video_multiview_get_doubled_width_modes"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A const #GValue containing a list of stereo video modes
- Utility function that returns a #GValue with a GstList of packed stereo
- video modes with double the width of a single view for use in
- caps negotiations. Currently this is side-by-side, side-by-side-quincunx
- and column-interleaved.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- </function>
- <function name="video_multiview_get_mono_modes"
- c:identifier="gst_video_multiview_get_mono_modes"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A const #GValue containing a list of mono video modes
- Utility function that returns a #GValue with a GstList of mono video
- modes (mono/left/right) for use in caps negotiations.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- </function>
- <function name="video_multiview_get_unpacked_modes"
- c:identifier="gst_video_multiview_get_unpacked_modes"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A const #GValue containing a list of 'unpacked' stereo video modes
- Utility function that returns a #GValue with a GstList of unpacked
- stereo video modes (separated/frame-by-frame/frame-by-frame-multiview)
- for use in caps negotiations.</doc>
- <type name="GObject.Value" c:type="const GValue*"/>
- </return-value>
- </function>
- <function name="video_multiview_guess_half_aspect"
- c:identifier="gst_video_multiview_guess_half_aspect"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">A boolean indicating whether the
- #GST_VIDEO_MULTIVIEW_FLAG_HALF_ASPECT flag should be set.
- Utility function that heuristically guess whether a
- frame-packed stereoscopic video contains half width/height
- encoded views, or full-frame views by looking at the
- overall display aspect ratio.</doc>
- <type name="gboolean" c:type="gboolean"/>
- </return-value>
- <parameters>
- <parameter name="mv_mode" transfer-ownership="none">
- <doc xml:space="preserve">A #GstVideoMultiviewMode</doc>
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </parameter>
- <parameter name="width" transfer-ownership="none">
- <doc xml:space="preserve">Video frame width in pixels</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="height" transfer-ownership="none">
- <doc xml:space="preserve">Video frame height in pixels</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="par_n" transfer-ownership="none">
- <doc xml:space="preserve">Numerator of the video pixel-aspect-ratio</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="par_d" transfer-ownership="none">
- <doc xml:space="preserve">Denominator of the video pixel-aspect-ratio</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_multiview_mode_from_caps_string"
- c:identifier="gst_video_multiview_mode_from_caps_string"
- moved-to="VideoMultiviewMode.from_caps_string"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The #GstVideoMultiviewMode value
- Given a string from a caps multiview-mode field,
- output the corresponding #GstVideoMultiviewMode
- or #GST_VIDEO_MULTIVIEW_MODE_NONE</doc>
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </return-value>
- <parameters>
- <parameter name="caps_mview_mode" transfer-ownership="none">
- <doc xml:space="preserve">multiview-mode field string from caps</doc>
- <type name="utf8" c:type="const gchar*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_multiview_mode_to_caps_string"
- c:identifier="gst_video_multiview_mode_to_caps_string"
- moved-to="VideoMultiviewMode.to_caps_string"
- version="1.6">
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">The caps string representation of the mode, or NULL if invalid.
- Given a #GstVideoMultiviewMode returns the multiview-mode caps string
- for insertion into a caps structure</doc>
- <type name="utf8" c:type="const gchar*"/>
- </return-value>
- <parameters>
- <parameter name="mview_mode" transfer-ownership="none">
- <doc xml:space="preserve">A #GstVideoMultiviewMode value</doc>
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_multiview_video_info_change_mode"
- c:identifier="gst_video_multiview_video_info_change_mode"
- version="1.6">
- <doc xml:space="preserve">Utility function that transforms the width/height/PAR
- and multiview mode and flags of a #GstVideoInfo into
- the requested mode.</doc>
- <return-value transfer-ownership="none">
- <type name="none" c:type="void"/>
- </return-value>
- <parameters>
- <parameter name="info" transfer-ownership="none">
- <doc xml:space="preserve">A #GstVideoInfo structure to operate on</doc>
- <type name="VideoInfo" c:type="GstVideoInfo*"/>
- </parameter>
- <parameter name="out_mview_mode" transfer-ownership="none">
- <doc xml:space="preserve">A #GstVideoMultiviewMode value</doc>
- <type name="VideoMultiviewMode" c:type="GstVideoMultiviewMode"/>
- </parameter>
- <parameter name="out_mview_flags" transfer-ownership="none">
- <doc xml:space="preserve">A set of #GstVideoMultiviewFlags</doc>
- <type name="VideoMultiviewFlags" c:type="GstVideoMultiviewFlags"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_overlay_composition_meta_api_get_type"
- c:identifier="gst_video_overlay_composition_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="video_overlay_composition_meta_get_info"
- c:identifier="gst_video_overlay_composition_meta_get_info"
- moved-to="VideoOverlayCompositionMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="video_region_of_interest_meta_api_get_type"
- c:identifier="gst_video_region_of_interest_meta_api_get_type">
- <return-value transfer-ownership="none">
- <type name="GType" c:type="GType"/>
- </return-value>
- </function>
- <function name="video_region_of_interest_meta_get_info"
- c:identifier="gst_video_region_of_interest_meta_get_info"
- moved-to="VideoRegionOfInterestMeta.get_info">
- <return-value transfer-ownership="none">
- <type name="Gst.MetaInfo" c:type="const GstMetaInfo*"/>
- </return-value>
- </function>
- <function name="video_scaler_new"
- c:identifier="gst_video_scaler_new"
- moved-to="VideoScaler.new"
- introspectable="0">
- <doc xml:space="preserve">Make a new @method video scaler. @in_size source lines/pixels will
- be scaled to @out_size destination lines/pixels.
- @n_taps specifies the amount of pixels to use from the source for one output
- pixel. If n_taps is 0, this function chooses a good value automatically based
- on the @method and @in_size/@out_size.</doc>
- <return-value>
- <doc xml:space="preserve">a #GstVideoResample</doc>
- <type name="VideoScaler" c:type="GstVideoScaler*"/>
- </return-value>
- <parameters>
- <parameter name="method" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoResamplerMethod</doc>
- <type name="VideoResamplerMethod" c:type="GstVideoResamplerMethod"/>
- </parameter>
- <parameter name="flags" transfer-ownership="none">
- <doc xml:space="preserve">#GstVideoScalerFlags</doc>
- <type name="VideoScalerFlags" c:type="GstVideoScalerFlags"/>
- </parameter>
- <parameter name="n_taps" transfer-ownership="none">
- <doc xml:space="preserve">number of taps to use</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="in_size" transfer-ownership="none">
- <doc xml:space="preserve">number of source elements</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="out_size" transfer-ownership="none">
- <doc xml:space="preserve">number of destination elements</doc>
- <type name="guint" c:type="guint"/>
- </parameter>
- <parameter name="options"
- transfer-ownership="none"
- nullable="1"
- allow-none="1">
- <doc xml:space="preserve">extra options</doc>
- <type name="Gst.Structure" c:type="GstStructure*"/>
- </parameter>
- </parameters>
- </function>
- <function name="video_tile_get_index"
- c:identifier="gst_video_tile_get_index"
- version="1.4">
- <doc xml:space="preserve">Get the tile index of the tile at coordinates @x and @y in the tiled
- image of @x_tiles by @y_tiles.
- Use this method when @mode is of type %GST_VIDEO_TILE_MODE_INDEXED.</doc>
- <return-value transfer-ownership="none">
- <doc xml:space="preserve">the index of the tile at @x and @y in the tiled image of
- @x_tiles by @y_tiles.</doc>
- <type name="guint" c:type="guint"/>
- </return-value>
- <parameters>
- <parameter name="mode" transfer-ownership="none">
- <doc xml:space="preserve">a #GstVideoTileMode</doc>
- <type name="VideoTileMode" c:type="GstVideoTileMode"/>
- </parameter>
- <parameter name="x" transfer-ownership="none">
- <doc xml:space="preserve">x coordinate</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y" transfer-ownership="none">
- <doc xml:space="preserve">y coordinate</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="x_tiles" transfer-ownership="none">
- <doc xml:space="preserve">number of horizintal tiles</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- <parameter name="y_tiles" transfer-ownership="none">
- <doc xml:space="preserve">number of vertical tiles</doc>
- <type name="gint" c:type="gint"/>
- </parameter>
- </parameters>
- </function>
- </namespace>
- </repository>
|